Index: runtime/vm/code_generator.cc |
diff --git a/runtime/vm/code_generator.cc b/runtime/vm/code_generator.cc |
index b1f11df6a68f805e53a64c67ffdb625ada54e2ea..13b53b8b8ccb45128d94b1c2aea23f9d6c804fb6 100644 |
--- a/runtime/vm/code_generator.cc |
+++ b/runtime/vm/code_generator.cc |
@@ -1449,11 +1449,13 @@ void DeoptimizeIfOwner(const GrowableArray<intptr_t>& classes) { |
// Copy saved registers into the isolate buffer. |
static void CopySavedRegisters(uword saved_registers_address) { |
- double* fpu_registers_copy = new double[kNumberOfFpuRegisters]; |
+ fpu_register_t* fpu_registers_copy = |
+ new fpu_register_t[kNumberOfFpuRegisters]; |
ASSERT(fpu_registers_copy != NULL); |
for (intptr_t i = 0; i < kNumberOfFpuRegisters; i++) { |
- fpu_registers_copy[i] = *reinterpret_cast<double*>(saved_registers_address); |
- saved_registers_address += kDoubleSize; |
+ fpu_registers_copy[i] = |
+ *reinterpret_cast<fpu_register_t*>(saved_registers_address); |
+ saved_registers_address += kFpuRegisterSize; |
} |
Isolate::Current()->set_deopt_fpu_registers_copy(fpu_registers_copy); |
@@ -1505,7 +1507,8 @@ DEFINE_LEAF_RUNTIME_ENTRY(intptr_t, DeoptimizeCopyFrame, |
// All registers have been saved below last-fp. |
const uword last_fp = saved_registers_address + |
- kNumberOfCpuRegisters * kWordSize + kNumberOfFpuRegisters * kDoubleSize; |
+ kNumberOfCpuRegisters * kWordSize + |
+ kNumberOfFpuRegisters * kFpuRegisterSize; |
CopySavedRegisters(saved_registers_address); |
// Get optimized code and frame that need to be deoptimized. |
@@ -1607,7 +1610,7 @@ DEFINE_LEAF_RUNTIME_ENTRY(intptr_t, DeoptimizeFillFrame, uword last_fp) { |
intptr_t* frame_copy = isolate->deopt_frame_copy(); |
intptr_t* cpu_registers_copy = isolate->deopt_cpu_registers_copy(); |
- double* fpu_registers_copy = isolate->deopt_fpu_registers_copy(); |
+ fpu_register_t* fpu_registers_copy = isolate->deopt_fpu_registers_copy(); |
intptr_t deopt_reason = kDeoptUnknown; |
const DeoptInfo& deopt_info = DeoptInfo::Handle( |