Index: src/arm/lithium-arm.h |
diff --git a/src/arm/lithium-arm.h b/src/arm/lithium-arm.h |
index fb36fe9c0d9dc9191b49b8f23d792a5250bcf01d..6786621536cee436144d2ed78880176ce5675e89 100644 |
--- a/src/arm/lithium-arm.h |
+++ b/src/arm/lithium-arm.h |
@@ -125,10 +125,8 @@ class LCodeGen; |
V(LoadFunctionPrototype) \ |
V(LoadGlobalCell) \ |
V(LoadGlobalGeneric) \ |
- V(LoadKeyedFastDoubleElement) \ |
- V(LoadKeyedFastElement) \ |
+ V(LoadKeyed) \ |
V(LoadKeyedGeneric) \ |
- V(LoadKeyedSpecializedArrayElement) \ |
V(LoadNamedField) \ |
V(LoadNamedFieldPolymorphic) \ |
V(LoadNamedGeneric) \ |
@@ -157,10 +155,8 @@ class LCodeGen; |
V(StoreContextSlot) \ |
V(StoreGlobalCell) \ |
V(StoreGlobalGeneric) \ |
- V(StoreKeyedFastDoubleElement) \ |
- V(StoreKeyedFastElement) \ |
+ V(StoreKeyed) \ |
V(StoreKeyedGeneric) \ |
- V(StoreKeyedSpecializedArrayElement) \ |
V(StoreNamedField) \ |
V(StoreNamedGeneric) \ |
V(StringAdd) \ |
@@ -1357,58 +1353,25 @@ class LLoadExternalArrayPointer: public LTemplateInstruction<1, 1, 0> { |
}; |
-class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> { |
+class LLoadKeyed: public LTemplateInstruction<1, 2, 0> { |
public: |
- LLoadKeyedFastElement(LOperand* elements, LOperand* key) { |
+ LLoadKeyed(LOperand* elements, LOperand* key) { |
inputs_[0] = elements; |
inputs_[1] = key; |
} |
LOperand* elements() { return inputs_[0]; } |
LOperand* key() { return inputs_[1]; } |
- |
- DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastElement, "load-keyed-fast-element") |
- DECLARE_HYDROGEN_ACCESSOR(LoadKeyedFastElement) |
- |
- uint32_t additional_index() const { return hydrogen()->index_offset(); } |
-}; |
- |
- |
-class LLoadKeyedFastDoubleElement: public LTemplateInstruction<1, 2, 0> { |
- public: |
- LLoadKeyedFastDoubleElement(LOperand* elements, LOperand* key) { |
- inputs_[0] = elements; |
- inputs_[1] = key; |
+ ElementsKind elements_kind() const { |
+ return hydrogen()->elements_kind(); |
} |
- |
- LOperand* elements() { return inputs_[0]; } |
- LOperand* key() { return inputs_[1]; } |
- |
- DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastDoubleElement, |
- "load-keyed-fast-double-element") |
- DECLARE_HYDROGEN_ACCESSOR(LoadKeyedFastDoubleElement) |
- |
- uint32_t additional_index() const { return hydrogen()->index_offset(); } |
-}; |
- |
- |
-class LLoadKeyedSpecializedArrayElement: public LTemplateInstruction<1, 2, 0> { |
- public: |
- LLoadKeyedSpecializedArrayElement(LOperand* external_pointer, LOperand* key) { |
- inputs_[0] = external_pointer; |
- inputs_[1] = key; |
+ bool is_external() const { |
+ return hydrogen()->is_external(); |
} |
- LOperand* external_pointer() { return inputs_[0]; } |
- LOperand* key() { return inputs_[1]; } |
- |
- DECLARE_CONCRETE_INSTRUCTION(LoadKeyedSpecializedArrayElement, |
- "load-keyed-specialized-array-element") |
- DECLARE_HYDROGEN_ACCESSOR(LoadKeyedSpecializedArrayElement) |
+ DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") |
+ DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) |
- ElementsKind elements_kind() const { |
- return hydrogen()->elements_kind(); |
- } |
uint32_t additional_index() const { return hydrogen()->index_offset(); } |
}; |
@@ -1922,51 +1885,28 @@ class LStoreNamedGeneric: public LTemplateInstruction<0, 2, 0> { |
}; |
-class LStoreKeyedFastElement: public LTemplateInstruction<0, 3, 0> { |
+class LStoreKeyed: public LTemplateInstruction<0, 3, 0> { |
public: |
- LStoreKeyedFastElement(LOperand* object, LOperand* key, LOperand* value) { |
+ LStoreKeyed(LOperand* object, LOperand* key, LOperand* value) { |
inputs_[0] = object; |
inputs_[1] = key; |
inputs_[2] = value; |
} |
- LOperand* object() { return inputs_[0]; } |
- LOperand* key() { return inputs_[1]; } |
- LOperand* value() { return inputs_[2]; } |
- |
- DECLARE_CONCRETE_INSTRUCTION(StoreKeyedFastElement, |
- "store-keyed-fast-element") |
- DECLARE_HYDROGEN_ACCESSOR(StoreKeyedFastElement) |
- |
- virtual void PrintDataTo(StringStream* stream); |
- |
- uint32_t additional_index() const { return hydrogen()->index_offset(); } |
-}; |
- |
- |
-class LStoreKeyedFastDoubleElement: public LTemplateInstruction<0, 3, 0> { |
- public: |
- LStoreKeyedFastDoubleElement(LOperand* elements, |
- LOperand* key, |
- LOperand* value) { |
- inputs_[0] = elements; |
- inputs_[1] = key; |
- inputs_[2] = value; |
- } |
- |
+ bool is_external() const { return hydrogen()->is_external(); } |
LOperand* elements() { return inputs_[0]; } |
LOperand* key() { return inputs_[1]; } |
LOperand* value() { return inputs_[2]; } |
+ ElementsKind elements_kind() const { |
+ return hydrogen()->elements_kind(); |
+ } |
- DECLARE_CONCRETE_INSTRUCTION(StoreKeyedFastDoubleElement, |
- "store-keyed-fast-double-element") |
- DECLARE_HYDROGEN_ACCESSOR(StoreKeyedFastDoubleElement) |
+ DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") |
+ DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) |
virtual void PrintDataTo(StringStream* stream); |
- |
- uint32_t additional_index() const { return hydrogen()->index_offset(); } |
- |
bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } |
+ uint32_t additional_index() const { return hydrogen()->index_offset(); } |
}; |
@@ -1990,28 +1930,6 @@ class LStoreKeyedGeneric: public LTemplateInstruction<0, 3, 0> { |
StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } |
}; |
-class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 0> { |
- public: |
- LStoreKeyedSpecializedArrayElement(LOperand* external_pointer, |
- LOperand* key, |
- LOperand* value) { |
- inputs_[0] = external_pointer; |
- inputs_[1] = key; |
- inputs_[2] = value; |
- } |
- |
- LOperand* external_pointer() { return inputs_[0]; } |
- LOperand* key() { return inputs_[1]; } |
- LOperand* value() { return inputs_[2]; } |
- |
- DECLARE_CONCRETE_INSTRUCTION(StoreKeyedSpecializedArrayElement, |
- "store-keyed-specialized-array-element") |
- DECLARE_HYDROGEN_ACCESSOR(StoreKeyedSpecializedArrayElement) |
- |
- ElementsKind elements_kind() const { return hydrogen()->elements_kind(); } |
- uint32_t additional_index() const { return hydrogen()->index_offset(); } |
-}; |
- |
class LTransitionElementsKind: public LTemplateInstruction<1, 1, 2> { |
public: |