*/
#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
* 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