Chromium Code Reviews| Index: src/ia32/lithium-ia32.h |
| diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h |
| index 09f0b0d7290f02b07ae762bd64f93db39f014c1d..edf7411323ec6af70a3af08e9acc9a8dc0b0add7 100644 |
| --- a/src/ia32/lithium-ia32.h |
| +++ b/src/ia32/lithium-ia32.h |
| @@ -1228,7 +1228,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; |
| } |
| @@ -1238,13 +1241,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_; |
|
Jakob Kummerow
2012/05/08 13:46:26
You don't need to pass this value to the LInstruct
Massi
2012/05/14 13:48:52
Done.
|
| }; |
| class LLoadKeyedFastDoubleElement: public LTemplateInstruction<1, 2, 0> { |
| public: |
| LLoadKeyedFastDoubleElement(LOperand* elements, |
| - LOperand* key) { |
| + LOperand* key, |
| + uint32_t additional_index) |
| + : additional_index_(additional_index) { |
| inputs_[0] = elements; |
| inputs_[1] = key; |
| } |
| @@ -1255,13 +1267,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; |
| } |
| @@ -1275,6 +1296,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_; |
| }; |
| @@ -1760,7 +1788,11 @@ class LStoreNamedGeneric: public LTemplateInstruction<0, 3, 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; |
| @@ -1775,6 +1807,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_; |
| }; |
| @@ -1782,7 +1821,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; |
| @@ -1797,8 +1838,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_; |
| }; |
| @@ -1806,7 +1854,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; |
| @@ -1822,6 +1872,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_; |
| }; |