| Index: runtime/vm/intermediate_language_mips.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language_mips.cc (revision 26194)
|
| +++ runtime/vm/intermediate_language_mips.cc (working copy)
|
| @@ -3232,26 +3232,24 @@
|
|
|
| LocationSummary* UnaryDoubleOpInstr::MakeLocationSummary() const {
|
| const intptr_t kNumInputs = 1;
|
| - const intptr_t kNumTemps = 2;
|
| + const intptr_t kNumTemps = 1;
|
| LocationSummary* summary =
|
| new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
|
| summary->set_in(0, Location::RequiresFpuRegister());
|
| summary->set_out(Location::RequiresFpuRegister());
|
| - summary->set_temp(0, Location::RequiresRegister());
|
| - summary->set_in(2, Location::RequiresFpuRegister());
|
| + summary->set_temp(0, Location::RequiresFpuRegister());
|
| return summary;
|
| }
|
|
|
|
|
| void UnaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // TODO(zra): Implement vneg.
|
| - Register temp = locs()->temp(0).reg();
|
| const Double& minus_one = Double::ZoneHandle(Double::NewCanonical(-1));
|
| - __ LoadObject(temp, minus_one);
|
| + __ LoadObject(TMP, minus_one);
|
| FpuRegister result = locs()->out().fpu_reg();
|
| FpuRegister value = locs()->in(0).fpu_reg();
|
| - FpuRegister temp_fp = locs()->temp(1).fpu_reg();
|
| - __ LoadDFromOffset(temp_fp, temp, Double::value_offset() - kHeapObjectTag);
|
| + FpuRegister temp_fp = locs()->temp(0).fpu_reg();
|
| + __ LoadDFromOffset(temp_fp, TMP, Double::value_offset() - kHeapObjectTag);
|
| __ muld(result, value, temp_fp);
|
| }
|
|
|
|
|