Index: src/ia32/lithium-ia32.h |
diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h |
index c869387586aa10355e7e72f8414853879f4b5d98..07f0a8d90bdcf78994cb7ffa268aebd3b0757387 100644 |
--- a/src/ia32/lithium-ia32.h |
+++ b/src/ia32/lithium-ia32.h |
@@ -90,6 +90,7 @@ class LCodeGen; |
// LGlobalReceiver |
// LGoto |
// LLazyBailout |
+// LLoadContextSlot |
// LLoadGlobal |
// LMaterializedLiteral |
// LArrayLiteral |
@@ -225,6 +226,7 @@ class LCodeGen; |
V(ClassOfTestAndBranch) \ |
V(Label) \ |
V(LazyBailout) \ |
+ V(LoadContextSlot) \ |
V(LoadElements) \ |
V(LoadGlobal) \ |
V(LoadKeyedFastElement) \ |
@@ -1349,6 +1351,20 @@ class LStoreGlobal: public LUnaryOperation<0> { |
}; |
+class LLoadContextSlot: public LTemplateInstruction<1, 0, 0> { |
+ 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<0> { |
public: |
explicit LPushArgument(LOperand* argument) : LUnaryOperation<0>(argument) {} |