summaryrefslogtreecommitdiff
path: root/src/atomic_ops/sysdeps/gcc/generic-arithm.template
diff options
context:
space:
mode:
Diffstat (limited to 'src/atomic_ops/sysdeps/gcc/generic-arithm.template')
-rw-r--r--src/atomic_ops/sysdeps/gcc/generic-arithm.template42
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