hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
changeset 44738 11431bbc9549
parent 41337 4493ad6de04d
child 46458 3c12af929e7d
equal deleted inserted replaced
44737:d090627aedb8 44738:11431bbc9549
  1194     patching_info = state_for(x, x->state_before());
  1194     patching_info = state_for(x, x->state_before());
  1195   }
  1195   }
  1196   obj.load_item();
  1196   obj.load_item();
  1197   LIR_Opr out_reg = rlock_result(x);
  1197   LIR_Opr out_reg = rlock_result(x);
  1198   CodeStub* stub;
  1198   CodeStub* stub;
  1199   CodeEmitInfo* info_for_exception = state_for(x);
  1199   CodeEmitInfo* info_for_exception =
       
  1200       (x->needs_exception_state() ? state_for(x) :
       
  1201                                     state_for(x, x->state_before(), true /*ignore_xhandler*/));
  1200 
  1202 
  1201   if (x->is_incompatible_class_change_check()) {
  1203   if (x->is_incompatible_class_change_check()) {
  1202     assert(patching_info == NULL, "can't patch this");
  1204     assert(patching_info == NULL, "can't patch this");
  1203     stub = new SimpleExceptionStub(Runtime1::throw_incompatible_class_change_error_id, LIR_OprFact::illegalOpr, info_for_exception);
  1205     stub = new SimpleExceptionStub(Runtime1::throw_incompatible_class_change_error_id, LIR_OprFact::illegalOpr, info_for_exception);
       
  1206   } else if (x->is_invokespecial_receiver_check()) {
       
  1207     assert(patching_info == NULL, "can't patch this");
       
  1208     stub = new DeoptimizeStub(info_for_exception,
       
  1209                               Deoptimization::Reason_class_check,
       
  1210                               Deoptimization::Action_none);
  1204   } else {
  1211   } else {
  1205     stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception);
  1212     stub = new SimpleExceptionStub(Runtime1::throw_class_cast_exception_id, obj.result(), info_for_exception);
  1206   }
  1213   }
  1207   LIR_Opr tmp1 = FrameMap::G1_oop_opr;
  1214   LIR_Opr tmp1 = FrameMap::G1_oop_opr;
  1208   LIR_Opr tmp2 = FrameMap::G3_oop_opr;
  1215   LIR_Opr tmp2 = FrameMap::G3_oop_opr;