| Index: src/arm/lithium-arm.h
|
| diff --git a/src/arm/lithium-arm.h b/src/arm/lithium-arm.h
|
| index 9cc9a6619a31871665c7c3817e04a69b9d72703d..b29d65193be888f11711d91f384fedfd00340fd3 100644
|
| --- a/src/arm/lithium-arm.h
|
| +++ b/src/arm/lithium-arm.h
|
| @@ -50,6 +50,7 @@ class LCodeGen;
|
| V(AccessArgumentsAt) \
|
| V(AddI) \
|
| V(AllocateObject) \
|
| + V(Allocate) \
|
| V(ApplyArguments) \
|
| V(ArgumentsElements) \
|
| V(ArgumentsLength) \
|
| @@ -175,6 +176,7 @@ class LCodeGen;
|
| V(Throw) \
|
| V(ToFastProperties) \
|
| V(TransitionElementsKind) \
|
| + V(TrapAllocationMemento) \
|
| V(Typeof) \
|
| V(TypeofIsAndBranch) \
|
| V(UnaryMathOperation) \
|
| @@ -1619,6 +1621,7 @@ class LThisFunction: public LTemplateInstruction<1, 0, 0> {
|
| class LContext: public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(Context, "context")
|
| + DECLARE_HYDROGEN_ACCESSOR(Context)
|
| };
|
|
|
|
|
| @@ -1852,6 +1855,7 @@ class LNumberTagD: public LTemplateInstruction<1, 1, 2> {
|
| LOperand* temp2() { return temps_[1]; }
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(NumberTagD, "number-tag-d")
|
| + DECLARE_HYDROGEN_ACCESSOR(Change)
|
| };
|
|
|
|
|
| @@ -2032,19 +2036,16 @@ class LStoreKeyedGeneric: public LTemplateInstruction<0, 3, 0> {
|
| };
|
|
|
|
|
| -class LTransitionElementsKind: public LTemplateInstruction<1, 1, 2> {
|
| +class LTransitionElementsKind: public LTemplateInstruction<1, 1, 1> {
|
| public:
|
| LTransitionElementsKind(LOperand* object,
|
| - LOperand* new_map_temp,
|
| - LOperand* temp) {
|
| + LOperand* new_map_temp) {
|
| inputs_[0] = object;
|
| temps_[0] = new_map_temp;
|
| - temps_[1] = temp;
|
| }
|
|
|
| LOperand* object() { return inputs_[0]; }
|
| LOperand* new_map_temp() { return temps_[0]; }
|
| - LOperand* temp() { return temps_[1]; }
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(TransitionElementsKind,
|
| "transition-elements-kind")
|
| @@ -2059,6 +2060,22 @@ class LTransitionElementsKind: public LTemplateInstruction<1, 1, 2> {
|
| };
|
|
|
|
|
| +class LTrapAllocationMemento : public LTemplateInstruction<0, 1, 1> {
|
| + public:
|
| + LTrapAllocationMemento(LOperand* object,
|
| + LOperand* temp) {
|
| + inputs_[0] = object;
|
| + temps_[0] = temp;
|
| + }
|
| +
|
| + LOperand* object() { return inputs_[0]; }
|
| + LOperand* temp() { return temps_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(TrapAllocationMemento,
|
| + "trap-allocation-memento")
|
| +};
|
| +
|
| +
|
| class LStringAdd: public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LStringAdd(LOperand* left, LOperand* right) {
|
| @@ -2239,7 +2256,7 @@ class LClampTToUint8: public LTemplateInstruction<1, 1, 1> {
|
| };
|
|
|
|
|
| -class LAllocateObject: public LTemplateInstruction<1, 0, 2> {
|
| +class LAllocateObject: public LTemplateInstruction<1, 1, 2> {
|
| public:
|
| LAllocateObject(LOperand* temp, LOperand* temp2) {
|
| temps_[0] = temp;
|
| @@ -2254,6 +2271,23 @@ class LAllocateObject: public LTemplateInstruction<1, 0, 2> {
|
| };
|
|
|
|
|
| +class LAllocate: public LTemplateInstruction<1, 2, 2> {
|
| + public:
|
| + LAllocate(LOperand* size, LOperand* temp1, LOperand* temp2) {
|
| + inputs_[1] = size;
|
| + temps_[0] = temp1;
|
| + temps_[1] = temp2;
|
| + }
|
| +
|
| + LOperand* size() { return inputs_[1]; }
|
| + LOperand* temp1() { return temps_[0]; }
|
| + LOperand* temp2() { return temps_[1]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(Allocate, "allocate")
|
| + DECLARE_HYDROGEN_ACCESSOR(Allocate)
|
| +};
|
| +
|
| +
|
| class LFastLiteral: public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(FastLiteral, "fast-literal")
|
|
|