src/hotspot/share/gc/shared/c1/barrierSetC1.cpp
changeset 51649 8f594f75e054
parent 51487 f791e6fb8040
child 51983 2a12a3865916
equal deleted inserted replaced
51648:b7b69bc93a2d 51649:8f594f75e054
   319       // offset is a const and equals referent offset
   319       // offset is a const and equals referent offset
   320       // if (source == null) -> continue
   320       // if (source == null) -> continue
   321       __ cmp(lir_cond_equal, base.result(), LIR_OprFact::oopConst(NULL));
   321       __ cmp(lir_cond_equal, base.result(), LIR_OprFact::oopConst(NULL));
   322       __ branch(lir_cond_equal, T_OBJECT, cont->label());
   322       __ branch(lir_cond_equal, T_OBJECT, cont->label());
   323     }
   323     }
   324     LIR_Opr src_klass = gen->new_register(T_OBJECT);
   324     LIR_Opr src_klass = gen->new_register(T_METADATA);
   325     if (gen_type_check) {
   325     if (gen_type_check) {
   326       // We have determined that offset == referent_offset && src != null.
   326       // We have determined that offset == referent_offset && src != null.
   327       // if (src->_klass->_reference_type == REF_NONE) -> continue
   327       // if (src->_klass->_reference_type == REF_NONE) -> continue
   328       __ move(new LIR_Address(base.result(), oopDesc::klass_offset_in_bytes(), T_ADDRESS), src_klass);
   328       __ move(new LIR_Address(base.result(), oopDesc::klass_offset_in_bytes(), T_ADDRESS), src_klass);
   329       LIR_Address* reference_type_addr = new LIR_Address(src_klass, in_bytes(InstanceKlass::reference_type_offset()), T_BYTE);
   329       LIR_Address* reference_type_addr = new LIR_Address(src_klass, in_bytes(InstanceKlass::reference_type_offset()), T_BYTE);