mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-22 21:59:52 +00:00
8263425: AArch64: two potential bugs in C1 LIRGenerator::generate_address()
Reviewed-by: aph
This commit is contained in:
parent
554dd29fb6
commit
f7e0a09802
@ -174,7 +174,7 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
if (large_disp != 0) {
|
||||
LIR_Opr tmp = new_pointer_register();
|
||||
if (Assembler::operand_valid_for_add_sub_immediate(large_disp)) {
|
||||
__ add(tmp, tmp, LIR_OprFact::intptrConst(large_disp));
|
||||
__ add(index, LIR_OprFact::intptrConst(large_disp), tmp);
|
||||
index = tmp;
|
||||
} else {
|
||||
__ move(tmp, LIR_OprFact::intptrConst(large_disp));
|
||||
@ -191,7 +191,7 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
}
|
||||
|
||||
// at this point we either have base + index or base + displacement
|
||||
if (large_disp == 0) {
|
||||
if (large_disp == 0 && index->is_register()) {
|
||||
return new LIR_Address(base, index, type);
|
||||
} else {
|
||||
assert(Address::offset_ok_for_immed(large_disp, 0), "must be");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user