changeset 3608:044a77cd0c8b

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
author stefank
date Wed, 05 Sep 2012 10:39:29 +0200
parents 5d2156bcb78b
children 78b56e53050e
files src/share/vm/c1/c1_LIRGenerator.cpp
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/c1/c1_LIRGenerator.cpp	Tue Sep 04 16:20:28 2012 -0700
+++ b/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);