< prev index next >
src/hotspot/cpu/x86/macroAssembler_x86.hpp
Print this page
rev 51517 : 8207169: X86: Modularize cmpxchg-oop assembler for C1 and C2
@@ -321,10 +321,21 @@
// Resolves obj access. Result is placed in the same register.
// All other registers are preserved.
void resolve(DecoratorSet decorators, Register obj);
+ // Atomically store newval into addr, if addr currently contains oldval.
+ // This version is intended for use by C1 assembler, and encodes uncompressed
+ // oops if necessary. C1 assembler expects flags state to be set according
+ // to success of the CAS.
+ void access_cmpxchg_oop_c1(Address addr, Register oldval, Register newval,
+ Register tmp1, Register tmp2);
+
+ void access_cmpxchg_oop_c2(Register res, Address addr, Register oldval, Register newval,
+ Register tmp1, Register tmp2,
+ bool narrow, bool exchange, bool expect_null);
+
void load_heap_oop(Register dst, Address src, Register tmp1 = noreg,
Register thread_tmp = noreg, DecoratorSet decorators = 0);
void load_heap_oop_not_null(Register dst, Address src, Register tmp1 = noreg,
Register thread_tmp = noreg, DecoratorSet decorators = 0);
void store_heap_oop(Address dst, Register src, Register tmp1 = noreg,
< prev index next >