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; |