mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 01:54:47 +02:00
8233019: java.lang.Class.isPrimitive() (C1) returns wrong result if Klass* is aligned to 32bit
Reviewed-by: mdoerr, dlong, aph
This commit is contained in:
parent
bc8822095f
commit
13cc1154f0
8 changed files with 63 additions and 2 deletions
|
@ -1301,7 +1301,7 @@ void LIRGenerator::do_isPrimitive(Intrinsic* x) {
|
|||
}
|
||||
|
||||
__ move(new LIR_Address(rcvr.result(), java_lang_Class::klass_offset_in_bytes(), T_ADDRESS), temp, info);
|
||||
__ cmp(lir_cond_notEqual, temp, LIR_OprFact::intConst(0));
|
||||
__ cmp(lir_cond_notEqual, temp, LIR_OprFact::metadataConst(0));
|
||||
__ cmove(lir_cond_notEqual, LIR_OprFact::intConst(0), LIR_OprFact::intConst(1), result, T_BOOLEAN);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue