Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Unity-Technologies/libatomic_ops.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2013-04-08 22:33:25 +0400
committerIvan Maidanski <ivmai@mail.ru>2013-04-08 22:33:25 +0400
commit60c203ca55d378c59b416a26570dbfdaba639b80 (patch)
tree17d0f2b876e3ba1df76415cef2d529f64a11137e
parentfddd9ef43d9450e97b3c78692c4d5e74bb21df4a (diff)
Fix generalized store_release_write for double-wide type on x64 (GCC)
* src/atomic_ops/generalize-small.template (AO_XSIZE_store_release_write): Move store-write-based definition down to follow AO_XSIZE_store_write one (since AO_double_store is currently defined via CAS for gcc/x64). * src/atomic_ops/generalize-small.h: Regenerate.
-rw-r--r--src/atomic_ops/generalize-small.h70
-rw-r--r--src/atomic_ops/generalize-small.template14
2 files changed, 42 insertions, 42 deletions
diff --git a/src/atomic_ops/generalize-small.h b/src/atomic_ops/generalize-small.h
index 805fc46..37d1d21 100644
--- a/src/atomic_ops/generalize-small.h
+++ b/src/atomic_ops/generalize-small.h
@@ -445,13 +445,6 @@
# define AO_HAVE_char_store_write
#endif
-#if defined(AO_HAVE_char_store_write) \
- && !defined(AO_HAVE_char_store_release_write)
-# define AO_char_store_release_write(addr, val) \
- AO_char_store_write(addr, val)
-# define AO_HAVE_char_store_release_write
-#endif
-
#if defined(AO_HAVE_char_compare_and_swap_write) \
&& !defined(AO_HAVE_char_store_write)
AO_INLINE void
@@ -467,6 +460,13 @@
# define AO_HAVE_char_store_write
#endif
+#if defined(AO_HAVE_char_store_write) \
+ && !defined(AO_HAVE_char_store_release_write)
+# define AO_char_store_release_write(addr, val) \
+ AO_char_store_write(addr, val)
+# define AO_HAVE_char_store_release_write
+#endif
+
#if defined(AO_HAVE_char_store_release) && defined(AO_HAVE_nop_full) \
&& !defined(AO_HAVE_char_store_full)
# define AO_char_store_full(addr, val) \
@@ -965,13 +965,6 @@
# define AO_HAVE_short_store_write
#endif
-#if defined(AO_HAVE_short_store_write) \
- && !defined(AO_HAVE_short_store_release_write)
-# define AO_short_store_release_write(addr, val) \
- AO_short_store_write(addr, val)
-# define AO_HAVE_short_store_release_write
-#endif
-
#if defined(AO_HAVE_short_compare_and_swap_write) \
&& !defined(AO_HAVE_short_store_write)
AO_INLINE void
@@ -987,6 +980,13 @@
# define AO_HAVE_short_store_write
#endif
+#if defined(AO_HAVE_short_store_write) \
+ && !defined(AO_HAVE_short_store_release_write)
+# define AO_short_store_release_write(addr, val) \
+ AO_short_store_write(addr, val)
+# define AO_HAVE_short_store_release_write
+#endif
+
#if defined(AO_HAVE_short_store_release) && defined(AO_HAVE_nop_full) \
&& !defined(AO_HAVE_short_store_full)
# define AO_short_store_full(addr, val) \
@@ -1485,13 +1485,6 @@
# define AO_HAVE_int_store_write
#endif
-#if defined(AO_HAVE_int_store_write) \
- && !defined(AO_HAVE_int_store_release_write)
-# define AO_int_store_release_write(addr, val) \
- AO_int_store_write(addr, val)
-# define AO_HAVE_int_store_release_write
-#endif
-
#if defined(AO_HAVE_int_compare_and_swap_write) \
&& !defined(AO_HAVE_int_store_write)
AO_INLINE void
@@ -1507,6 +1500,13 @@
# define AO_HAVE_int_store_write
#endif
+#if defined(AO_HAVE_int_store_write) \
+ && !defined(AO_HAVE_int_store_release_write)
+# define AO_int_store_release_write(addr, val) \
+ AO_int_store_write(addr, val)
+# define AO_HAVE_int_store_release_write
+#endif
+
#if defined(AO_HAVE_int_store_release) && defined(AO_HAVE_nop_full) \
&& !defined(AO_HAVE_int_store_full)
# define AO_int_store_full(addr, val) \
@@ -2005,13 +2005,6 @@
# define AO_HAVE_store_write
#endif
-#if defined(AO_HAVE_store_write) \
- && !defined(AO_HAVE_store_release_write)
-# define AO_store_release_write(addr, val) \
- AO_store_write(addr, val)
-# define AO_HAVE_store_release_write
-#endif
-
#if defined(AO_HAVE_compare_and_swap_write) \
&& !defined(AO_HAVE_store_write)
AO_INLINE void
@@ -2027,6 +2020,13 @@
# define AO_HAVE_store_write
#endif
+#if defined(AO_HAVE_store_write) \
+ && !defined(AO_HAVE_store_release_write)
+# define AO_store_release_write(addr, val) \
+ AO_store_write(addr, val)
+# define AO_HAVE_store_release_write
+#endif
+
#if defined(AO_HAVE_store_release) && defined(AO_HAVE_nop_full) \
&& !defined(AO_HAVE_store_full)
# define AO_store_full(addr, val) \
@@ -2525,13 +2525,6 @@
# define AO_HAVE_double_store_write
#endif
-#if defined(AO_HAVE_double_store_write) \
- && !defined(AO_HAVE_double_store_release_write)
-# define AO_double_store_release_write(addr, val) \
- AO_double_store_write(addr, val)
-# define AO_HAVE_double_store_release_write
-#endif
-
#if defined(AO_HAVE_double_compare_and_swap_write) \
&& !defined(AO_HAVE_double_store_write)
AO_INLINE void
@@ -2547,6 +2540,13 @@
# define AO_HAVE_double_store_write
#endif
+#if defined(AO_HAVE_double_store_write) \
+ && !defined(AO_HAVE_double_store_release_write)
+# define AO_double_store_release_write(addr, val) \
+ AO_double_store_write(addr, val)
+# define AO_HAVE_double_store_release_write
+#endif
+
#if defined(AO_HAVE_double_store_release) && defined(AO_HAVE_nop_full) \
&& !defined(AO_HAVE_double_store_full)
# define AO_double_store_full(addr, val) \
diff --git a/src/atomic_ops/generalize-small.template b/src/atomic_ops/generalize-small.template
index 8bb3432..ac916a5 100644
--- a/src/atomic_ops/generalize-small.template
+++ b/src/atomic_ops/generalize-small.template
@@ -445,13 +445,6 @@
# define AO_HAVE_XSIZE_store_write
#endif
-#if defined(AO_HAVE_XSIZE_store_write) \
- && !defined(AO_HAVE_XSIZE_store_release_write)
-# define AO_XSIZE_store_release_write(addr, val) \
- AO_XSIZE_store_write(addr, val)
-# define AO_HAVE_XSIZE_store_release_write
-#endif
-
#if defined(AO_HAVE_XSIZE_compare_and_swap_write) \
&& !defined(AO_HAVE_XSIZE_store_write)
AO_INLINE void
@@ -467,6 +460,13 @@
# define AO_HAVE_XSIZE_store_write
#endif
+#if defined(AO_HAVE_XSIZE_store_write) \
+ && !defined(AO_HAVE_XSIZE_store_release_write)
+# define AO_XSIZE_store_release_write(addr, val) \
+ AO_XSIZE_store_write(addr, val)
+# define AO_HAVE_XSIZE_store_release_write
+#endif
+
#if defined(AO_HAVE_XSIZE_store_release) && defined(AO_HAVE_nop_full) \
&& !defined(AO_HAVE_XSIZE_store_full)
# define AO_XSIZE_store_full(addr, val) \