Chromium Code Reviews| Index: runtime/vm/intermediate_language_arm.cc |
| =================================================================== |
| --- runtime/vm/intermediate_language_arm.cc (revision 40650) |
| +++ runtime/vm/intermediate_language_arm.cc (working copy) |
| @@ -200,10 +200,12 @@ |
| LocationSummary* ClosureCallInstr::MakeLocationSummary(Isolate* isolate, |
| bool opt) const { |
| const intptr_t kNumInputs = 1; |
| - const intptr_t kNumTemps = 0; |
| + const intptr_t kNumTemps = 1; |
| LocationSummary* summary = new(isolate) LocationSummary( |
| isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
| summary->set_in(0, Location::RegisterLocation(R0)); // Function. |
| + // LR is clobbered by blx. |
| + summary->set_temp(0, Location::RegisterLocation(LR)); |
|
Florian Schneider
2014/09/25 09:49:22
Calls clobber all registers, so I'm not sure if th
zra
2014/09/25 18:11:27
Done.
|
| summary->set_out(0, Location::RegisterLocation(R0)); |
| return summary; |
| } |
| @@ -5093,7 +5095,7 @@ |
| (kind() == MathUnaryInstr::kCos)); |
| if (TargetCPUFeatures::hardfp_supported()) { |
| __ CallRuntime(TargetFunction(), InputCount()); |
| - } else { |
| + } else { |
| // If we aren't doing "hardfp", then we have to move the double arguments |
| // to the integer registers, and take the results from the integer |
| // registers. |