Chromium Code Reviews| Index: runtime/vm/flow_graph_compiler_arm.cc |
| diff --git a/runtime/vm/flow_graph_compiler_arm.cc b/runtime/vm/flow_graph_compiler_arm.cc |
| index 17253e2f43c0b24b0e69b9939a7b2066a256c5c8..cb8119886fa4995e1cd194b537e4b33a6c33b90c 100644 |
| --- a/runtime/vm/flow_graph_compiler_arm.cc |
| +++ b/runtime/vm/flow_graph_compiler_arm.cc |
| @@ -1447,7 +1447,10 @@ void FlowGraphCompiler::SaveLiveRegisters(LocationSummary* locs) { |
| } |
| // Store general purpose registers with the highest register number at the |
| - // lowest address. |
| + // lowest address. The order that the registers are pushed must match the |
|
regis
2014/05/23 22:09:07
that -> in which
I think, but you are the native s
|
| + // order that the registers are encoded in the safe point's stack map. |
|
regis
2014/05/23 22:09:07
ditto
|
| + // NOTE: Using ARM's multi-register push, pushes the registers in the wrong |
| + // order. |
| for (intptr_t reg_idx = 0; reg_idx < kNumberOfCpuRegisters; ++reg_idx) { |
| Register reg = static_cast<Register>(reg_idx); |
| if (locs->live_registers()->ContainsRegister(reg)) { |
| @@ -1459,7 +1462,8 @@ void FlowGraphCompiler::SaveLiveRegisters(LocationSummary* locs) { |
| void FlowGraphCompiler::RestoreLiveRegisters(LocationSummary* locs) { |
| // General purpose registers have the highest register number at the |
| - // lowest address. |
| + // lowest address. The order that the registers are pop must match the |
|
regis
2014/05/23 22:09:07
ditto
pop -> popped
|
| + // order that the registers are pushed in SaveLiveRegisters. |
|
regis
2014/05/23 22:09:07
that -> in which
|
| for (intptr_t reg_idx = kNumberOfCpuRegisters - 1; reg_idx >= 0; --reg_idx) { |
| Register reg = static_cast<Register>(reg_idx); |
| if (locs->live_registers()->ContainsRegister(reg)) { |