< 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,10 +59,17 @@
   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 >