From da37b2c2e56291d54ff16fa24df1498783ed881a Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Thu, 24 Jan 2013 01:23:41 +0400 Subject: [PATCH] Add TODO items to gcc/aarch64.h * src/atomic_ops/sysdeps/gcc/aarch64.h: Add TODO items. * src/atomic_ops/sysdeps/gcc/arm.h: Remove FIXME for 64-bit ARM. --- src/atomic_ops/sysdeps/gcc/aarch64.h | 10 ++++++++++ src/atomic_ops/sysdeps/gcc/arm.h | 1 - 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/atomic_ops/sysdeps/gcc/aarch64.h b/src/atomic_ops/sysdeps/gcc/aarch64.h index b3e9a6c..56bff37 100644 --- a/src/atomic_ops/sysdeps/gcc/aarch64.h +++ b/src/atomic_ops/sysdeps/gcc/aarch64.h @@ -19,6 +19,8 @@ #include "../test_and_set_t_is_ao_t.h" +/* TODO: The rest (platform-neutral) should be moved to gcc/builtin.h. */ + AO_INLINE void AO_nop_full(void) { @@ -28,6 +30,8 @@ AO_nop_full(void) } #define AO_HAVE_nop_full +/* TODO: Add AO_nop_write. */ + AO_INLINE AO_t AO_load(const volatile AO_t *addr) { @@ -112,6 +116,8 @@ AO_fetch_and_add_full(volatile AO_t *addr, AO_t incr) } #define AO_HAVE_fetch_and_add_full +/* TODO: Remove add1/sub1 primitives (as they could be generalized). */ + AO_INLINE AO_t AO_fetch_and_add1(volatile AO_t *addr) { @@ -181,3 +187,7 @@ AO_fetch_compare_and_swap(volatile AO_t *addr, AO_t old_val, AO_t new_val) return __sync_val_compare_and_swap(addr, old_val, new_val); } #define AO_HAVE_fetch_compare_and_swap + +/* TODO: Add AO_and/or/xor primitives. */ +/* TODO: Add AO_int_ primitives. */ +/* TODO: Add double-wide primitives. */ diff --git a/src/atomic_ops/sysdeps/gcc/arm.h b/src/atomic_ops/sysdeps/gcc/arm.h index 324f4a5..a8d7288 100644 --- a/src/atomic_ops/sysdeps/gcc/arm.h +++ b/src/atomic_ops/sysdeps/gcc/arm.h @@ -389,5 +389,4 @@ AO_fetch_compare_and_swap(volatile AO_t *addr, AO_t old_val, AO_t new_val) # define AO_HAVE_test_and_set_full #endif /* !AO_HAVE_test_and_set[_full] && AO_ARM_HAVE_SWP */ -/* FIXME: 32-bit ABI is assumed. */ #define AO_T_IS_INT -- 2.40.0