8071731: Better scaling for C1
Reviewed-by: kvn, iveresov
This commit is contained in:
parent
8f84825191
commit
73bc9c4c0b
@ -2208,7 +2208,15 @@ void LIRGenerator::do_UnsafePutRaw(UnsafePutRaw* x) {
|
||||
if (log2_scale != 0) {
|
||||
// temporary fix (platform dependent code without shift on Intel would be better)
|
||||
// TODO: ARM also allows embedded shift in the address
|
||||
__ shift_left(index_op, log2_scale, index_op);
|
||||
LIR_Opr tmp = new_pointer_register();
|
||||
if (TwoOperandLIRForm) {
|
||||
__ move(index_op, tmp);
|
||||
index_op = tmp;
|
||||
}
|
||||
__ shift_left(index_op, log2_scale, tmp);
|
||||
if (!TwoOperandLIRForm) {
|
||||
index_op = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
LIR_Address* addr = new LIR_Address(base_op, index_op, x->basic_type());
|
||||
|
Loading…
x
Reference in New Issue
Block a user