< prev index next >

src/hotspot/share/c1/c1_LIR.cpp

Print this page

*** 311,321 **** LIR_OpTypeCheck::LIR_OpTypeCheck(LIR_Code code, LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_exception, CodeEmitInfo* info_for_patch, ! CodeStub* stub) : LIR_Op(code, result, NULL) , _object(object) , _array(LIR_OprFact::illegalOpr) , _klass(klass) --- 311,321 ---- LIR_OpTypeCheck::LIR_OpTypeCheck(LIR_Code code, LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_exception, CodeEmitInfo* info_for_patch, ! CodeStub* stub, bool need_null_check) : LIR_Op(code, result, NULL) , _object(object) , _array(LIR_OprFact::illegalOpr) , _klass(klass)
*** 327,336 **** --- 327,337 ---- , _info_for_exception(info_for_exception) , _stub(stub) , _profiled_method(NULL) , _profiled_bci(-1) , _should_profile(false) + , _need_null_check(need_null_check) { if (code == lir_checkcast) { assert(info_for_exception != NULL, "checkcast throws exceptions"); } else if (code == lir_instanceof) { assert(info_for_exception == NULL, "instanceof throws no exceptions");
*** 354,363 **** --- 355,365 ---- , _info_for_exception(info_for_exception) , _stub(NULL) , _profiled_method(NULL) , _profiled_bci(-1) , _should_profile(false) + , _need_null_check(true) { if (code == lir_store_check) { _stub = new ArrayStoreExceptionStub(object, info_for_exception); assert(info_for_exception != NULL, "store_check throws exceptions"); } else {
*** 1387,1397 **** void LIR_List::checkcast (LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_exception, CodeEmitInfo* info_for_patch, CodeStub* stub, ! ciMethod* profiled_method, int profiled_bci) { LIR_OpTypeCheck* c = new LIR_OpTypeCheck(lir_checkcast, result, object, klass, tmp1, tmp2, tmp3, fast_check, info_for_exception, info_for_patch, stub); if (profiled_method != NULL) { c->set_profiled_method(profiled_method); c->set_profiled_bci(profiled_bci); --- 1389,1402 ---- void LIR_List::checkcast (LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_exception, CodeEmitInfo* info_for_patch, CodeStub* stub, ! ciMethod* profiled_method, int profiled_bci, bool is_never_null) { ! // If klass is non-nullable, LIRGenerator::do_CheckCast has already performed null-check ! // on the object. ! bool need_null_check = !is_never_null; LIR_OpTypeCheck* c = new LIR_OpTypeCheck(lir_checkcast, result, object, klass, tmp1, tmp2, tmp3, fast_check, info_for_exception, info_for_patch, stub); if (profiled_method != NULL) { c->set_profiled_method(profiled_method); c->set_profiled_bci(profiled_bci);
< prev index next >