Index: src/ia32/lithium-ia32.h |
diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h |
index e79214b82282413af26c2261612d1ecca6c14f97..6ad418219141d0b289c3cfe841ce5b5223fa949d 100644 |
--- a/src/ia32/lithium-ia32.h |
+++ b/src/ia32/lithium-ia32.h |
@@ -89,6 +89,7 @@ class Translation; |
// LGlobalReceiver |
// LLabel |
// LLayzBailout |
+// LLoadContextSlot |
// LLoadGlobal |
// LMaterializedLiteral |
// LArrayLiteral |
@@ -225,6 +226,7 @@ class Translation; |
V(ClassOfTestAndBranch) \ |
V(Label) \ |
V(LazyBailout) \ |
+ V(LoadContextSlot) \ |
V(LoadElements) \ |
V(LoadGlobal) \ |
V(LoadKeyedFastElement) \ |
@@ -1342,6 +1344,20 @@ class LStoreGlobal: public LUnaryOperation<1> { |
}; |
+class LLoadContextSlot: public LTemplateInstruction<1> { |
+ public: |
+ DECLARE_CONCRETE_INSTRUCTION(LoadContextSlot, "load-context-slot") |
+ DECLARE_HYDROGEN_ACCESSOR(LoadContextSlot) |
+ |
+ int context_chain_length() const { |
+ return hydrogen()->context_chain_length(); |
+ } |
+ int slot_index() const { return hydrogen()->slot_index(); } |
+ |
+ virtual void PrintDataTo(StringStream* stream); |
+}; |
+ |
+ |
class LPushArgument: public LUnaryOperation<1> { |
public: |
explicit LPushArgument(LOperand* argument) : LUnaryOperation<1>(argument) {} |