diff options
Diffstat (limited to 'deps/v8/src/hydrogen-instructions.h')
-rw-r--r-- | deps/v8/src/hydrogen-instructions.h | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/deps/v8/src/hydrogen-instructions.h b/deps/v8/src/hydrogen-instructions.h index ff8170012..eaab8adef 100644 --- a/deps/v8/src/hydrogen-instructions.h +++ b/deps/v8/src/hydrogen-instructions.h @@ -64,6 +64,7 @@ class LChunkBuilder; #define HYDROGEN_CONCRETE_INSTRUCTION_LIST(V) \ + V(AbnormalExit) \ V(AccessArgumentsAt) \ V(Add) \ V(ApplyArguments) \ @@ -834,12 +835,11 @@ class HReturn: public HUnaryControlInstruction { }; -class HThrow: public HUnaryControlInstruction { +class HAbnormalExit: public HControlInstruction { public: - explicit HThrow(HValue* value) - : HUnaryControlInstruction(value, NULL, NULL) { } + HAbnormalExit() : HControlInstruction(NULL, NULL) { } - DECLARE_CONCRETE_INSTRUCTION(Throw, "throw") + DECLARE_CONCRETE_INSTRUCTION(AbnormalExit, "abnormal_exit") }; @@ -866,6 +866,20 @@ class HUnaryOperation: public HInstruction { }; +class HThrow: public HUnaryOperation { + public: + explicit HThrow(HValue* value) : HUnaryOperation(value) { + SetAllSideEffects(); + } + + virtual Representation RequiredInputRepresentation(int index) const { + return Representation::Tagged(); + } + + DECLARE_CONCRETE_INSTRUCTION(Throw, "throw") +}; + + class HChange: public HUnaryOperation { public: HChange(HValue* value, @@ -989,7 +1003,7 @@ class HStackCheck: public HInstruction { public: HStackCheck() { } - DECLARE_CONCRETE_INSTRUCTION(Throw, "stack_check") + DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack_check") }; @@ -1831,6 +1845,7 @@ class HApplyArguments: public HInstruction { SetOperandAt(1, receiver); SetOperandAt(2, length); SetOperandAt(3, elements); + SetAllSideEffects(); } virtual Representation RequiredInputRepresentation(int index) const { @@ -1850,8 +1865,6 @@ class HApplyArguments: public HInstruction { DECLARE_CONCRETE_INSTRUCTION(ApplyArguments, "apply_arguments") - - protected: virtual void InternalSetOperandAt(int index, HValue* value) { operands_[index] = value; @@ -3073,6 +3086,10 @@ class HTypeof: public HUnaryOperation { set_representation(Representation::Tagged()); } + virtual Representation RequiredInputRepresentation(int index) const { + return Representation::Tagged(); + } + DECLARE_CONCRETE_INSTRUCTION(Typeof, "typeof") }; |