< prev index next >

src/os_cpu/linux_aarch64/vm/atomic_linux_aarch64.hpp

Print this page
rev 13281 : imported patch Atomic_refactoring
rev 13282 : imported patch Atomic_polishing
rev 13284 : [mq]: Atomic_aliasing_1

*** 59,68 **** --- 59,75 ---- int64_t res = __sync_lock_test_and_set (dest, exchange_value); FULL_MEM_BARRIER; return res; } + template <> + inline Atomic::CanonicalPointer Atomic::specialized_xchg<Atomic::CanonicalPointer>(Atomic::CanonicalPointer exchange_value, volatile Atomic::CanonicalPointer* dest) { + Atomic::CanonicalPointer res = __sync_lock_test_and_set (dest, exchange_value); + FULL_MEM_BARRIER; + return res; + } + template <typename T> T generic_cmpxchg(T exchange_value, volatile T* dest, T compare_value, cmpxchg_memory_order order) { if (order == memory_order_relaxed) { T value = compare_value;
< prev index next >