# HG changeset patch # User stefank # Date 1346834369 -7200 # Node ID 4b74094540f36e7bfedc104e2a002c3df6a73641 # Parent e41e23ae6758d93cb9f331666af1ba47bbeca0dc 7195935: NPG: Some issues with compressed oops Summary: Don't decompress the klass pointer in the G1 pre-barrier code when !UseCompressedKlassPointers Reviewed-by: coleenp, brutisso diff -r e41e23ae6758 -r 4b74094540f3 hotspot/src/share/vm/c1/c1_LIRGenerator.cpp --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Tue Sep 04 16:20:28 2012 -0700 +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Wed Sep 05 10:39:29 2012 +0200 @@ -2292,7 +2292,7 @@ if (gen_type_check) { // We have determined that offset == referent_offset && src != null. // if (src->_klass->_reference_type == REF_NONE) -> continue - __ move(new LIR_Address(src.result(), oopDesc::klass_offset_in_bytes(), T_OBJECT), src_klass); + __ move(new LIR_Address(src.result(), oopDesc::klass_offset_in_bytes(), UseCompressedKlassPointers ? T_OBJECT : T_ADDRESS), src_klass); LIR_Address* reference_type_addr = new LIR_Address(src_klass, in_bytes(InstanceKlass::reference_type_offset()), T_BYTE); LIR_Opr reference_type = new_register(T_INT); __ move(reference_type_addr, reference_type);