summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/atomic_ops/generalize.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/atomic_ops/generalize.h b/src/atomic_ops/generalize.h
index 489f246..6edeab4 100644
--- a/src/atomic_ops/generalize.h
+++ b/src/atomic_ops/generalize.h
@@ -709,3 +709,19 @@
}
# define AO_HAVE_double_compare_and_swap_full
#endif
+
+#ifndef AO_HAVE_double_compare_and_swap_dd_acquire_read
+ /* Duplicated from generalize-small because double CAS might be */
+ /* defined after the include. */
+# ifdef AO_NO_DD_ORDERING
+# if defined(AO_HAVE_double_compare_and_swap_acquire_read)
+# define AO_double_compare_and_swap_dd_acquire_read(addr, old, new_val) \
+ AO_double_compare_and_swap_acquire_read(addr, old, new_val)
+# define AO_HAVE_double_compare_and_swap_dd_acquire_read
+# endif
+# elif defined(AO_HAVE_double_compare_and_swap)
+# define AO_double_compare_and_swap_dd_acquire_read(addr, old, new_val) \
+ AO_double_compare_and_swap(addr, old, new_val)
+# define AO_HAVE_double_compare_and_swap_dd_acquire_read
+# endif /* !AO_NO_DD_ORDERING */
+#endif