diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2013-04-08 22:33:25 +0400 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2013-04-08 22:33:25 +0400 |
commit | 60c203ca55d378c59b416a26570dbfdaba639b80 (patch) | |
tree | 17d0f2b876e3ba1df76415cef2d529f64a11137e | |
parent | fddd9ef43d9450e97b3c78692c4d5e74bb21df4a (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.h | 70 | ||||
-rw-r--r-- | src/atomic_ops/generalize-small.template | 14 |
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) \ |