mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 14:24:46 +02:00
8027751: C1 crashes in Weblogic with G1 enabled
Keep T_OBJECT operands in registers for logical operations on x64 Reviewed-by: kvn, roland
This commit is contained in:
parent
c8757a5edd
commit
7899a729a9
2 changed files with 49 additions and 2 deletions
|
@ -1138,8 +1138,10 @@ IntervalUseKind LinearScan::use_kind_of_input_operand(LIR_Op* op, LIR_Opr opr) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else if (opr_type != T_LONG) {
|
||||
// We want to sometimes use logical operations on pointers, in particular in GC barriers.
|
||||
// Since 64bit logical operations do not current support operands on stack, we have to make sure
|
||||
// T_OBJECT doesn't get spilled along with T_LONG.
|
||||
} else if (opr_type != T_LONG LP64_ONLY(&& opr_type != T_OBJECT)) {
|
||||
// integer instruction (note: long operands must always be in register)
|
||||
switch (op->code()) {
|
||||
case lir_cmp:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue