Chromium Code Reviews| 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
|
| } |
| } |