]> granicus.if.org Git - libatomic_ops/commitdiff
Remove load_read, store_write redundant definition from ordered_X.h
authorIvan Maidanski <ivmai@mail.ru>
Tue, 5 Feb 2013 21:38:38 +0000 (01:38 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 5 Feb 2013 22:22:32 +0000 (02:22 +0400)
(code refactoring)

* src/atomic_ops/sysdeps/loadstore/ordered_loads_only.template
(AO_XSIZE_load_read): Remove prototype (since defined by
generalize-small.template in the same way).
* src/atomic_ops/sysdeps/loadstore/ordered_stores_only.template
(AO_XSIZE_store_write): Likewise.
* src/atomic_ops/sysdeps/loadstore/ordered_stores_only.template
(AO_XSIZE_store_release): Define using AO_nop_write and AO_XSIZE_store
directly.
* src/atomic_ops/sysdeps/ordered_except_wr.h: Move include of
ordered_stores_only.h down to be after AO_nop_write definition.
* src/atomic_ops/sysdeps/read_ordered.h: Move include of
ordered_loads_only.h down to be after AO_nop_read definition.
* src/atomic_ops/sysdeps/loadstore/ordered_loads_only.h: Regenerate.
* src/atomic_ops/sysdeps/loadstore/ordered_stores_only.h: Likewise.

src/atomic_ops/sysdeps/loadstore/ordered_loads_only.h
src/atomic_ops/sysdeps/loadstore/ordered_loads_only.template
src/atomic_ops/sysdeps/loadstore/ordered_stores_only.h
src/atomic_ops/sysdeps/loadstore/ordered_stores_only.template
src/atomic_ops/sysdeps/ordered_except_wr.h
src/atomic_ops/sysdeps/read_ordered.h

index 785219499b1b6d6490c7550f86113a40c01a26e2..a64cfafc7e79ed89d1498e24f50b736aa3ed252f 100644 (file)
  */
 
 #ifdef AO_HAVE_char_load
-  AO_INLINE unsigned/**/char
-  AO_char_load_read(const volatile unsigned/**/char *addr)
-  {
-    unsigned/**/char result = AO_char_load(addr);
-
-    AO_compiler_barrier();
-    return result;
-  }
-# define AO_HAVE_char_load_read
-
+  /* char_load_read is defined in generalize-small.    */
 # define AO_char_load_acquire(addr) AO_char_load_read(addr)
 # define AO_HAVE_char_load_acquire
-#endif /* AO_HAVE_char_load */
+#endif
 /*
  * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
  *
  */
 
 #ifdef AO_HAVE_short_load
-  AO_INLINE unsigned/**/short
-  AO_short_load_read(const volatile unsigned/**/short *addr)
-  {
-    unsigned/**/short result = AO_short_load(addr);
-
-    AO_compiler_barrier();
-    return result;
-  }
-# define AO_HAVE_short_load_read
-
+  /* short_load_read is defined in generalize-small.    */
 # define AO_short_load_acquire(addr) AO_short_load_read(addr)
 # define AO_HAVE_short_load_acquire
-#endif /* AO_HAVE_short_load */
+#endif
 /*
  * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
  *
  */
 
 #ifdef AO_HAVE_int_load
-  AO_INLINE unsigned
-  AO_int_load_read(const volatile unsigned *addr)
-  {
-    unsigned result = AO_int_load(addr);
-
-    AO_compiler_barrier();
-    return result;
-  }
-# define AO_HAVE_int_load_read
-
+  /* int_load_read is defined in generalize-small.    */
 # define AO_int_load_acquire(addr) AO_int_load_read(addr)
 # define AO_HAVE_int_load_acquire
-#endif /* AO_HAVE_int_load */
+#endif
 /*
  * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
  *
  */
 
 #ifdef AO_HAVE_load
-  AO_INLINE AO_t
-  AO_load_read(const volatile AO_t *addr)
-  {
-    AO_t result = AO_load(addr);
-
-    AO_compiler_barrier();
-    return result;
-  }
-# define AO_HAVE_load_read
-
+  /* load_read is defined in generalize-small.    */
 # define AO_load_acquire(addr) AO_load_read(addr)
 # define AO_HAVE_load_acquire
-#endif /* AO_HAVE_load */
+#endif
 /*
  * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
  *
  */
 
 #ifdef AO_HAVE_double_load
-  AO_INLINE AO_double_t
-  AO_double_load_read(const volatile AO_double_t *addr)
-  {
-    AO_double_t result = AO_double_load(addr);
-
-    AO_compiler_barrier();
-    return result;
-  }
-# define AO_HAVE_double_load_read
-
+  /* double_load_read is defined in generalize-small.    */
 # define AO_double_load_acquire(addr) AO_double_load_read(addr)
 # define AO_HAVE_double_load_acquire
-#endif /* AO_HAVE_double_load */
+#endif
index bc828ce452c218f66a44e44d35d4ce6fd21d94f9..45c5c1d581c9afaeac92e5b4e738baf5277fdf84 100644 (file)
  */
 
 #ifdef AO_HAVE_XSIZE_load
-  AO_INLINE XCTYPE
-  AO_XSIZE_load_read(const volatile XCTYPE *addr)
-  {
-    XCTYPE result = AO_XSIZE_load(addr);
-
-    AO_compiler_barrier();
-    return result;
-  }
-# define AO_HAVE_XSIZE_load_read
-
+  /* XSIZE_load_read is defined in generalize-small.    */
 # define AO_XSIZE_load_acquire(addr) AO_XSIZE_load_read(addr)
 # define AO_HAVE_XSIZE_load_acquire
-#endif /* AO_HAVE_XSIZE_load */
+#endif
index df1986e4e469a90ec452a11e8bd7e3c56f8efdb7..a427f3bd852b001d5162904d57799ecc0272603e 100644 (file)
  * SOFTWARE.
  */
 
-#if defined(AO_HAVE_char_store)
-  AO_INLINE void
-  AO_char_store_write(volatile unsigned/**/char *addr, unsigned/**/char val)
-  {
-    AO_compiler_barrier();
-    AO_char_store(addr, val);
-  }
-# define AO_HAVE_char_store_write
-
-# define AO_char_store_release(addr, val) AO_char_store_write(addr, val)
+#ifdef AO_HAVE_char_store
+# define AO_char_store_release(addr, val) \
+                                (AO_nop_write(), AO_char_store(addr, val))
 # define AO_HAVE_char_store_release
-#endif /* AO_HAVE_char_store */
+#endif
 /*
  * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
  *
  * SOFTWARE.
  */
 
-#if defined(AO_HAVE_short_store)
-  AO_INLINE void
-  AO_short_store_write(volatile unsigned/**/short *addr, unsigned/**/short val)
-  {
-    AO_compiler_barrier();
-    AO_short_store(addr, val);
-  }
-# define AO_HAVE_short_store_write
-
-# define AO_short_store_release(addr, val) AO_short_store_write(addr, val)
+#ifdef AO_HAVE_short_store
+# define AO_short_store_release(addr, val) \
+                                (AO_nop_write(), AO_short_store(addr, val))
 # define AO_HAVE_short_store_release
-#endif /* AO_HAVE_short_store */
+#endif
 /*
  * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
  *
  * SOFTWARE.
  */
 
-#if defined(AO_HAVE_int_store)
-  AO_INLINE void
-  AO_int_store_write(volatile unsigned *addr, unsigned val)
-  {
-    AO_compiler_barrier();
-    AO_int_store(addr, val);
-  }
-# define AO_HAVE_int_store_write
-
-# define AO_int_store_release(addr, val) AO_int_store_write(addr, val)
+#ifdef AO_HAVE_int_store
+# define AO_int_store_release(addr, val) \
+                                (AO_nop_write(), AO_int_store(addr, val))
 # define AO_HAVE_int_store_release
-#endif /* AO_HAVE_int_store */
+#endif
 /*
  * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
  *
  * SOFTWARE.
  */
 
-#if defined(AO_HAVE_store)
-  AO_INLINE void
-  AO_store_write(volatile AO_t *addr, AO_t val)
-  {
-    AO_compiler_barrier();
-    AO_store(addr, val);
-  }
-# define AO_HAVE_store_write
-
-# define AO_store_release(addr, val) AO_store_write(addr, val)
+#ifdef AO_HAVE_store
+# define AO_store_release(addr, val) \
+                                (AO_nop_write(), AO_store(addr, val))
 # define AO_HAVE_store_release
-#endif /* AO_HAVE_store */
+#endif
 /*
  * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
  *
  * SOFTWARE.
  */
 
-#if defined(AO_HAVE_double_store)
-  AO_INLINE void
-  AO_double_store_write(volatile AO_double_t *addr, AO_double_t val)
-  {
-    AO_compiler_barrier();
-    AO_double_store(addr, val);
-  }
-# define AO_HAVE_double_store_write
-
-# define AO_double_store_release(addr, val) AO_double_store_write(addr, val)
+#ifdef AO_HAVE_double_store
+# define AO_double_store_release(addr, val) \
+                                (AO_nop_write(), AO_double_store(addr, val))
 # define AO_HAVE_double_store_release
-#endif /* AO_HAVE_double_store */
+#endif
index 0fa173c64550282e38b9335269aa02fad85b908d..c51abc5d2e40230286ce8e5a836b7998209b1bf3 100644 (file)
  * SOFTWARE.
  */
 
-#if defined(AO_HAVE_XSIZE_store)
-  AO_INLINE void
-  AO_XSIZE_store_write(volatile XCTYPE *addr, XCTYPE val)
-  {
-    AO_compiler_barrier();
-    AO_XSIZE_store(addr, val);
-  }
-# define AO_HAVE_XSIZE_store_write
-
-# define AO_XSIZE_store_release(addr, val) AO_XSIZE_store_write(addr, val)
+#ifdef AO_HAVE_XSIZE_store
+# define AO_XSIZE_store_release(addr, val) \
+                                (AO_nop_write(), AO_XSIZE_store(addr, val))
 # define AO_HAVE_XSIZE_store_release
-#endif /* AO_HAVE_XSIZE_store */
+#endif
index 9f4b50ef0cc1a6d6e87fcc2a3d91a3f58d3850b8..78f447175b016fddfed494e28a35460beb898af1 100644 (file)
@@ -29,8 +29,6 @@
 
 #include "read_ordered.h"
 
-#include "loadstore/ordered_stores_only.h"
-
 AO_INLINE void
 AO_nop_write(void)
 {
@@ -40,3 +38,5 @@ AO_nop_write(void)
   /* Unnecessary for cached accesses?                   */
 }
 #define AO_HAVE_nop_write
+
+#include "loadstore/ordered_stores_only.h"
index 9f36a69afdadc91b9414a8e6203d175725b9330c..420cd9705c83f2a77defd2c8896cdd9ad13795bd 100644 (file)
  * except apparently for some IDT WinChips, which we ignore.
  */
 
-#include "loadstore/ordered_loads_only.h"
-
 AO_INLINE void
 AO_nop_read(void)
 {
   AO_compiler_barrier();
 }
 #define AO_HAVE_nop_read
+
+#include "loadstore/ordered_loads_only.h"