| Index: src/x64/lithium-x64.h
|
| diff --git a/src/x64/lithium-x64.h b/src/x64/lithium-x64.h
|
| index 9083c1f8db9f9929bb80388f152d1576d9dc78ff..c250a06d48e3dae592738b03d61243dc7f6afd38 100644
|
| --- a/src/x64/lithium-x64.h
|
| +++ b/src/x64/lithium-x64.h
|
| @@ -1189,7 +1189,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 = 0)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = elements;
|
| inputs_[1] = key;
|
| }
|
| @@ -1199,12 +1202,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 = 0)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = elements;
|
| inputs_[1] = key;
|
| }
|
| @@ -1215,13 +1228,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 = 0)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = external_pointer;
|
| inputs_[1] = key;
|
| }
|
| @@ -1235,6 +1257,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_;
|
| };
|
|
|
|
|
| @@ -1677,7 +1706,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 = 0)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = obj;
|
| inputs_[1] = key;
|
| inputs_[2] = val;
|
| @@ -1692,6 +1725,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_;
|
| };
|
|
|
|
|
| @@ -1699,7 +1739,9 @@ class LStoreKeyedFastDoubleElement: public LTemplateInstruction<0, 3, 0> {
|
| public:
|
| LStoreKeyedFastDoubleElement(LOperand* elements,
|
| LOperand* key,
|
| - LOperand* val) {
|
| + LOperand* val,
|
| + uint32_t additional_index = 0)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = elements;
|
| inputs_[1] = key;
|
| inputs_[2] = val;
|
| @@ -1716,6 +1758,13 @@ class LStoreKeyedFastDoubleElement: public LTemplateInstruction<0, 3, 0> {
|
| LOperand* value() { return inputs_[2]; }
|
|
|
| bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); }
|
| + 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_;
|
| };
|
|
|
|
|
| @@ -1723,7 +1772,9 @@ class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 0> {
|
| public:
|
| LStoreKeyedSpecializedArrayElement(LOperand* external_pointer,
|
| LOperand* key,
|
| - LOperand* val) {
|
| + LOperand* val,
|
| + uint32_t additional_index = 0)
|
| + : additional_index_(additional_index) {
|
| inputs_[0] = external_pointer;
|
| inputs_[1] = key;
|
| inputs_[2] = val;
|
| @@ -1739,6 +1790,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_;
|
| };
|
|
|
|
|
|
|