atomics: Add parameters to macros

Making these functional rather than object macros will
prevent later problems with complex macro expansion.

Reviewed-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
Richard Henderson 2016-10-24 09:49:25 -07:00
parent ede0cbeb78
commit d1a9f2d12f
1 changed files with 5 additions and 5 deletions

View File

@ -335,11 +335,11 @@
/* Provide shorter names for GCC atomic builtins. */ /* Provide shorter names for GCC atomic builtins. */
#define atomic_fetch_inc(ptr) __sync_fetch_and_add(ptr, 1) #define atomic_fetch_inc(ptr) __sync_fetch_and_add(ptr, 1)
#define atomic_fetch_dec(ptr) __sync_fetch_and_add(ptr, -1) #define atomic_fetch_dec(ptr) __sync_fetch_and_add(ptr, -1)
#define atomic_fetch_add __sync_fetch_and_add #define atomic_fetch_add(ptr, n) __sync_fetch_and_add(ptr, n)
#define atomic_fetch_sub __sync_fetch_and_sub #define atomic_fetch_sub(ptr, n) __sync_fetch_and_sub(ptr, n)
#define atomic_fetch_and __sync_fetch_and_and #define atomic_fetch_and(ptr, n) __sync_fetch_and_and(ptr, n)
#define atomic_fetch_or __sync_fetch_and_or #define atomic_fetch_or(ptr, n) __sync_fetch_and_or(ptr, n)
#define atomic_cmpxchg __sync_val_compare_and_swap #define atomic_cmpxchg(ptr, old, new) __sync_val_compare_and_swap(ptr, old, new)
/* And even shorter names that return void. */ /* And even shorter names that return void. */
#define atomic_inc(ptr) ((void) __sync_fetch_and_add(ptr, 1)) #define atomic_inc(ptr) ((void) __sync_fetch_and_add(ptr, 1))