Upgrade V8 to version 4.9.385.28
https://chromium.googlesource.com/v8/v8/+/4.9.385.28
FPIIM-449
Change-Id: I4b2e74289d4bf3667f2f3dc8aa2e541f63e26eb4
diff --git a/test/cctest/test-code-stubs-mips.cc b/test/cctest/test-code-stubs-mips.cc
index 796aa1d..ce577da 100644
--- a/test/cctest/test-code-stubs-mips.cc
+++ b/test/cctest/test-code-stubs-mips.cc
@@ -34,6 +34,7 @@
#include "src/factory.h"
#include "src/macro-assembler.h"
#include "src/mips/constants-mips.h"
+#include "src/register-configuration.h"
#include "src/simulator.h"
#include "test/cctest/cctest.h"
#include "test/cctest/test-code-stubs.h"
@@ -52,7 +53,8 @@
Assembler::kMinimalBufferSize, &actual_size, true));
CHECK(buffer);
HandleScope handles(isolate);
- MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size));
+ MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size),
+ v8::internal::CodeObjectRequired::kYes);
DoubleToIStub stub(isolate, source_reg, destination_reg, 0, true,
inline_fastpath);
@@ -62,6 +64,11 @@
// 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,11 +81,13 @@
// 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::kNumRegisters; ++reg_num) {
Register reg = Register::from_code(reg_num);
- if (!reg.is(destination_reg)) {
- __ push(reg);
- source_reg_offset += kPointerSize;
+ if (reg.IsAllocatable()) {
+ if (!reg.is(destination_reg)) {
+ __ push(reg);
+ source_reg_offset += kPointerSize;
+ }
}
}
@@ -103,10 +112,12 @@
// Make sure no registers have been unexpectedly clobbered
for (--reg_num; reg_num >= 2; --reg_num) {
Register reg = Register::from_code(reg_num);
- if (!reg.is(destination_reg)) {
- __ lw(at, MemOperand(sp, 0));
- __ Assert(eq, kRegisterWasClobbered, reg, Operand(at));
- __ Addu(sp, sp, Operand(kPointerSize));
+ if (reg.IsAllocatable()) {
+ if (!reg.is(destination_reg)) {
+ __ lw(at, MemOperand(sp, 0));
+ __ Assert(eq, kRegisterWasClobbered, reg, Operand(at));
+ __ Addu(sp, sp, Operand(kPointerSize));
+ }
}
}
@@ -117,6 +128,9 @@
__ Branch(&ok, eq, v0, Operand(zero_reg));
__ bind(&ok);
+ // Restore callee-saved FPU registers.
+ __ MultiPopFPU(kCalleeSavedFPU);
+
// Restore callee save registers.
__ MultiPop(kCalleeSaved | ra.bit());
@@ -127,7 +141,7 @@
CodeDesc desc;
masm.GetCode(&desc);
- CpuFeatures::FlushICache(buffer, actual_size);
+ Assembler::FlushICache(isolate, buffer, actual_size);
return (reinterpret_cast<ConvertDToIFunc>(
reinterpret_cast<intptr_t>(buffer)));
}
@@ -143,8 +157,9 @@
int32_t RunGeneratedCodeCallWrapper(ConvertDToIFunc func,
double from) {
#ifdef USE_SIMULATOR
- Simulator::current(Isolate::Current())->CallFP(FUNCTION_ADDR(func), from, 0.);
- return Simulator::current(Isolate::Current())->get_register(v0.code());
+ Simulator::current(CcTest::i_isolate())
+ ->CallFP(FUNCTION_ADDR(func), from, 0.);
+ return Simulator::current(CcTest::i_isolate())->get_register(v0.code());
#else
return (*func)(from);
#endif