Index: runtime/vm/intermediate_language_arm.cc |
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc |
index fa3a2611b59a90b6971ed821e4a2d19fa2249e7c..9827a4da71857c8b0070209876bbd0ef815a55f1 100644 |
--- a/runtime/vm/intermediate_language_arm.cc |
+++ b/runtime/vm/intermediate_language_arm.cc |
@@ -2837,6 +2837,14 @@ LocationSummary* CatchBlockEntryInstr::MakeLocationSummary(Zone* zone, |
void CatchBlockEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
+ // Ensure space for patching return sites for lazy deopt. |
+ if (!FLAG_precompiled_mode && compiler->is_optimizing()) { |
+ for (intptr_t i = 0; |
+ i < CallPattern::DeoptCallPatternLengthInInstructions(); |
+ ++i) { |
+ __ nop(); |
+ } |
+ } |
__ Bind(compiler->GetJumpLabel(this)); |
compiler->AddExceptionHandler(catch_try_index(), |
try_index(), |