mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 18:44:38 +02:00
8000753: compiler/6912517 crashes on 64bit sparc with compressed oops off
Code generated by c1 for getClass intrinsic broken when klass field is loaded on 64bit with compressed klass off. Reviewed-by: kvn
This commit is contained in:
parent
f28ac57f94
commit
74ea92ce42
1 changed files with 5 additions and 6 deletions
|
@ -976,14 +976,13 @@ int LIR_Assembler::load(Register base, int offset, LIR_Opr to_reg, BasicType typ
|
||||||
break;
|
break;
|
||||||
case T_METADATA: __ ld_ptr(base, offset, to_reg->as_register()); break;
|
case T_METADATA: __ ld_ptr(base, offset, to_reg->as_register()); break;
|
||||||
case T_ADDRESS:
|
case T_ADDRESS:
|
||||||
if (offset == oopDesc::klass_offset_in_bytes()) {
|
|
||||||
__ lduw(base, offset, to_reg->as_register());
|
|
||||||
#ifdef _LP64
|
#ifdef _LP64
|
||||||
if (UseCompressedKlassPointers) {
|
if (offset == oopDesc::klass_offset_in_bytes() && UseCompressedKlassPointers) {
|
||||||
__ decode_klass_not_null(to_reg->as_register());
|
__ lduw(base, offset, to_reg->as_register());
|
||||||
}
|
__ decode_klass_not_null(to_reg->as_register());
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
} else {
|
{
|
||||||
__ ld_ptr(base, offset, to_reg->as_register());
|
__ ld_ptr(base, offset, to_reg->as_register());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue