Index: src/ia32/lithium-ia32.h |
=================================================================== |
--- src/ia32/lithium-ia32.h (revision 6891) |
+++ src/ia32/lithium-ia32.h (working copy) |
@@ -42,8 +42,6 @@ |
#define LITHIUM_ALL_INSTRUCTION_LIST(V) \ |
V(ControlInstruction) \ |
V(Call) \ |
- V(StoreKeyed) \ |
- V(StoreNamed) \ |
LITHIUM_CONCRETE_INSTRUCTION_LIST(V) |
@@ -1581,34 +1579,23 @@ |
}; |
-class LStoreNamed: public LTemplateInstruction<0, 2, 1> { |
+class LStoreNamedField: public LTemplateInstruction<0, 2, 1> { |
public: |
- LStoreNamed(LOperand* obj, LOperand* val) { |
+ LStoreNamedField(LOperand* obj, LOperand* val, LOperand* temp) { |
inputs_[0] = obj; |
inputs_[1] = val; |
+ temps_[0] = temp; |
} |
- DECLARE_INSTRUCTION(StoreNamed) |
- DECLARE_HYDROGEN_ACCESSOR(StoreNamed) |
+ DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") |
+ DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) |
virtual void PrintDataTo(StringStream* stream); |
LOperand* object() { return inputs_[0]; } |
LOperand* value() { return inputs_[1]; } |
- Handle<Object> name() const { return hydrogen()->name(); } |
-}; |
- |
-class LStoreNamedField: public LStoreNamed { |
- public: |
- LStoreNamedField(LOperand* obj, LOperand* val, LOperand* temp) |
- : LStoreNamed(obj, val) { |
- temps_[0] = temp; |
- } |
- |
- DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") |
- DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) |
- |
+ Handle<Object> name() const { return hydrogen()->name(); } |
bool is_in_object() { return hydrogen()->is_in_object(); } |
int offset() { return hydrogen()->offset(); } |
bool needs_write_barrier() { return hydrogen()->NeedsWriteBarrier(); } |
@@ -1627,6 +1614,8 @@ |
DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") |
DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) |
+ virtual void PrintDataTo(StringStream* stream); |
+ |
LOperand* context() { return inputs_[0]; } |
LOperand* object() { return inputs_[1]; } |
LOperand* value() { return inputs_[2]; } |
@@ -1634,15 +1623,17 @@ |
}; |
-class LStoreKeyed: public LTemplateInstruction<0, 3, 0> { |
+class LStoreKeyedFastElement: public LTemplateInstruction<0, 3, 0> { |
public: |
- LStoreKeyed(LOperand* obj, LOperand* key, LOperand* val) { |
+ LStoreKeyedFastElement(LOperand* obj, LOperand* key, LOperand* val) { |
inputs_[0] = obj; |
inputs_[1] = key; |
inputs_[2] = val; |
} |
- DECLARE_INSTRUCTION(StoreKeyed) |
+ DECLARE_CONCRETE_INSTRUCTION(StoreKeyedFastElement, |
+ "store-keyed-fast-element") |
+ DECLARE_HYDROGEN_ACCESSOR(StoreKeyedFastElement) |
virtual void PrintDataTo(StringStream* stream); |
@@ -1652,17 +1643,6 @@ |
}; |
-class LStoreKeyedFastElement: public LStoreKeyed { |
- public: |
- LStoreKeyedFastElement(LOperand* obj, LOperand* key, LOperand* val) |
- : LStoreKeyed(obj, key, val) {} |
- |
- DECLARE_CONCRETE_INSTRUCTION(StoreKeyedFastElement, |
- "store-keyed-fast-element") |
- DECLARE_HYDROGEN_ACCESSOR(StoreKeyedFastElement) |
-}; |
- |
- |
class LStorePixelArrayElement: public LTemplateInstruction<0, 3, 1> { |
public: |
LStorePixelArrayElement(LOperand* external_pointer, |
@@ -1699,6 +1679,8 @@ |
DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") |
+ virtual void PrintDataTo(StringStream* stream); |
+ |
LOperand* context() { return inputs_[0]; } |
LOperand* object() { return inputs_[1]; } |
LOperand* key() { return inputs_[2]; } |