diff options
Diffstat (limited to 'deps/v8/src/crankshaft/mips/lithium-mips.h')
-rw-r--r-- | deps/v8/src/crankshaft/mips/lithium-mips.h | 79 |
1 files changed, 10 insertions, 69 deletions
diff --git a/deps/v8/src/crankshaft/mips/lithium-mips.h b/deps/v8/src/crankshaft/mips/lithium-mips.h index 8b36c5d055..7d41093be1 100644 --- a/deps/v8/src/crankshaft/mips/lithium-mips.h +++ b/deps/v8/src/crankshaft/mips/lithium-mips.h @@ -29,9 +29,7 @@ class LCodeGen; V(BitI) \ V(BoundsCheck) \ V(Branch) \ - V(CallJSFunction) \ V(CallWithDescriptor) \ - V(CallFunction) \ V(CallNewArray) \ V(CallRuntime) \ V(CheckArrayBufferNotNeutered) \ @@ -132,7 +130,6 @@ class LCodeGen; V(StackCheck) \ V(StoreCodeEntry) \ V(StoreContextSlot) \ - V(StoreFrameContext) \ V(StoreKeyed) \ V(StoreKeyedGeneric) \ V(StoreNamedField) \ @@ -144,7 +141,6 @@ class LCodeGen; V(SubI) \ V(TaggedToI) \ V(ThisFunction) \ - V(ToFastProperties) \ V(TransitionElementsKind) \ V(TrapAllocationMemento) \ V(Typeof) \ @@ -224,6 +220,13 @@ class LInstruction : public ZoneObject { void MarkAsCall() { bit_field_ = IsCallBits::update(bit_field_, true); } bool IsCall() const { return IsCallBits::decode(bit_field_); } + void MarkAsSyntacticTailCall() { + bit_field_ = IsSyntacticTailCallBits::update(bit_field_, true); + } + bool IsSyntacticTailCall() const { + return IsSyntacticTailCallBits::decode(bit_field_); + } + // Interface to the register allocator and iterators. bool ClobbersTemps() const { return IsCall(); } bool ClobbersRegisters() const { return IsCall(); } @@ -258,6 +261,8 @@ class LInstruction : public ZoneObject { virtual LOperand* TempAt(int i) = 0; class IsCallBits: public BitField<bool, 0, 1> {}; + class IsSyntacticTailCallBits : public BitField<bool, IsCallBits::kNext, 1> { + }; LEnvironment* environment_; SetOncePointer<LPointerMap> pointer_map_; @@ -532,6 +537,7 @@ class LApplyArguments final : public LTemplateInstruction<1, 4, 0> { } DECLARE_CONCRETE_INSTRUCTION(ApplyArguments, "apply-arguments") + DECLARE_HYDROGEN_ACCESSOR(ApplyArguments) LOperand* function() { return inputs_[0]; } LOperand* receiver() { return inputs_[1]; } @@ -1684,23 +1690,6 @@ class LDeclareGlobals final : public LTemplateInstruction<0, 1, 0> { }; -class LCallJSFunction final : public LTemplateInstruction<1, 1, 0> { - public: - explicit LCallJSFunction(LOperand* function) { - inputs_[0] = function; - } - - LOperand* function() { return inputs_[0]; } - - DECLARE_CONCRETE_INSTRUCTION(CallJSFunction, "call-js-function") - DECLARE_HYDROGEN_ACCESSOR(CallJSFunction) - - void PrintDataTo(StringStream* stream) override; - - int arity() const { return hydrogen()->argument_count() - 1; } -}; - - class LCallWithDescriptor final : public LTemplateResultInstruction<1> { public: LCallWithDescriptor(CallInterfaceDescriptor descriptor, @@ -1763,29 +1752,6 @@ class LInvokeFunction final : public LTemplateInstruction<1, 2, 0> { }; -class LCallFunction final : public LTemplateInstruction<1, 2, 2> { - public: - LCallFunction(LOperand* context, LOperand* function, LOperand* slot, - LOperand* vector) { - inputs_[0] = context; - inputs_[1] = function; - temps_[0] = slot; - temps_[1] = vector; - } - - LOperand* context() { return inputs_[0]; } - LOperand* function() { return inputs_[1]; } - LOperand* temp_slot() { return temps_[0]; } - LOperand* temp_vector() { return temps_[1]; } - - DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") - DECLARE_HYDROGEN_ACCESSOR(CallFunction) - - int arity() const { return hydrogen()->argument_count() - 1; } - void PrintDataTo(StringStream* stream) override; -}; - - class LCallNewArray final : public LTemplateInstruction<1, 2, 0> { public: LCallNewArray(LOperand* context, LOperand* constructor) { @@ -2385,19 +2351,6 @@ class LAllocate final : public LTemplateInstruction<1, 2, 2> { }; -class LToFastProperties final : public LTemplateInstruction<1, 1, 0> { - public: - explicit LToFastProperties(LOperand* value) { - inputs_[0] = value; - } - - LOperand* value() { return inputs_[0]; } - - DECLARE_CONCRETE_INSTRUCTION(ToFastProperties, "to-fast-properties") - DECLARE_HYDROGEN_ACCESSOR(ToFastProperties) -}; - - class LTypeof final : public LTemplateInstruction<1, 2, 0> { public: LTypeof(LOperand* context, LOperand* value) { @@ -2514,18 +2467,6 @@ class LLoadFieldByIndex final : public LTemplateInstruction<1, 2, 0> { }; -class LStoreFrameContext: public LTemplateInstruction<0, 1, 0> { - public: - explicit LStoreFrameContext(LOperand* context) { - inputs_[0] = context; - } - - LOperand* context() { return inputs_[0]; } - - DECLARE_CONCRETE_INSTRUCTION(StoreFrameContext, "store-frame-context") -}; - - class LChunkBuilder; class LPlatformChunk final : public LChunk { public: |