| Index: src/mips/lithium-mips.h | 
| diff --git a/src/mips/lithium-mips.h b/src/mips/lithium-mips.h | 
| index 3eabd7482161e6aaa74398d8b783be42946a3340..adda4e256de8e1310b100ea85bf8dc6aaa3264d5 100644 | 
| --- a/src/mips/lithium-mips.h | 
| +++ b/src/mips/lithium-mips.h | 
| @@ -17,148 +17,149 @@ 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(NumberTagI)                                 \ | 
| -  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(NumberTagI)                              \ | 
| +  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)                        \ | 
| @@ -851,6 +852,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(MathRound, "math-fround") | 
| +}; | 
| + | 
| + | 
| class LMathAbs V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LMathAbs(LOperand* context, LOperand* value) { | 
| @@ -2706,6 +2717,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); | 
|  |