comparison src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @ 6851:94e9408dbf50

8000753: compiler/6912517 crashes on 64bit sparc with compressed oops off Summary: code generated by c1 for getClass intrinsic broken when klass field is loaded on 64bit with compressed klass off. Reviewed-by: kvn
author roland
date Thu, 11 Oct 2012 18:21:01 +0200
parents 8e47bac5643a
children d804e148cff8
comparison
equal deleted inserted replaced
6850:d336b3173277 6851:94e9408dbf50
974 #endif 974 #endif
975 } 975 }
976 break; 976 break;
977 case T_METADATA: __ ld_ptr(base, offset, to_reg->as_register()); break; 977 case T_METADATA: __ ld_ptr(base, offset, to_reg->as_register()); break;
978 case T_ADDRESS: 978 case T_ADDRESS:
979 if (offset == oopDesc::klass_offset_in_bytes()) { 979 #ifdef _LP64
980 if (offset == oopDesc::klass_offset_in_bytes() && UseCompressedKlassPointers) {
980 __ lduw(base, offset, to_reg->as_register()); 981 __ lduw(base, offset, to_reg->as_register());
981 #ifdef _LP64 982 __ decode_klass_not_null(to_reg->as_register());
982 if (UseCompressedKlassPointers) { 983 } else
983 __ decode_klass_not_null(to_reg->as_register()); 984 #endif
984 } 985 {
985 #endif
986 } else {
987 __ ld_ptr(base, offset, to_reg->as_register()); 986 __ ld_ptr(base, offset, to_reg->as_register());
988 } 987 }
989 break; 988 break;
990 case T_ARRAY : // fall through 989 case T_ARRAY : // fall through
991 case T_OBJECT: 990 case T_OBJECT: