diff options
Diffstat (limited to 'src/atomic_ops/sysdeps/gcc/generic-arithm.template')
-rw-r--r-- | src/atomic_ops/sysdeps/gcc/generic-arithm.template | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/src/atomic_ops/sysdeps/gcc/generic-arithm.template b/src/atomic_ops/sysdeps/gcc/generic-arithm.template index 2067d55..41e56bf 100644 --- a/src/atomic_ops/sysdeps/gcc/generic-arithm.template +++ b/src/atomic_ops/sysdeps/gcc/generic-arithm.template @@ -22,23 +22,29 @@ AO_XSIZE_fetch_and_add_XBAR(volatile XCTYPE *addr, XCTYPE incr) } #define AO_HAVE_XSIZE_fetch_and_add_XBAR -AO_INLINE void -AO_XSIZE_and_XBAR(volatile XCTYPE *addr, XCTYPE value) -{ - (void)__atomic_and_fetch(addr, value, __ATOMIC_XGCCBAR); -} -#define AO_HAVE_XSIZE_and_XBAR +#ifndef AO_SKIPATOMIC_ANY_and_ANY + AO_INLINE void + AO_XSIZE_and_XBAR(volatile XCTYPE *addr, XCTYPE value) + { + (void)__atomic_and_fetch(addr, value, __ATOMIC_XGCCBAR); + } +# define AO_HAVE_XSIZE_and_XBAR +#endif -AO_INLINE void -AO_XSIZE_or_XBAR(volatile XCTYPE *addr, XCTYPE value) -{ - (void)__atomic_or_fetch(addr, value, __ATOMIC_XGCCBAR); -} -#define AO_HAVE_XSIZE_or_XBAR +#ifndef AO_SKIPATOMIC_ANY_or_ANY + AO_INLINE void + AO_XSIZE_or_XBAR(volatile XCTYPE *addr, XCTYPE value) + { + (void)__atomic_or_fetch(addr, value, __ATOMIC_XGCCBAR); + } +# define AO_HAVE_XSIZE_or_XBAR +#endif -AO_INLINE void -AO_XSIZE_xor_XBAR(volatile XCTYPE *addr, XCTYPE value) -{ - (void)__atomic_xor_fetch(addr, value, __ATOMIC_XGCCBAR); -} -#define AO_HAVE_XSIZE_xor_XBAR +#ifndef AO_SKIPATOMIC_ANY_xor_ANY + AO_INLINE void + AO_XSIZE_xor_XBAR(volatile XCTYPE *addr, XCTYPE value) + { + (void)__atomic_xor_fetch(addr, value, __ATOMIC_XGCCBAR); + } +# define AO_HAVE_XSIZE_xor_XBAR +#endif |