summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/instruction-selector.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/instruction-selector.h')
-rw-r--r--deps/v8/src/compiler/instruction-selector.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/deps/v8/src/compiler/instruction-selector.h b/deps/v8/src/compiler/instruction-selector.h
index 2981f90a1c..65ba8f7c71 100644
--- a/deps/v8/src/compiler/instruction-selector.h
+++ b/deps/v8/src/compiler/instruction-selector.h
@@ -12,6 +12,7 @@
#include "src/compiler/instruction.h"
#include "src/compiler/machine-operator.h"
#include "src/compiler/node.h"
+#include "src/globals.h"
#include "src/zone/zone-containers.h"
namespace v8 {
@@ -42,7 +43,7 @@ class PushParameter {
};
// Instruction selection generates an InstructionSequence for a given Schedule.
-class InstructionSelector final {
+class V8_EXPORT_PRIVATE InstructionSelector final {
public:
// Forward declarations.
class Features;
@@ -110,6 +111,9 @@ class InstructionSelector final {
// ===========================================================================
Instruction* EmitDeoptimize(InstructionCode opcode, InstructionOperand output,
+ InstructionOperand a, DeoptimizeReason reason,
+ Node* frame_state);
+ Instruction* EmitDeoptimize(InstructionCode opcode, InstructionOperand output,
InstructionOperand a, InstructionOperand b,
DeoptimizeReason reason, Node* frame_state);
Instruction* EmitDeoptimize(InstructionCode opcode, size_t output_count,
@@ -204,6 +208,8 @@ class InstructionSelector final {
// to the roots register, i.e. if both a root register is available for this
// compilation unit and the serializer is disabled.
bool CanAddressRelativeToRootsRegister() const;
+ // Check if we can use the roots register to access GC roots.
+ bool CanUseRootsRegister() const;
Isolate* isolate() const { return sequence()->isolate(); }
@@ -344,6 +350,8 @@ class InstructionSelector final {
}
bool instruction_selection_failed() { return instruction_selection_failed_; }
+ void MarkPairProjectionsAsWord32(Node* node);
+
// ===========================================================================
Zone* const zone_;