| Index: src/mips64/lithium-mips64.h
|
| diff --git a/src/mips64/lithium-mips64.h b/src/mips64/lithium-mips64.h
|
| index f58f0da22d4e6f3b03b312123bf14baabddab9da..dea0c11b19198437121e4c0d90ea76b6f090f5f7 100644
|
| --- a/src/mips64/lithium-mips64.h
|
| +++ b/src/mips64/lithium-mips64.h
|
| @@ -17,147 +17,148 @@ namespace internal {
|
| // Forward declarations.
|
| class LCodeGen;
|
|
|
| -#define LITHIUM_CONCRETE_INSTRUCTION_LIST(V) \
|
| - V(AccessArgumentsAt) \
|
| - V(AddI) \
|
| - V(Allocate) \
|
| - V(AllocateBlockContext) \
|
| - V(ApplyArguments) \
|
| - V(ArgumentsElements) \
|
| - V(ArgumentsLength) \
|
| - V(ArithmeticD) \
|
| - V(ArithmeticT) \
|
| - V(BitI) \
|
| - V(BoundsCheck) \
|
| - V(Branch) \
|
| - V(CallJSFunction) \
|
| - V(CallWithDescriptor) \
|
| - V(CallFunction) \
|
| - V(CallNew) \
|
| - V(CallNewArray) \
|
| - V(CallRuntime) \
|
| - V(CallStub) \
|
| - V(CheckInstanceType) \
|
| - V(CheckMaps) \
|
| - V(CheckMapValue) \
|
| - V(CheckNonSmi) \
|
| - V(CheckSmi) \
|
| - V(CheckValue) \
|
| - V(ClampDToUint8) \
|
| - V(ClampIToUint8) \
|
| - V(ClampTToUint8) \
|
| - V(ClassOfTestAndBranch) \
|
| - V(CompareMinusZeroAndBranch) \
|
| - V(CompareNumericAndBranch) \
|
| - V(CmpObjectEqAndBranch) \
|
| - V(CmpHoleAndBranch) \
|
| - V(CmpMapAndBranch) \
|
| - V(CmpT) \
|
| - V(ConstantD) \
|
| - V(ConstantE) \
|
| - V(ConstantI) \
|
| - V(ConstantS) \
|
| - V(ConstantT) \
|
| - V(ConstructDouble) \
|
| - V(Context) \
|
| - V(DateField) \
|
| - V(DebugBreak) \
|
| - V(DeclareGlobals) \
|
| - V(Deoptimize) \
|
| - V(DivByConstI) \
|
| - V(DivByPowerOf2I) \
|
| - V(DivI) \
|
| - V(DoubleToI) \
|
| - V(DoubleBits) \
|
| - V(DoubleToSmi) \
|
| - V(Drop) \
|
| - V(Dummy) \
|
| - V(DummyUse) \
|
| - V(FlooringDivByConstI) \
|
| - V(FlooringDivByPowerOf2I) \
|
| - V(FlooringDivI) \
|
| - V(ForInCacheArray) \
|
| - V(ForInPrepareMap) \
|
| - V(FunctionLiteral) \
|
| - V(GetCachedArrayIndex) \
|
| - V(Goto) \
|
| - V(HasCachedArrayIndexAndBranch) \
|
| - V(HasInstanceTypeAndBranch) \
|
| - V(InnerAllocatedObject) \
|
| - V(InstanceOf) \
|
| - V(InstanceOfKnownGlobal) \
|
| - V(InstructionGap) \
|
| - V(Integer32ToDouble) \
|
| - V(InvokeFunction) \
|
| - V(IsConstructCallAndBranch) \
|
| - V(IsObjectAndBranch) \
|
| - V(IsStringAndBranch) \
|
| - V(IsSmiAndBranch) \
|
| - V(IsUndetectableAndBranch) \
|
| - V(Label) \
|
| - V(LazyBailout) \
|
| - V(LoadContextSlot) \
|
| - V(LoadRoot) \
|
| - V(LoadFieldByIndex) \
|
| - V(LoadFunctionPrototype) \
|
| - V(LoadGlobalCell) \
|
| - V(LoadGlobalGeneric) \
|
| - V(LoadKeyed) \
|
| - V(LoadKeyedGeneric) \
|
| - V(LoadNamedField) \
|
| - V(LoadNamedGeneric) \
|
| - V(MapEnumLength) \
|
| - V(MathAbs) \
|
| - V(MathExp) \
|
| - V(MathClz32) \
|
| - V(MathFloor) \
|
| - V(MathLog) \
|
| - V(MathMinMax) \
|
| - V(MathPowHalf) \
|
| - V(MathRound) \
|
| - V(MathSqrt) \
|
| - V(ModByConstI) \
|
| - V(ModByPowerOf2I) \
|
| - V(ModI) \
|
| - V(MulI) \
|
| - V(MultiplyAddD) \
|
| - V(NumberTagD) \
|
| - V(NumberTagU) \
|
| - V(NumberUntagD) \
|
| - V(OsrEntry) \
|
| - V(Parameter) \
|
| - V(Power) \
|
| - V(PushArgument) \
|
| - V(RegExpLiteral) \
|
| - V(Return) \
|
| - V(SeqStringGetChar) \
|
| - V(SeqStringSetChar) \
|
| - V(ShiftI) \
|
| - V(SmiTag) \
|
| - V(SmiUntag) \
|
| - V(StackCheck) \
|
| - V(StoreCodeEntry) \
|
| - V(StoreContextSlot) \
|
| - V(StoreFrameContext) \
|
| - V(StoreGlobalCell) \
|
| - V(StoreKeyed) \
|
| - V(StoreKeyedGeneric) \
|
| - V(StoreNamedField) \
|
| - V(StoreNamedGeneric) \
|
| - V(StringAdd) \
|
| - V(StringCharCodeAt) \
|
| - V(StringCharFromCode) \
|
| - V(StringCompareAndBranch) \
|
| - V(SubI) \
|
| - V(TaggedToI) \
|
| - V(ThisFunction) \
|
| - V(ToFastProperties) \
|
| - V(TransitionElementsKind) \
|
| - V(TrapAllocationMemento) \
|
| - V(Typeof) \
|
| - V(TypeofIsAndBranch) \
|
| - V(Uint32ToDouble) \
|
| - V(UnknownOSRValue) \
|
| +#define LITHIUM_CONCRETE_INSTRUCTION_LIST(V) \
|
| + V(AccessArgumentsAt) \
|
| + V(AddI) \
|
| + V(Allocate) \
|
| + V(AllocateBlockContext) \
|
| + V(ApplyArguments) \
|
| + V(ArgumentsElements) \
|
| + V(ArgumentsLength) \
|
| + V(ArithmeticD) \
|
| + V(ArithmeticT) \
|
| + V(BitI) \
|
| + V(BoundsCheck) \
|
| + V(Branch) \
|
| + V(CallJSFunction) \
|
| + V(CallWithDescriptor) \
|
| + V(CallFunction) \
|
| + V(CallNew) \
|
| + V(CallNewArray) \
|
| + V(CallRuntime) \
|
| + V(CallStub) \
|
| + V(CheckInstanceType) \
|
| + V(CheckMaps) \
|
| + V(CheckMapValue) \
|
| + V(CheckNonSmi) \
|
| + V(CheckSmi) \
|
| + V(CheckValue) \
|
| + V(ClampDToUint8) \
|
| + V(ClampIToUint8) \
|
| + V(ClampTToUint8) \
|
| + V(ClassOfTestAndBranch) \
|
| + V(CompareMinusZeroAndBranch) \
|
| + V(CompareNumericAndBranch) \
|
| + V(CmpObjectEqAndBranch) \
|
| + V(CmpHoleAndBranch) \
|
| + V(CmpMapAndBranch) \
|
| + V(CmpT) \
|
| + V(ConstantD) \
|
| + V(ConstantE) \
|
| + V(ConstantI) \
|
| + V(ConstantS) \
|
| + V(ConstantT) \
|
| + V(ConstructDouble) \
|
| + V(Context) \
|
| + V(DateField) \
|
| + V(DebugBreak) \
|
| + V(DeclareGlobals) \
|
| + V(Deoptimize) \
|
| + V(DivByConstI) \
|
| + V(DivByPowerOf2I) \
|
| + V(DivI) \
|
| + V(DoubleToI) \
|
| + V(DoubleBits) \
|
| + V(DoubleToSmi) \
|
| + V(Drop) \
|
| + V(Dummy) \
|
| + V(DummyUse) \
|
| + V(FlooringDivByConstI) \
|
| + V(FlooringDivByPowerOf2I) \
|
| + V(FlooringDivI) \
|
| + V(ForInCacheArray) \
|
| + V(ForInPrepareMap) \
|
| + V(FunctionLiteral) \
|
| + V(GetCachedArrayIndex) \
|
| + V(Goto) \
|
| + V(HasCachedArrayIndexAndBranch) \
|
| + V(HasInstanceTypeAndBranch) \
|
| + V(InnerAllocatedObject) \
|
| + V(InstanceOf) \
|
| + V(InstanceOfKnownGlobal) \
|
| + V(InstructionGap) \
|
| + V(Integer32ToDouble) \
|
| + V(InvokeFunction) \
|
| + V(IsConstructCallAndBranch) \
|
| + V(IsObjectAndBranch) \
|
| + V(IsStringAndBranch) \
|
| + V(IsSmiAndBranch) \
|
| + V(IsUndetectableAndBranch) \
|
| + V(Label) \
|
| + V(LazyBailout) \
|
| + V(LoadContextSlot) \
|
| + V(LoadRoot) \
|
| + V(LoadFieldByIndex) \
|
| + V(LoadFunctionPrototype) \
|
| + V(LoadGlobalCell) \
|
| + V(LoadGlobalGeneric) \
|
| + V(LoadKeyed) \
|
| + V(LoadKeyedGeneric) \
|
| + V(LoadNamedField) \
|
| + V(LoadNamedGeneric) \
|
| + V(MapEnumLength) \
|
| + V(MathAbs) \
|
| + V(MathExp) \
|
| + V(MathClz32) \
|
| + V(MathFloor) \
|
| + V(MathFround) \
|
| + V(MathLog) \
|
| + V(MathMinMax) \
|
| + V(MathPowHalf) \
|
| + V(MathRound) \
|
| + V(MathSqrt) \
|
| + V(ModByConstI) \
|
| + V(ModByPowerOf2I) \
|
| + V(ModI) \
|
| + V(MulI) \
|
| + V(MultiplyAddD) \
|
| + V(NumberTagD) \
|
| + V(NumberTagU) \
|
| + V(NumberUntagD) \
|
| + V(OsrEntry) \
|
| + V(Parameter) \
|
| + V(Power) \
|
| + V(PushArgument) \
|
| + V(RegExpLiteral) \
|
| + V(Return) \
|
| + V(SeqStringGetChar) \
|
| + V(SeqStringSetChar) \
|
| + V(ShiftI) \
|
| + V(SmiTag) \
|
| + V(SmiUntag) \
|
| + V(StackCheck) \
|
| + V(StoreCodeEntry) \
|
| + V(StoreContextSlot) \
|
| + V(StoreFrameContext) \
|
| + V(StoreGlobalCell) \
|
| + V(StoreKeyed) \
|
| + V(StoreKeyedGeneric) \
|
| + V(StoreNamedField) \
|
| + V(StoreNamedGeneric) \
|
| + V(StringAdd) \
|
| + V(StringCharCodeAt) \
|
| + V(StringCharFromCode) \
|
| + V(StringCompareAndBranch) \
|
| + V(SubI) \
|
| + V(TaggedToI) \
|
| + V(ThisFunction) \
|
| + V(ToFastProperties) \
|
| + V(TransitionElementsKind) \
|
| + V(TrapAllocationMemento) \
|
| + V(Typeof) \
|
| + V(TypeofIsAndBranch) \
|
| + V(Uint32ToDouble) \
|
| + V(UnknownOSRValue) \
|
| V(WrapReceiver)
|
|
|
| #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \
|
| @@ -850,6 +851,16 @@ class LMathRound V8_FINAL : public LTemplateInstruction<1, 1, 1> {
|
| };
|
|
|
|
|
| +class LMathFround V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| + public:
|
| + explicit LMathFround(LOperand* value) { inputs_[0] = value; }
|
| +
|
| + LOperand* value() { return inputs_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(MathFround, "math-fround")
|
| +};
|
| +
|
| +
|
| class LMathAbs V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LMathAbs(LOperand* context, LOperand* value) {
|
| @@ -2690,6 +2701,7 @@ class LChunkBuilder V8_FINAL : public LChunkBuilderBase {
|
|
|
| LInstruction* DoMathFloor(HUnaryMathOperation* instr);
|
| LInstruction* DoMathRound(HUnaryMathOperation* instr);
|
| + LInstruction* DoMathFround(HUnaryMathOperation* instr);
|
| LInstruction* DoMathAbs(HUnaryMathOperation* instr);
|
| LInstruction* DoMathLog(HUnaryMathOperation* instr);
|
| LInstruction* DoMathExp(HUnaryMathOperation* instr);
|
|
|