| Index: src/ia32/lithium-ia32.h
|
| diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h
|
| index 1c24ae7812e370d2f5302b81de4f9bd0269d1b46..c7955fea427fd7337d227e8180b51c63c84149e1 100644
|
| --- a/src/ia32/lithium-ia32.h
|
| +++ b/src/ia32/lithium-ia32.h
|
| @@ -155,6 +155,7 @@ class LCodeGen;
|
| V(StringCompareAndBranch) \
|
| V(SubI) \
|
| V(TaggedToI) \
|
| + V(TailCallThroughMegamorphicCache) \
|
| V(ThisFunction) \
|
| V(ToFastProperties) \
|
| V(TransitionElementsKind) \
|
| @@ -479,6 +480,27 @@ class LCallStub FINAL : public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| +class LTailCallThroughMegamorphicCache FINAL
|
| + : public LTemplateInstruction<0, 3, 0> {
|
| + public:
|
| + explicit LTailCallThroughMegamorphicCache(LOperand* context,
|
| + LOperand* receiver,
|
| + LOperand* name) {
|
| + inputs_[0] = context;
|
| + inputs_[1] = receiver;
|
| + inputs_[2] = name;
|
| + }
|
| +
|
| + LOperand* context() { return inputs_[0]; }
|
| + LOperand* receiver() { return inputs_[1]; }
|
| + LOperand* name() { return inputs_[2]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache,
|
| + "tail-call-through-megamorphic-cache")
|
| + DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache)
|
| +};
|
| +
|
| +
|
| class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE {
|
| @@ -1900,9 +1922,10 @@ class LCallWithDescriptor FINAL : public LTemplateResultInstruction<1> {
|
|
|
| LOperand* target() const { return inputs_[0]; }
|
|
|
| + DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor)
|
| +
|
| private:
|
| DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor")
|
| - DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor)
|
|
|
| virtual void PrintDataTo(StringStream* stream) OVERRIDE;
|
|
|
|
|