| Index: runtime/vm/flow_graph_compiler_arm.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler_arm.cc (revision 36988)
|
| +++ runtime/vm/flow_graph_compiler_arm.cc (working copy)
|
| @@ -973,9 +973,8 @@
|
| __ mov(PP, Operand(R7));
|
|
|
| // Patch point is after the eventually inlined function object.
|
| - AddCurrentDescriptor(PcDescriptors::kEntryPatch,
|
| - Isolate::kNoDeoptId,
|
| - 0); // No token position.
|
| + entry_patch_pc_offset_ = assembler()->CodeSize();
|
| +
|
| intptr_t threshold = FLAG_optimization_counter_threshold;
|
| __ ldr(R7, FieldAddress(function_reg,
|
| Function::usage_counter_offset()));
|
| @@ -992,9 +991,7 @@
|
| ASSERT(function_reg == R6);
|
| __ Branch(&StubCode::OptimizeFunctionLabel(), GE);
|
| } else if (!flow_graph().IsCompiledForOsr()) {
|
| - AddCurrentDescriptor(PcDescriptors::kEntryPatch,
|
| - Isolate::kNoDeoptId,
|
| - 0); // No token position.
|
| + entry_patch_pc_offset_ = assembler()->CodeSize();
|
| }
|
| __ Comment("Enter frame");
|
| if (flow_graph().IsCompiledForOsr()) {
|
| @@ -1097,14 +1094,13 @@
|
| GenerateDeferredCode();
|
| // Emit function patching code. This will be swapped with the first 3
|
| // instructions at entry point.
|
| - AddCurrentDescriptor(PcDescriptors::kPatchCode,
|
| - Isolate::kNoDeoptId,
|
| - 0); // No token position.
|
| + patch_code_pc_offset_ = assembler()->CodeSize();
|
| __ BranchPatchable(&StubCode::FixCallersTargetLabel());
|
| - AddCurrentDescriptor(PcDescriptors::kLazyDeoptJump,
|
| - Isolate::kNoDeoptId,
|
| - 0); // No token position.
|
| - __ Branch(&StubCode::DeoptimizeLazyLabel());
|
| +
|
| + if (is_optimizing()) {
|
| + lazy_deopt_pc_offset_ = assembler()->CodeSize();
|
| + __ Branch(&StubCode::DeoptimizeLazyLabel());
|
| + }
|
| }
|
|
|
|
|
|
|