diff options
Diffstat (limited to 'deps/v8/src/crankshaft/mips64/lithium-mips64.h')
-rw-r--r-- | deps/v8/src/crankshaft/mips64/lithium-mips64.h | 79 |
1 files changed, 10 insertions, 69 deletions
diff --git a/deps/v8/src/crankshaft/mips64/lithium-mips64.h b/deps/v8/src/crankshaft/mips64/lithium-mips64.h index 8d2324f717..41cf93c2a4 100644 --- a/deps/v8/src/crankshaft/mips64/lithium-mips64.h +++ b/deps/v8/src/crankshaft/mips64/lithium-mips64.h @@ -31,9 +31,7 @@ class LCodeGen; V(BitI) \ V(BoundsCheck) \ V(Branch) \ - V(CallJSFunction) \ V(CallWithDescriptor) \ - V(CallFunction) \ V(CallNewArray) \ V(CallRuntime) \ V(CheckArrayBufferNotNeutered) \ @@ -134,7 +132,6 @@ class LCodeGen; V(StackCheck) \ V(StoreCodeEntry) \ V(StoreContextSlot) \ - V(StoreFrameContext) \ V(StoreKeyed) \ V(StoreKeyedGeneric) \ V(StoreNamedField) \ @@ -147,7 +144,6 @@ class LCodeGen; V(SubS) \ V(TaggedToI) \ V(ThisFunction) \ - V(ToFastProperties) \ V(TransitionElementsKind) \ V(TrapAllocationMemento) \ V(Typeof) \ @@ -227,6 +223,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(); } @@ -261,6 +264,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_; @@ -535,6 +540,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]; } @@ -1746,23 +1752,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, @@ -1825,29 +1814,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) { @@ -2431,19 +2397,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) { @@ -2560,18 +2513,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: |