Chromium Code Reviews| Index: src/ia32/lithium-ia32.h |
| diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h |
| index e5792e89bb907b8ac451653f8249b6ef61d43d3f..ccc2b55056a5a1ea068c04b23cf411cf3ad24e61 100644 |
| --- a/src/ia32/lithium-ia32.h |
| +++ b/src/ia32/lithium-ia32.h |
| @@ -147,7 +147,8 @@ class LCodeGen; |
| V(SmiUntag) \ |
| V(StackCheck) \ |
| V(StoreContextSlot) \ |
| - V(StoreGlobal) \ |
| + V(StoreGlobalCell) \ |
| + V(StoreGlobalGeneric) \ |
| V(StoreKeyedFastElement) \ |
| V(StoreKeyedGeneric) \ |
| V(StoreKeyedSpecializedArrayElement) \ |
| @@ -1317,14 +1318,34 @@ class LLoadGlobalGeneric: public LTemplateInstruction<1, 2, 0> { |
| }; |
| -class LStoreGlobal: public LTemplateInstruction<0, 1, 0> { |
| +class LStoreGlobalCell: public LTemplateInstruction<0, 1, 0> { |
| public: |
| - explicit LStoreGlobal(LOperand* value) { |
| + explicit LStoreGlobalCell(LOperand* value) { |
| inputs_[0] = value; |
| } |
| - DECLARE_CONCRETE_INSTRUCTION(StoreGlobal, "store-global") |
| - DECLARE_HYDROGEN_ACCESSOR(StoreGlobal) |
| + DECLARE_CONCRETE_INSTRUCTION(StoreGlobalCell, "store-global-cell") |
| + DECLARE_HYDROGEN_ACCESSOR(StoreGlobalCell) |
| +}; |
| + |
| + |
| +class LStoreGlobalGeneric: public LTemplateInstruction<1, 3, 0> { |
|
fschneider
2011/04/04 13:47:50
StoreGlobalGeneric should not need a result operan
Søren Thygesen Gjesse
2011/04/04 14:16:34
Done.
|
| + public: |
| + explicit LStoreGlobalGeneric(LOperand* context, |
| + LOperand* global_object, |
| + LOperand* value) { |
| + inputs_[0] = context; |
| + inputs_[1] = global_object; |
| + inputs_[2] = value; |
| + } |
| + |
| + DECLARE_CONCRETE_INSTRUCTION(StoreGlobalGeneric, "store-global-generic") |
| + DECLARE_HYDROGEN_ACCESSOR(StoreGlobalGeneric) |
| + |
| + LOperand* context() { return InputAt(0); } |
| + LOperand* global_object() { return InputAt(1); } |
| + Handle<Object> name() const { return hydrogen()->name(); } |
| + LOperand* value() { return InputAt(2); } |
| }; |