 Chromium Code Reviews
 Chromium Code Reviews Issue 6693066:
  Extend crankshaft support for global stores  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
    
  
    Issue 6693066:
  Extend crankshaft support for global stores  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge| Index: src/x64/lithium-x64.h | 
| diff --git a/src/x64/lithium-x64.h b/src/x64/lithium-x64.h | 
| index 57ef30bdbaf2208d05c31ff0a7d664abff8c8e92..d74e4b6285a187e4332f7934506cb9eabb51b723 100644 | 
| --- a/src/x64/lithium-x64.h | 
| +++ b/src/x64/lithium-x64.h | 
| @@ -145,7 +145,8 @@ class LCodeGen; | 
| V(SmiUntag) \ | 
| V(StackCheck) \ | 
| V(StoreContextSlot) \ | 
| - V(StoreGlobal) \ | 
| + V(StoreGlobalCell) \ | 
| + V(StoreGlobalGeneric) \ | 
| V(StoreKeyedFastElement) \ | 
| V(StoreKeyedGeneric) \ | 
| V(StoreKeyedSpecializedArrayElement) \ | 
| @@ -1268,15 +1269,32 @@ class LLoadGlobalGeneric: public LTemplateInstruction<1, 1, 0> { | 
| }; | 
| -class LStoreGlobal: public LTemplateInstruction<0, 1, 1> { | 
| +class LStoreGlobalCell: public LTemplateInstruction<0, 1, 1> { | 
| public: | 
| - explicit LStoreGlobal(LOperand* value, LOperand* temp) { | 
| + explicit LStoreGlobalCell(LOperand* value, LOperand* temp) { | 
| inputs_[0] = value; | 
| temps_[0] = temp; | 
| } | 
| - 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, 2, 0> { | 
| 
fschneider
2011/04/04 13:47:50
<0, 2, 0>
 
Søren Thygesen Gjesse
2011/04/04 14:16:34
Done.
 | 
| + public: | 
| + explicit LStoreGlobalGeneric(LOperand* global_object, | 
| + LOperand* value) { | 
| + inputs_[0] = global_object; | 
| + inputs_[1] = value; | 
| + } | 
| + | 
| + DECLARE_CONCRETE_INSTRUCTION(StoreGlobalGeneric, "store-global-generic") | 
| + DECLARE_HYDROGEN_ACCESSOR(StoreGlobalGeneric) | 
| + | 
| + LOperand* global_object() { return InputAt(0); } | 
| + Handle<Object> name() const { return hydrogen()->name(); } | 
| + LOperand* value() { return InputAt(1); } | 
| }; |