< prev index next >
src/hotspot/share/gc/shared/c1/barrierSetC1.cpp
Print this page
*** 60,72 ****
addr_opr = LIR_OprFact::address(gen->generate_address(base.result(), offset, 0, 0, access.type()));
}
if (resolve_in_register) {
LIR_Opr resolved_addr = gen->new_pointer_register();
! __ leal(addr_opr, resolved_addr);
! resolved_addr = LIR_OprFact::address(new LIR_Address(resolved_addr, access.type()));
! return resolved_addr;
} else {
return addr_opr;
}
}
--- 60,76 ----
addr_opr = LIR_OprFact::address(gen->generate_address(base.result(), offset, 0, 0, access.type()));
}
if (resolve_in_register) {
LIR_Opr resolved_addr = gen->new_pointer_register();
! if (needs_patching) {
! __ leal(addr_opr, resolved_addr, lir_patch_normal, access.patch_emit_info());
! access.clear_decorators(C1_NEEDS_PATCHING);
! } else {
! __ leal(addr_opr, resolved_addr);
! }
! return LIR_OprFact::address(new LIR_Address(resolved_addr, access.type()));
} else {
return addr_opr;
}
}
< prev index next >