Index: runtime/vm/intermediate_language_mips.cc |
diff --git a/runtime/vm/intermediate_language_mips.cc b/runtime/vm/intermediate_language_mips.cc |
index c689adc9e30535d42c3fb02fb2d561622f8cd424..5f17374ebd3c15037349cfdb4dfdd45b1a58d796 100644 |
--- a/runtime/vm/intermediate_language_mips.cc |
+++ b/runtime/vm/intermediate_language_mips.cc |
@@ -2359,9 +2359,15 @@ void CreateArrayInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const Code& stub = Code::ZoneHandle(compiler->zone(), |
StubCode::AllocateArray_entry()->code()); |
compiler->AddStubCallTarget(stub); |
- compiler->GenerateCallWithDeopt(token_pos(), deopt_id(), |
- *StubCode::AllocateArray_entry(), |
- RawPcDescriptors::kOther, locs()); |
+ if (deopt_id() == Thread::kNoDeoptId) { |
+ ASSERT(compiler->is_optimizing()); |
+ compiler->GenerateCall(token_pos(), *StubCode::AllocateArray_entry(), |
+ RawPcDescriptors::kOther, locs()); |
+ } else { |
+ compiler->GenerateCallWithDeopt(token_pos(), deopt_id(), |
+ *StubCode::AllocateArray_entry(), |
+ RawPcDescriptors::kOther, locs()); |
+ } |
__ Bind(&done); |
ASSERT(locs()->out(0).reg() == kResultReg); |
} |