| 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) {
|
|
|