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_; |
}; |