Index: runtime/vm/intermediate_language_mips.cc |
diff --git a/runtime/vm/intermediate_language_mips.cc b/runtime/vm/intermediate_language_mips.cc |
index 30393d78fea56a307990c83f209d0e1b42ee2013..f4406df901c08877fe171402d19d6b225ee723bb 100644 |
--- a/runtime/vm/intermediate_language_mips.cc |
+++ b/runtime/vm/intermediate_language_mips.cc |
@@ -2651,12 +2651,13 @@ void CheckEitherNonSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
LocationSummary* BoxDoubleInstr::MakeLocationSummary() const { |
const intptr_t kNumInputs = 1; |
- const intptr_t kNumTemps = 0; |
+ const intptr_t kNumTemps = 1; |
LocationSummary* summary = |
new LocationSummary(kNumInputs, |
kNumTemps, |
LocationSummary::kCallOnSlowPath); |
summary->set_in(0, Location::RequiresFpuRegister()); |
+ summary->set_temp(0, Location::RequiresRegister()); |
summary->set_out(Location::RequiresRegister()); |
return summary; |
} |
@@ -2705,7 +2706,8 @@ void BoxDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ TryAllocate(compiler->double_class(), |
slow_path->entry_label(), |
- out_reg); |
+ out_reg, |
+ locs()->temp(0).reg()); |
__ Bind(slow_path->exit_label()); |
__ StoreDToOffset(value, out_reg, Double::value_offset() - kHeapObjectTag); |
} |