--- old/src/os_cpu/linux_aarch64/vm/atomic_linux_aarch64.hpp 2017-07-20 11:32:07.144997270 +0200 +++ new/src/os_cpu/linux_aarch64/vm/atomic_linux_aarch64.hpp 2017-07-20 11:32:07.056997273 +0200 @@ -61,6 +61,13 @@ return res; } +template <> +inline Atomic::CanonicalPointer Atomic::specialized_xchg(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 T generic_cmpxchg(T exchange_value, volatile T* dest, T compare_value, cmpxchg_memory_order order) {