Index: src/arm/lithium-arm.h |
=================================================================== |
--- src/arm/lithium-arm.h (revision 6703) |
+++ src/arm/lithium-arm.h (working copy) |
@@ -41,7 +41,6 @@ |
#define LITHIUM_ALL_INSTRUCTION_LIST(V) \ |
V(ControlInstruction) \ |
- V(Constant) \ |
V(Call) \ |
V(StoreKeyed) \ |
V(StoreNamed) \ |
@@ -153,6 +152,8 @@ |
V(Typeof) \ |
V(TypeofIs) \ |
V(TypeofIsAndBranch) \ |
+ V(IsConstructCall) \ |
+ V(IsConstructCallAndBranch) \ |
V(UnaryMathOperation) \ |
V(UnknownOSRValue) \ |
V(ValueOf) |
@@ -903,44 +904,30 @@ |
}; |
-class LConstant: public LTemplateInstruction<1, 0, 0> { |
- DECLARE_INSTRUCTION(Constant) |
-}; |
- |
- |
-class LConstantI: public LConstant { |
+class LConstantI: public LTemplateInstruction<1, 0, 0> { |
public: |
- explicit LConstantI(int32_t value) : value_(value) { } |
- int32_t value() const { return value_; } |
- |
DECLARE_CONCRETE_INSTRUCTION(ConstantI, "constant-i") |
+ DECLARE_HYDROGEN_ACCESSOR(Constant) |
- private: |
- int32_t value_; |
+ int32_t value() const { return hydrogen()->Integer32Value(); } |
}; |
-class LConstantD: public LConstant { |
+class LConstantD: public LTemplateInstruction<1, 0, 0> { |
public: |
- explicit LConstantD(double value) : value_(value) { } |
- double value() const { return value_; } |
- |
DECLARE_CONCRETE_INSTRUCTION(ConstantD, "constant-d") |
+ DECLARE_HYDROGEN_ACCESSOR(Constant) |
- private: |
- double value_; |
+ double value() const { return hydrogen()->DoubleValue(); } |
}; |
-class LConstantT: public LConstant { |
+class LConstantT: public LTemplateInstruction<1, 0, 0> { |
public: |
- explicit LConstantT(Handle<Object> value) : value_(value) { } |
- Handle<Object> value() const { return value_; } |
- |
DECLARE_CONCRETE_INSTRUCTION(ConstantT, "constant-t") |
+ DECLARE_HYDROGEN_ACCESSOR(Constant) |
- private: |
- Handle<Object> value_; |
+ Handle<Object> value() const { return hydrogen()->handle(); } |
}; |
@@ -1716,6 +1703,24 @@ |
}; |
+class LIsConstructCall: public LTemplateInstruction<1, 0, 0> { |
+ public: |
+ DECLARE_CONCRETE_INSTRUCTION(IsConstructCall, "is-construct-call") |
+ DECLARE_HYDROGEN_ACCESSOR(IsConstructCall) |
+}; |
+ |
+ |
+class LIsConstructCallAndBranch: public LControlInstruction<0, 1> { |
+ public: |
+ explicit LIsConstructCallAndBranch(LOperand* temp) { |
+ temps_[0] = temp; |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(IsConstructCallAndBranch, |
+ "is-construct-call-and-branch") |
+}; |
+ |
+ |
class LDeleteProperty: public LTemplateInstruction<1, 2, 0> { |
public: |
LDeleteProperty(LOperand* obj, LOperand* key) { |