Index: src/mips/lithium-mips.h |
diff --git a/src/mips/lithium-mips.h b/src/mips/lithium-mips.h |
index 4ade30dcd05e6443c397198bb756769b539c188f..1b8b5e5bfcfe107f1ecf4b635fbeb40904ce0fcc 100644 |
--- a/src/mips/lithium-mips.h |
+++ b/src/mips/lithium-mips.h |
@@ -102,6 +102,7 @@ class LCodeGen; |
V(LoadFieldByIndex) \ |
V(LoadFunctionPrototype) \ |
V(LoadGlobalGeneric) \ |
+ V(LoadGlobalViaContext) \ |
V(LoadKeyed) \ |
V(LoadKeyedGeneric) \ |
V(LoadNamedField) \ |
@@ -142,6 +143,7 @@ class LCodeGen; |
V(StoreCodeEntry) \ |
V(StoreContextSlot) \ |
V(StoreFrameContext) \ |
+ V(StoreGlobalViaContext) \ |
V(StoreKeyed) \ |
V(StoreKeyedGeneric) \ |
V(StoreNamedField) \ |
@@ -1667,6 +1669,23 @@ class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> { |
}; |
+class LLoadGlobalViaContext final : public LTemplateInstruction<1, 1, 1> { |
+ public: |
+ explicit LLoadGlobalViaContext(LOperand* context) { inputs_[0] = context; } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(LoadGlobalViaContext, "load-global-via-context") |
+ DECLARE_HYDROGEN_ACCESSOR(LoadGlobalViaContext) |
+ |
+ void PrintDataTo(StringStream* stream) override; |
+ |
+ LOperand* context() { return inputs_[0]; } |
+ |
+ Handle<Object> name() const { return hydrogen()->name(); } |
+ int depth() const { return hydrogen()->depth(); } |
+ int slot_index() const { return hydrogen()->slot_index(); } |
+}; |
+ |
+ |
class LLoadContextSlot final : public LTemplateInstruction<1, 1, 0> { |
public: |
explicit LLoadContextSlot(LOperand* context) { |
@@ -2168,6 +2187,29 @@ class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 2> { |
}; |
+class LStoreGlobalViaContext final : public LTemplateInstruction<0, 2, 0> { |
+ public: |
+ LStoreGlobalViaContext(LOperand* context, LOperand* value) { |
+ inputs_[0] = context; |
+ inputs_[1] = value; |
+ } |
+ |
+ LOperand* context() { return inputs_[0]; } |
+ LOperand* value() { return inputs_[1]; } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(StoreGlobalViaContext, |
+ "store-global-via-context") |
+ DECLARE_HYDROGEN_ACCESSOR(StoreGlobalViaContext) |
+ |
+ void PrintDataTo(StringStream* stream) override; |
+ |
+ Handle<Object> name() const { return hydrogen()->name(); } |
+ int depth() { return hydrogen()->depth(); } |
+ int slot_index() { return hydrogen()->slot_index(); } |
+ LanguageMode language_mode() { return hydrogen()->language_mode(); } |
+}; |
+ |
+ |
class LStoreKeyed final : public LTemplateInstruction<0, 3, 0> { |
public: |
LStoreKeyed(LOperand* object, LOperand* key, LOperand* value) { |