| 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(
|
|
|