diff options
Diffstat (limited to 'deps/v8/test/cctest/test-code-stubs-mips.cc')
-rw-r--r-- | deps/v8/test/cctest/test-code-stubs-mips.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/deps/v8/test/cctest/test-code-stubs-mips.cc b/deps/v8/test/cctest/test-code-stubs-mips.cc index 796aa1d610..10704efdca 100644 --- a/deps/v8/test/cctest/test-code-stubs-mips.cc +++ b/deps/v8/test/cctest/test-code-stubs-mips.cc @@ -62,6 +62,11 @@ ConvertDToIFunc MakeConvertDToIFuncTrampoline(Isolate* isolate, // Save callee save registers. __ MultiPush(kCalleeSaved | ra.bit()); + // Save callee-saved FPU registers. + __ MultiPushFPU(kCalleeSavedFPU); + // Set up the reserved register for 0.0. + __ Move(kDoubleRegZero, 0.0); + // For softfp, move the input value into f12. if (IsMipsSoftFloatABI) { __ Move(f12, a0, a1); @@ -74,7 +79,7 @@ ConvertDToIFunc MakeConvertDToIFuncTrampoline(Isolate* isolate, // Save registers make sure they don't get clobbered. int source_reg_offset = kDoubleSize; int reg_num = 2; - for (;reg_num < Register::NumAllocatableRegisters(); ++reg_num) { + for (; reg_num < Register::NumAllocatableRegisters(); ++reg_num) { Register reg = Register::from_code(reg_num); if (!reg.is(destination_reg)) { __ push(reg); @@ -117,6 +122,9 @@ ConvertDToIFunc MakeConvertDToIFuncTrampoline(Isolate* isolate, __ Branch(&ok, eq, v0, Operand(zero_reg)); __ bind(&ok); + // Restore callee-saved FPU registers. + __ MultiPopFPU(kCalleeSavedFPU); + // Restore callee save registers. __ MultiPop(kCalleeSaved | ra.bit()); |