Index: runtime/vm/intermediate_language_arm.cc |
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc |
index 2142327a9bbf363c2d4ecf142aa72f9aadd89ff9..41921f06df27b642fc5d05502c6d782da54af477 100644 |
--- a/runtime/vm/intermediate_language_arm.cc |
+++ b/runtime/vm/intermediate_language_arm.cc |
@@ -226,22 +226,19 @@ void ClosureCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ LoadImmediate(R5, 0); |
__ AddImmediate(R2, Instructions::HeaderSize() - kHeapObjectTag); |
__ blx(R2); |
- compiler->AddCurrentDescriptor(RawPcDescriptors::kClosureCall, |
- deopt_id(), |
- token_pos()); |
compiler->RecordSafepoint(locs()); |
// Marks either the continuation point in unoptimized code or the |
// deoptimization point in optimized code, after call. |
const intptr_t deopt_id_after = Isolate::ToDeoptAfter(deopt_id()); |
if (compiler->is_optimizing()) { |
compiler->AddDeoptIndexAtCall(deopt_id_after, token_pos()); |
- } else { |
- // Add deoptimization continuation point after the call and before the |
- // arguments are removed. |
- compiler->AddCurrentDescriptor(RawPcDescriptors::kDeopt, |
- deopt_id_after, |
- token_pos()); |
} |
+ // Add deoptimization continuation point after the call and before the |
+ // arguments are removed. |
+ // In optimized code this descriptor is needed for exception handling. |
+ compiler->AddCurrentDescriptor(RawPcDescriptors::kDeopt, |
+ deopt_id_after, |
+ token_pos()); |
__ Drop(argument_count); |
} |