Index: src/x64/lithium-x64.h |
diff --git a/src/x64/lithium-x64.h b/src/x64/lithium-x64.h |
index 6cf4af661f6ba392bf71bea658049f37d2863f40..7255c8d340fcf2652c8334007b416ec9094adf1c 100644 |
--- a/src/x64/lithium-x64.h |
+++ b/src/x64/lithium-x64.h |
@@ -126,10 +126,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) \ |
@@ -1353,56 +1349,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; |
} |
- DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastElement, "load-keyed-fast-element") |
- DECLARE_HYDROGEN_ACCESSOR(LoadKeyedFastElement) |
+ DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") |
+ DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) |
- LOperand* elements() { return inputs_[0]; } |
- LOperand* key() { return inputs_[1]; } |
- 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; |
+ bool is_external() const { |
+ return hydrogen()->is_external(); |
} |
- |
- DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastDoubleElement, |
- "load-keyed-fast-double-element") |
- DECLARE_HYDROGEN_ACCESSOR(LoadKeyedFastDoubleElement) |
- |
LOperand* elements() { return inputs_[0]; } |
LOperand* key() { return inputs_[1]; } |
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; |
- } |
- |
- DECLARE_CONCRETE_INSTRUCTION(LoadKeyedSpecializedArrayElement, |
- "load-keyed-specialized-array-element") |
- DECLARE_HYDROGEN_ACCESSOR(LoadKeyedSpecializedArrayElement) |
- |
- LOperand* external_pointer() { return inputs_[0]; } |
- LOperand* key() { return inputs_[1]; } |
ElementsKind elements_kind() const { |
return hydrogen()->elements_kind(); |
} |
- uint32_t additional_index() const { return hydrogen()->index_offset(); } |
}; |
@@ -1899,76 +1864,29 @@ 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); |
- |
bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } |
uint32_t additional_index() const { return hydrogen()->index_offset(); } |
}; |
-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 LStoreKeyedGeneric: public LTemplateInstruction<0, 3, 0> { |
public: |
LStoreKeyedGeneric(LOperand* object, LOperand* key, LOperand* value) { |