| 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) {
|
|
|