| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index cdd141714a91bed43a72fcae465df270676a6980..eaab8adef2b0eec3406abff64bac5f8333d76ea9 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/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;
|
|
|