From 38cff0caeb5126ddf6641f7088ef554e360bd91a Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Sun, 13 Jan 2013 17:33:16 +0400 Subject: [PATCH] Remove AO_store_full from msftc/arm.h in favor of generalized primitive (code refactoring) * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Remove since similar definition exists in generalize-small.h. * src/atomic_ops/sysdeps/msftc/arm.h: Add TODO item for AO_store(). --- src/atomic_ops/sysdeps/msftc/arm.h | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/src/atomic_ops/sysdeps/msftc/arm.h b/src/atomic_ops/sysdeps/msftc/arm.h index fd6b232..1e73fcb 100644 --- a/src/atomic_ops/sysdeps/msftc/arm.h +++ b/src/atomic_ops/sysdeps/msftc/arm.h @@ -55,25 +55,8 @@ AO_load(const volatile AO_t *addr) } #define AO_HAVE_load -AO_INLINE void -AO_store_full(volatile AO_t *addr, AO_t value) -{ - /* Emulate atomic store using CAS. */ - AO_t old = AO_load(addr); - AO_t current; -# ifdef AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE - while ((current = (AO_t)_InterlockedCompareExchange( - (PVOID AO_INTERLOCKED_VOLATILE *)addr, - (PVOID)value, (PVOID)old)) != old) - old = current; -# else - while ((current = (AO_t)_InterlockedCompareExchange( - (LONG AO_INTERLOCKED_VOLATILE *)addr, - (LONG)value, (LONG)old)) != old) - old = current; -# endif -} -#define AO_HAVE_store_full +/* TODO: Implement AO_store() using ordinary store provided Windows */ +/* interrupt handlers clear the LL/SC reservation flag. */ /* #include "../standard_ao_double_t.h" */ /* TODO: implement double-wide operations (similar to x86). */ -- 2.50.0