| Index: runtime/vm/flow_graph_allocator.cc
|
| diff --git a/runtime/vm/flow_graph_allocator.cc b/runtime/vm/flow_graph_allocator.cc
|
| index be5eae149f14f4f732d83cc3b3ae9adbe4375ad2..a50facd44fea7d216978b54e7cab0f24548bb605 100644
|
| --- a/runtime/vm/flow_graph_allocator.cc
|
| +++ b/runtime/vm/flow_graph_allocator.cc
|
| @@ -1770,11 +1770,16 @@ void FlowGraphAllocator::ConvertAllUses(LiveRange* range) {
|
| ConvertUseTo(use, loc);
|
| }
|
|
|
| + // Add live registers at all safepoints for instructions with slow-path
|
| + // code.
|
| if (loc.IsMachineRegister()) {
|
| for (SafepointPosition* safepoint = range->first_safepoint();
|
| safepoint != NULL;
|
| safepoint = safepoint->next()) {
|
| - safepoint->locs()->live_registers()->Add(loc);
|
| + if (!safepoint->locs()->always_calls()) {
|
| + ASSERT(safepoint->locs()->can_call());
|
| + safepoint->locs()->live_registers()->Add(loc);
|
| + }
|
| }
|
| }
|
| }
|
|
|