diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2013-02-09 11:43:54 +0400 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2013-02-09 11:43:54 +0400 |
commit | b9cb166fc8211743c7e644f9a3f90b09c9c36e7a (patch) | |
tree | 754d55f77f7b08beb020756deafd6dee07e74c75 | |
parent | 1e6c8b10532c25cea75c6507974611b789358172 (diff) |
Fix AO_load_acquire for AArch64
* src/atomic_ops/sysdeps/gcc/aarch64.h: Add TODO for AO_nop_read;
uncomment AO_load_acquire definition and remove include of
read_ordered.h file (because AO_load_acquire requires "release"
barrier, AO_load_read is defined in generalize-small.h using
AO_nop_read).
-rw-r--r-- | src/atomic_ops/sysdeps/gcc/aarch64.h | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/atomic_ops/sysdeps/gcc/aarch64.h b/src/atomic_ops/sysdeps/gcc/aarch64.h index 1e8c076..b20ac86 100644 --- a/src/atomic_ops/sysdeps/gcc/aarch64.h +++ b/src/atomic_ops/sysdeps/gcc/aarch64.h @@ -30,7 +30,7 @@ AO_nop_full(void) } #define AO_HAVE_nop_full -/* TODO: Add AO_nop_write. */ +/* TODO: Add AO_nop_write/read. */ AO_INLINE AO_t AO_load(const volatile AO_t *addr) @@ -39,14 +39,12 @@ AO_load(const volatile AO_t *addr) } #define AO_HAVE_load -/* FIXME: AO_load_acquire is defined by read_ordered.h: which is better? AO_INLINE AO_t AO_load_acquire(const volatile AO_t *addr) { return __atomic_load_n(addr, __ATOMIC_ACQUIRE); } #define AO_HAVE_load_acquire -*/ AO_INLINE void AO_store(volatile AO_t *addr, AO_t value) @@ -135,5 +133,3 @@ AO_fetch_compare_and_swap(volatile AO_t *addr, AO_t old_val, AO_t new_val) /* TODO: Add AO_and/or/xor primitives. */ /* TODO: Add AO_int_ primitives. */ /* TODO: Add double-wide primitives. */ - -#include "../read_ordered.h" |