Chromium Code Reviews| Index: src/arm/lithium-arm.h |
| diff --git a/src/arm/lithium-arm.h b/src/arm/lithium-arm.h |
| index 50650c13bcfb0eaa1d11a4765cb700d009d07cd9..815350f4264598c80098bf07e8b76689e3a5fafc 100644 |
| --- a/src/arm/lithium-arm.h |
| +++ b/src/arm/lithium-arm.h |
| @@ -122,9 +122,9 @@ class LCodeGen; |
| V(LoadGlobal) \ |
| V(LoadKeyedFastElement) \ |
| V(LoadKeyedGeneric) \ |
| + V(LoadKeyedSpecializedArrayElement) \ |
| V(LoadNamedField) \ |
| V(LoadNamedGeneric) \ |
| - V(LoadPixelArrayElement) \ |
| V(ModI) \ |
| V(MulI) \ |
| V(NumberTagD) \ |
| @@ -146,9 +146,9 @@ class LCodeGen; |
| V(StoreGlobal) \ |
| V(StoreKeyedFastElement) \ |
| V(StoreKeyedGeneric) \ |
| + V(StoreKeyedSpecializedArrayElement) \ |
| V(StoreNamedField) \ |
| V(StoreNamedGeneric) \ |
| - V(StorePixelArrayElement) \ |
| V(StringCharCodeAt) \ |
| V(StringCharFromCode) \ |
| V(StringLength) \ |
| @@ -1211,19 +1211,26 @@ class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> { |
| }; |
| -class LLoadPixelArrayElement: public LTemplateInstruction<1, 2, 0> { |
| +class LLoadKeyedSpecializedArrayElement: public LTemplateInstruction<1, 2, 0> { |
| public: |
| - LLoadPixelArrayElement(LOperand* external_pointer, LOperand* key) { |
| + LLoadKeyedSpecializedArrayElement(LOperand* external_pointer, |
| + LOperand* key, |
| + ExternalArrayType array_type) |
| + : array_type_(array_type) { |
| inputs_[0] = external_pointer; |
| inputs_[1] = key; |
| } |
| - DECLARE_CONCRETE_INSTRUCTION(LoadPixelArrayElement, |
| - "load-pixel-array-element") |
| - DECLARE_HYDROGEN_ACCESSOR(LoadPixelArrayElement) |
| + DECLARE_CONCRETE_INSTRUCTION(LoadKeyedSpecializedArrayElement, |
| + "load-keyed-specialized-array-element") |
| + DECLARE_HYDROGEN_ACCESSOR(LoadKeyedSpecializedArrayElement) |
| LOperand* external_pointer() { return inputs_[0]; } |
| LOperand* key() { return inputs_[1]; } |
| + ExternalArrayType array_type() const { return array_type_; } |
|
Kevin Millikin (Chromium)
2011/03/24 11:21:00
The hydrogen instruction has the array type. You
danno
2011/03/24 13:18:38
Done.
|
| + |
| + private: |
| + ExternalArrayType array_type_; |
| }; |
| @@ -1628,25 +1635,32 @@ class LStoreKeyedGeneric: public LTemplateInstruction<0, 3, 0> { |
| LOperand* value() { return inputs_[2]; } |
| }; |
| -class LStorePixelArrayElement: public LTemplateInstruction<0, 3, 0> { |
| +class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 0> { |
| public: |
| - LStorePixelArrayElement(LOperand* external_pointer, |
| - LOperand* key, |
| - LOperand* val) { |
| + LStoreKeyedSpecializedArrayElement(LOperand* external_pointer, |
| + LOperand* key, |
| + LOperand* val, |
| + ExternalArrayType array_type) |
| + : array_type_(array_type) { |
| inputs_[0] = external_pointer; |
| inputs_[1] = key; |
| inputs_[2] = val; |
| } |
| - DECLARE_CONCRETE_INSTRUCTION(StorePixelArrayElement, |
| - "store-pixel-array-element") |
| - DECLARE_HYDROGEN_ACCESSOR(StorePixelArrayElement) |
| + DECLARE_CONCRETE_INSTRUCTION(StoreKeyedSpecializedArrayElement, |
| + "store-keyed-specialized-array-element") |
| + DECLARE_HYDROGEN_ACCESSOR(StoreKeyedSpecializedArrayElement) |
| LOperand* external_pointer() { return inputs_[0]; } |
| LOperand* key() { return inputs_[1]; } |
| LOperand* value() { return inputs_[2]; } |
| + ExternalArrayType array_type() const { return array_type_; } |
|
Kevin Millikin (Chromium)
2011/03/24 11:21:00
Also delegate to the hydrogen instruction here.
danno
2011/03/24 13:18:38
Done.
|
| + |
| + private: |
| + ExternalArrayType array_type_; |
| }; |
| + |
| class LStringCharCodeAt: public LTemplateInstruction<1, 2, 0> { |
| public: |
| LStringCharCodeAt(LOperand* string, LOperand* index) { |