Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(272)

Unified Diff: runtime/vm/flow_graph_allocator.cc

Issue 10882055: Put live register bits in stackmaps. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+ }
}
}
}

Powered by Google App Engine
This is Rietveld 408576698