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

Unified Diff: runtime/vm/flow_graph_compiler_dbc.cc

Issue 2053213004: DBC: Adds BinarySmiOp instruction (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Address comments, fix bugs Created 4 years, 6 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_compiler_dbc.cc
diff --git a/runtime/vm/flow_graph_compiler_dbc.cc b/runtime/vm/flow_graph_compiler_dbc.cc
index eae97e28972bb29ceacca4dd182ffd970cd70563..5a60cb7d9b5a86c7e4056462ccfb305fdfbc53f7 100644
--- a/runtime/vm/flow_graph_compiler_dbc.cc
+++ b/runtime/vm/flow_graph_compiler_dbc.cc
@@ -237,11 +237,9 @@ void FlowGraphCompiler::GenerateAssertAssignable(TokenPosition token_pos,
AddCurrentDescriptor(RawPcDescriptors::kOther, deopt_id, token_pos);
if (is_optimizing()) {
// Assert assignable keeps the instance on the stack as the result,
- // all other arguments are popped.
- // In optimized code we need to drop it because optimized code
- // expects the result in the register and it is already there
- // because locs()->in(0).reg() == locs()->out(0).reg().
- __ Drop1();
+ // all other arguments are popped. Since there may have been a GC during
+ // the runtime call, we have to reload the instance.
+ __ PopLocal(locs->out(0).reg());
Vyacheslav Egorov (Google) 2016/06/16 08:31:53 I don't get this comment. GC can't have anything t
}
}

Powered by Google App Engine
This is Rietveld 408576698