Index: src/x64/lithium-x64.h |
diff --git a/src/x64/lithium-x64.h b/src/x64/lithium-x64.h |
index d888c01c510dcd3aac60f373af09e8a674542d39..09072404a059578bc0cfbefc2b1dbcee68ededd7 100644 |
--- a/src/x64/lithium-x64.h |
+++ b/src/x64/lithium-x64.h |
@@ -141,6 +141,7 @@ class LCodeGen; |
V(SmiTag) \ |
V(SmiUntag) \ |
V(StackCheck) \ |
+ V(StoreContextSlot) \ |
V(StoreGlobal) \ |
V(StoreKeyedFastElement) \ |
V(StoreKeyedGeneric) \ |
@@ -1246,6 +1247,25 @@ class LLoadContextSlot: public LTemplateInstruction<1, 1, 0> { |
}; |
+class LStoreContextSlot: public LTemplateInstruction<0, 2, 0> { |
+ public: |
+ LStoreContextSlot(LOperand* context, LOperand* value) { |
+ inputs_[0] = context; |
+ inputs_[1] = value; |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(StoreContextSlot, "store-context-slot") |
+ DECLARE_HYDROGEN_ACCESSOR(StoreContextSlot) |
+ |
+ LOperand* context() { return InputAt(0); } |
+ LOperand* value() { return InputAt(1); } |
+ int slot_index() { return hydrogen()->slot_index(); } |
+ int needs_write_barrier() { return hydrogen()->NeedsWriteBarrier(); } |
+ |
+ virtual void PrintDataTo(StringStream* stream); |
+}; |
+ |
+ |
class LPushArgument: public LTemplateInstruction<0, 1, 0> { |
public: |
explicit LPushArgument(LOperand* value) { |