hotspot/src/cpu/ppc/vm/c1_LIRGenerator_ppc.cpp
changeset 46458 3c12af929e7d
parent 46386 742f8b16d00c
parent 44738 11431bbc9549
child 46615 3fd9b25850f4
equal deleted inserted replaced
46457:641e73c3832a 46458:3c12af929e7d
  1117     patching_info = state_for(x, x->state_before());
  1117     patching_info = state_for(x, x->state_before());
  1118   }
  1118   }
  1119   obj.load_item();
  1119   obj.load_item();
  1120   LIR_Opr out_reg = rlock_result(x);
  1120   LIR_Opr out_reg = rlock_result(x);
  1121   CodeStub* stub;
  1121   CodeStub* stub;
  1122   CodeEmitInfo* info_for_exception = state_for(x);
  1122   CodeEmitInfo* info_for_exception =
       
  1123       (x->needs_exception_state() ? state_for(x) :
       
  1124                                     state_for(x, x->state_before(), true /*ignore_xhandler*/));
  1123 
  1125 
  1124   if (x->is_incompatible_class_change_check()) {
  1126   if (x->is_incompatible_class_change_check()) {
  1125     assert(patching_info == NULL, "can't patch this");
  1127     assert(patching_info == NULL, "can't patch this");
  1126     stub = new SimpleExceptionStub(Runtime1::throw_incompatible_class_change_error_id,
  1128     stub = new SimpleExceptionStub(Runtime1::throw_incompatible_class_change_error_id,
  1127                                    LIR_OprFact::illegalOpr, info_for_exception);
  1129                                    LIR_OprFact::illegalOpr, info_for_exception);
       
  1130   } else if (x->is_invokespecial_receiver_check()) {
       
  1131     assert(patching_info == NULL, "can't patch this");
       
  1132     stub = new DeoptimizeStub(info_for_exception,
       
  1133                               Deoptimization::Reason_class_check,
       
  1134                               Deoptimization::Action_none);
  1128   } else {
  1135   } else {
  1129     stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception);
  1136     stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception);
  1130   }
  1137   }
  1131   // Following registers are used by slow_subtype_check:
  1138   // Following registers are used by slow_subtype_check:
  1132   LIR_Opr tmp1 = FrameMap::R4_oop_opr; // super_klass
  1139   LIR_Opr tmp1 = FrameMap::R4_oop_opr; // super_klass