diff options
Diffstat (limited to 'deps/v8/src/x64/lithium-x64.h')
-rw-r--r-- | deps/v8/src/x64/lithium-x64.h | 73 |
1 files changed, 17 insertions, 56 deletions
diff --git a/deps/v8/src/x64/lithium-x64.h b/deps/v8/src/x64/lithium-x64.h index 2ba248642c..6129516515 100644 --- a/deps/v8/src/x64/lithium-x64.h +++ b/deps/v8/src/x64/lithium-x64.h @@ -79,19 +79,17 @@ class LCodeGen; V(FlooringDivI) \ V(ForInCacheArray) \ V(ForInPrepareMap) \ - V(FunctionLiteral) \ V(GetCachedArrayIndex) \ V(Goto) \ V(HasCachedArrayIndexAndBranch) \ + V(HasInPrototypeChainAndBranch) \ V(HasInstanceTypeAndBranch) \ V(InnerAllocatedObject) \ V(InstanceOf) \ - V(InstanceOfKnownGlobal) \ V(InstructionGap) \ V(Integer32ToDouble) \ V(InvokeFunction) \ V(IsConstructCallAndBranch) \ - V(IsObjectAndBranch) \ V(IsStringAndBranch) \ V(IsSmiAndBranch) \ V(IsUndetectableAndBranch) \ @@ -130,6 +128,7 @@ class LCodeGen; V(OsrEntry) \ V(Parameter) \ V(Power) \ + V(Prologue) \ V(PushArgument) \ V(RegExpLiteral) \ V(Return) \ @@ -242,8 +241,6 @@ class LInstruction : public ZoneObject { return IsCall(); } - virtual void SetDeferredLazyDeoptimizationEnvironment(LEnvironment* env) { } - // Interface to the register allocator and iterators. bool IsMarkedAsCall() const { return IsCall(); } @@ -396,6 +393,12 @@ class LGoto final : public LTemplateInstruction<0, 0, 0> { }; +class LPrologue final : public LTemplateInstruction<0, 0, 0> { + public: + DECLARE_CONCRETE_INSTRUCTION(Prologue, "prologue") +}; + + class LLazyBailout final : public LTemplateInstruction<0, 0, 0> { public: LLazyBailout() : gap_instructions_size_(0) { } @@ -985,21 +988,6 @@ class LCompareMinusZeroAndBranch final : public LControlInstruction<1, 0> { }; -class LIsObjectAndBranch final : public LControlInstruction<1, 0> { - public: - explicit LIsObjectAndBranch(LOperand* value) { - inputs_[0] = value; - } - - LOperand* value() { return inputs_[0]; } - - DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch, "is-object-and-branch") - DECLARE_HYDROGEN_ACCESSOR(IsObjectAndBranch) - - void PrintDataTo(StringStream* stream) override; -}; - - class LIsStringAndBranch final : public LControlInstruction<1, 1> { public: explicit LIsStringAndBranch(LOperand* value, LOperand* temp) { @@ -1176,33 +1164,19 @@ class LInstanceOf final : public LTemplateInstruction<1, 3, 0> { }; -class LInstanceOfKnownGlobal final : public LTemplateInstruction<1, 2, 1> { +class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 0> { public: - LInstanceOfKnownGlobal(LOperand* context, LOperand* value, LOperand* temp) { - inputs_[0] = context; - inputs_[1] = value; - temps_[0] = temp; + LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype) { + inputs_[0] = object; + inputs_[1] = prototype; } - LOperand* context() { return inputs_[0]; } - LOperand* value() { return inputs_[1]; } - LOperand* temp() { return temps_[0]; } - - DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal, - "instance-of-known-global") - DECLARE_HYDROGEN_ACCESSOR(InstanceOfKnownGlobal) + LOperand* object() const { return inputs_[0]; } + LOperand* prototype() const { return inputs_[1]; } - Handle<JSFunction> function() const { return hydrogen()->function(); } - LEnvironment* GetDeferredLazyDeoptimizationEnvironment() { - return lazy_deopt_env_; - } - virtual void SetDeferredLazyDeoptimizationEnvironment( - LEnvironment* env) override { - lazy_deopt_env_ = env; - } - - private: - LEnvironment* lazy_deopt_env_; + DECLARE_CONCRETE_INSTRUCTION(HasInPrototypeChainAndBranch, + "has-in-prototype-chain-and-branch") + DECLARE_HYDROGEN_ACCESSOR(HasInPrototypeChainAndBranch) }; @@ -2560,19 +2534,6 @@ class LRegExpLiteral final : public LTemplateInstruction<1, 1, 0> { }; -class LFunctionLiteral final : public LTemplateInstruction<1, 1, 0> { - public: - explicit LFunctionLiteral(LOperand* context) { - inputs_[0] = context; - } - - LOperand* context() { return inputs_[0]; } - - DECLARE_CONCRETE_INSTRUCTION(FunctionLiteral, "function-literal") - DECLARE_HYDROGEN_ACCESSOR(FunctionLiteral) -}; - - class LToFastProperties final : public LTemplateInstruction<1, 1, 0> { public: explicit LToFastProperties(LOperand* value) { |