| Index: src/arm/lithium-arm.h
|
| diff --git a/src/arm/lithium-arm.h b/src/arm/lithium-arm.h
|
| index ec8aac80367d5ab833a063af5bf4c8a62ccd9b15..5f762539380d3d4cfc88b3a073997f455345be0e 100644
|
| --- a/src/arm/lithium-arm.h
|
| +++ b/src/arm/lithium-arm.h
|
| @@ -1226,7 +1226,10 @@ class LLoadExternalArrayPointer: public LTemplateInstruction<1, 1, 0> {
|
|
|
| class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| - LLoadKeyedFastElement(LOperand* elements, LOperand* key) {
|
| + LLoadKeyedFastElement(LOperand* elements,
|
| + LOperand* key,
|
| + uint32_t additional_index)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = elements;
|
| inputs_[1] = key;
|
| }
|
| @@ -1236,12 +1239,22 @@ class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> {
|
|
|
| LOperand* elements() { return inputs_[0]; }
|
| LOperand* key() { return inputs_[1]; }
|
| + uint32_t additional_index() const { return additional_index_; }
|
| + void set_additional_index(uint32_t additional_index) {
|
| + additional_index_ = additional_index;
|
| + }
|
| +
|
| + private:
|
| + uint32_t additional_index_;
|
| };
|
|
|
|
|
| class LLoadKeyedFastDoubleElement: public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| - LLoadKeyedFastDoubleElement(LOperand* elements, LOperand* key) {
|
| + LLoadKeyedFastDoubleElement(LOperand* elements,
|
| + LOperand* key,
|
| + uint32_t additional_index)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = elements;
|
| inputs_[1] = key;
|
| }
|
| @@ -1252,13 +1265,22 @@ class LLoadKeyedFastDoubleElement: public LTemplateInstruction<1, 2, 0> {
|
|
|
| LOperand* elements() { return inputs_[0]; }
|
| LOperand* key() { return inputs_[1]; }
|
| + uint32_t additional_index() const { return additional_index_; }
|
| + void set_additional_index(uint32_t additional_index) {
|
| + additional_index_ = additional_index;
|
| + }
|
| +
|
| + private:
|
| + uint32_t additional_index_;
|
| };
|
|
|
|
|
| class LLoadKeyedSpecializedArrayElement: public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LLoadKeyedSpecializedArrayElement(LOperand* external_pointer,
|
| - LOperand* key) {
|
| + LOperand* key,
|
| + uint32_t additional_index)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = external_pointer;
|
| inputs_[1] = key;
|
| }
|
| @@ -1272,6 +1294,13 @@ class LLoadKeyedSpecializedArrayElement: public LTemplateInstruction<1, 2, 0> {
|
| ElementsKind elements_kind() const {
|
| return hydrogen()->elements_kind();
|
| }
|
| + uint32_t additional_index() const { return additional_index_; }
|
| + void set_additional_index(uint32_t additional_index) {
|
| + additional_index_ = additional_index;
|
| + }
|
| +
|
| + private:
|
| + uint32_t additional_index_;
|
| };
|
|
|
|
|
| @@ -1725,7 +1754,11 @@ class LStoreNamedGeneric: public LTemplateInstruction<0, 2, 0> {
|
|
|
| class LStoreKeyedFastElement: public LTemplateInstruction<0, 3, 0> {
|
| public:
|
| - LStoreKeyedFastElement(LOperand* obj, LOperand* key, LOperand* val) {
|
| + LStoreKeyedFastElement(LOperand* obj,
|
| + LOperand* key,
|
| + LOperand* val,
|
| + uint32_t additional_index)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = obj;
|
| inputs_[1] = key;
|
| inputs_[2] = val;
|
| @@ -1740,6 +1773,13 @@ class LStoreKeyedFastElement: public LTemplateInstruction<0, 3, 0> {
|
| LOperand* object() { return inputs_[0]; }
|
| LOperand* key() { return inputs_[1]; }
|
| LOperand* value() { return inputs_[2]; }
|
| + uint32_t additional_index() const { return additional_index_; }
|
| + void set_additional_index(uint32_t additional_index) {
|
| + additional_index_ = additional_index;
|
| + }
|
| +
|
| + private:
|
| + uint32_t additional_index_;
|
| };
|
|
|
|
|
| @@ -1747,7 +1787,9 @@ class LStoreKeyedFastDoubleElement: public LTemplateInstruction<0, 3, 0> {
|
| public:
|
| LStoreKeyedFastDoubleElement(LOperand* elements,
|
| LOperand* key,
|
| - LOperand* val) {
|
| + LOperand* val,
|
| + uint32_t additional_index)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = elements;
|
| inputs_[1] = key;
|
| inputs_[2] = val;
|
| @@ -1762,8 +1804,15 @@ class LStoreKeyedFastDoubleElement: public LTemplateInstruction<0, 3, 0> {
|
| LOperand* elements() { return inputs_[0]; }
|
| LOperand* key() { return inputs_[1]; }
|
| LOperand* value() { return inputs_[2]; }
|
| + uint32_t additional_index() const { return additional_index_; }
|
| + void set_additional_index(uint32_t additional_index) {
|
| + additional_index_ = additional_index;
|
| + }
|
|
|
| bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); }
|
| +
|
| + private:
|
| + uint32_t additional_index_;
|
| };
|
|
|
|
|
| @@ -1790,7 +1839,9 @@ class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 0> {
|
| public:
|
| LStoreKeyedSpecializedArrayElement(LOperand* external_pointer,
|
| LOperand* key,
|
| - LOperand* val) {
|
| + LOperand* val,
|
| + uint32_t additional_index)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = external_pointer;
|
| inputs_[1] = key;
|
| inputs_[2] = val;
|
| @@ -1806,6 +1857,13 @@ class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 0> {
|
| ElementsKind elements_kind() const {
|
| return hydrogen()->elements_kind();
|
| }
|
| + uint32_t additional_index() const { return additional_index_; }
|
| + void set_additional_index(uint32_t additional_index) {
|
| + additional_index_ = additional_index;
|
| + }
|
| +
|
| + private:
|
| + uint32_t additional_index_;
|
| };
|
|
|
|
|
|
|