| Index: runtime/vm/flow_graph_compiler.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler.cc (revision 19074)
|
| +++ runtime/vm/flow_graph_compiler.cc (working copy)
|
| @@ -674,9 +674,15 @@
|
| bool blocked_registers[kNumberOfCpuRegisters];
|
|
|
| // Mark all available registers free.
|
| - for (intptr_t i = 0; i < kNumberOfCpuRegisters; i++) {
|
| + for (intptr_t i = 0; i < kFirstFreeCpuRegister; i++) {
|
| + blocked_registers[i] = true;
|
| + }
|
| + for (intptr_t i = kFirstFreeCpuRegister; i <= kLastFreeCpuRegister; i++) {
|
| blocked_registers[i] = false;
|
| }
|
| + for (intptr_t i = kLastFreeCpuRegister + 1; i < kNumberOfCpuRegisters; i++) {
|
| + blocked_registers[i] = true;
|
| + }
|
|
|
| // Mark all fixed input, temp and output registers as used.
|
| for (intptr_t i = 0; i < locs->input_count(); i++) {
|
| @@ -708,6 +714,9 @@
|
| if (TMP != kNoRegister) {
|
| blocked_registers[TMP] = true;
|
| }
|
| + if (PP != kNoRegister) {
|
| + blocked_registers[PP] = true;
|
| + }
|
|
|
| // Allocate all unallocated input locations.
|
| const bool should_pop = !instr->IsPushArgument();
|
|
|