< prev index next >
src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp
Print this page
*** 993,1008 ****
void atomic_xchgw(Register prev, Register newv, Register addr);
void atomic_xchgal(Register prev, Register newv, Register addr);
void atomic_xchgalw(Register prev, Register newv, Register addr);
void orptr(Address adr, RegisterOrConstant src) {
! ldr(rscratch2, adr);
if (src.is_register())
! orr(rscratch2, rscratch2, src.as_register());
else
! orr(rscratch2, rscratch2, src.as_constant());
! str(rscratch2, adr);
}
// A generic CAS; success or failure is in the EQ flag.
// Clobbers rscratch1
void cmpxchg(Register addr, Register expected, Register new_val,
--- 993,1008 ----
void atomic_xchgw(Register prev, Register newv, Register addr);
void atomic_xchgal(Register prev, Register newv, Register addr);
void atomic_xchgalw(Register prev, Register newv, Register addr);
void orptr(Address adr, RegisterOrConstant src) {
! ldr(rscratch1, adr);
if (src.is_register())
! orr(rscratch1, rscratch1, src.as_register());
else
! orr(rscratch1, rscratch1, src.as_constant());
! str(rscratch1, adr);
}
// A generic CAS; success or failure is in the EQ flag.
// Clobbers rscratch1
void cmpxchg(Register addr, Register expected, Register new_val,
< prev index next >