| Index: runtime/vm/flow_graph_compiler_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler_ia32.cc (revision 8181)
|
| +++ runtime/vm/flow_graph_compiler_ia32.cc (working copy)
|
| @@ -65,7 +65,9 @@
|
| __ Comment("Deopt stub for id %d", deopt_id_);
|
| __ Bind(entry_label());
|
| for (intptr_t i = 0; i < registers_.length(); i++) {
|
| - __ pushl(registers_[i]);
|
| + if (registers_[i] != kNoRegister) {
|
| + __ pushl(registers_[i]);
|
| + }
|
| }
|
| __ movl(EAX, Immediate(Smi::RawValue(reason_)));
|
| __ call(&StubCode::DeoptimizeLabel());
|
| @@ -139,6 +141,23 @@
|
| try_index);
|
| }
|
|
|
| +
|
| +Label* FlowGraphCompiler::AddDeoptStub(intptr_t deopt_id,
|
| + intptr_t deopt_token_index,
|
| + intptr_t try_index,
|
| + DeoptReasonId reason,
|
| + Register reg1,
|
| + Register reg2) {
|
| + DeoptimizationStub* stub =
|
| + new DeoptimizationStub(deopt_id, deopt_token_index, try_index, reason);
|
| + stub->Push(reg1);
|
| + stub->Push(reg2);
|
| + deopt_stubs_.Add(stub);
|
| + return stub->entry_label();
|
| +}
|
| +
|
| +
|
| +
|
| #define __ assembler_->
|
|
|
| void FlowGraphCompiler::IntrinsifyGetter() {
|
|
|