hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
changeset 44738 11431bbc9549
parent 42653 62a5d76872d4
child 45115 e3a622b2b7db
equal deleted inserted replaced
44737:d090627aedb8 44738:11431bbc9549
  1219     patching_info = state_for(x, x->state_before());
  1219     patching_info = state_for(x, x->state_before());
  1220   }
  1220   }
  1221   obj.load_item();
  1221   obj.load_item();
  1222 
  1222 
  1223   // info for exceptions
  1223   // info for exceptions
  1224   CodeEmitInfo* info_for_exception = state_for(x);
  1224   CodeEmitInfo* info_for_exception =
       
  1225       (x->needs_exception_state() ? state_for(x) :
       
  1226                                     state_for(x, x->state_before(), true /*ignore_xhandler*/));
  1225 
  1227 
  1226   CodeStub* stub;
  1228   CodeStub* stub;
  1227   if (x->is_incompatible_class_change_check()) {
  1229   if (x->is_incompatible_class_change_check()) {
  1228     assert(patching_info == NULL, "can't patch this");
  1230     assert(patching_info == NULL, "can't patch this");
  1229     stub = new SimpleExceptionStub(Runtime1::throw_incompatible_class_change_error_id, LIR_OprFact::illegalOpr, info_for_exception);
  1231     stub = new SimpleExceptionStub(Runtime1::throw_incompatible_class_change_error_id, LIR_OprFact::illegalOpr, info_for_exception);
       
  1232   } else if (x->is_invokespecial_receiver_check()) {
       
  1233     assert(patching_info == NULL, "can't patch this");
       
  1234     stub = new DeoptimizeStub(info_for_exception,
       
  1235                               Deoptimization::Reason_class_check,
       
  1236                               Deoptimization::Action_none);
  1230   } else {
  1237   } else {
  1231     stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception);
  1238     stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception);
  1232   }
  1239   }
  1233   LIR_Opr reg = rlock_result(x);
  1240   LIR_Opr reg = rlock_result(x);
  1234   LIR_Opr tmp3 = LIR_OprFact::illegalOpr;
  1241   LIR_Opr tmp3 = LIR_OprFact::illegalOpr;