Index: runtime/vm/deopt_instructions.h |
diff --git a/runtime/vm/deopt_instructions.h b/runtime/vm/deopt_instructions.h |
index 79a2c5024ecb8c43a0d8ff39b2a4e13e05182195..09e01b43d96c875bb21932c15c3a97137f727c05 100644 |
--- a/runtime/vm/deopt_instructions.h |
+++ b/runtime/vm/deopt_instructions.h |
@@ -86,8 +86,14 @@ class DeoptContext { |
ASSERT(FlowGraphCompiler::SupportsUnboxedDoubles()); |
ASSERT(fpu_registers_ != NULL); |
ASSERT(reg >= 0); |
+#if !defined(TARGET_ARCH_DBC) |
ASSERT(reg < kNumberOfFpuRegisters); |
return *reinterpret_cast<double*>(&fpu_registers_[reg]); |
+#else |
+ // On DBC registers and stack slots are the same. |
+ const intptr_t stack_index = num_args_ + kDartFrameFixedSize + reg; |
+ return *reinterpret_cast<double*>(GetSourceFrameAddressAt(stack_index)); |
+#endif |
} |
simd128_value_t FpuRegisterValueAsSimd128(FpuRegister reg) const { |