Index: runtime/vm/intermediate_language_x64.cc |
=================================================================== |
--- runtime/vm/intermediate_language_x64.cc (revision 32457) |
+++ runtime/vm/intermediate_language_x64.cc (working copy) |
@@ -4587,9 +4587,10 @@ |
void CheckClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
+ const DeoptReasonId deopt_reason = |
+ licm_hoisted_ ? kDeoptHoistedCheckClass : kDeoptCheckClass; |
if (IsNullCheck()) { |
- Label* deopt = compiler->AddDeoptStub(deopt_id(), |
- kDeoptCheckClass); |
+ Label* deopt = compiler->AddDeoptStub(deopt_id(), deopt_reason); |
__ CompareObject(locs()->in(0).reg(), |
Object::null_object(), PP); |
__ j(EQUAL, deopt); |
@@ -4600,8 +4601,7 @@ |
(unary_checks().NumberOfChecks() > 1)); |
Register value = locs()->in(0).reg(); |
Register temp = locs()->temp(0).reg(); |
- Label* deopt = compiler->AddDeoptStub(deopt_id(), |
- kDeoptCheckClass); |
+ Label* deopt = compiler->AddDeoptStub(deopt_id(), deopt_reason); |
Label is_ok; |
intptr_t cix = 0; |
if (unary_checks().GetReceiverClassIdAt(cix) == kSmiCid) { |