mirror of git://sourceware.org/git/glibc.git
x86: Define atomic_compare_and_exchange_{val, bool}_acq using __atomic_compare_exchange_n
No functional changes. Signed-off-by: Uros Bizjak <ubizjak@gmail.com> Cc: Florian Weimer <fweimer@redhat.com> Cc: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org> Cc: Wilco Dijkstra <Wilco.Dijkstra@arm.com> Cc: Collin Funk <collin.funk1@gmail.com> Cc: H.J.Lu <hjl.tools@gmail.com> Cc: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
935ee691bc
commit
b8253693b7
|
|
@ -33,10 +33,20 @@
|
|||
|
||||
#define ATOMIC_EXCHANGE_USES_CAS 0
|
||||
|
||||
#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
|
||||
__sync_val_compare_and_swap (mem, oldval, newval)
|
||||
#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
|
||||
(! __sync_bool_compare_and_swap (mem, oldval, newval))
|
||||
#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
|
||||
({ \
|
||||
typeof (*mem) __oldval = (oldval); \
|
||||
__atomic_compare_exchange_n (mem, (void *) &__oldval, newval, 0, \
|
||||
__ATOMIC_ACQUIRE, __ATOMIC_RELAXED); \
|
||||
__oldval; \
|
||||
})
|
||||
|
||||
#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
|
||||
({ \
|
||||
typeof (*mem) __oldval = (oldval); \
|
||||
!__atomic_compare_exchange_n (mem, (void *) &__oldval, newval, 0, \
|
||||
__ATOMIC_ACQUIRE, __ATOMIC_RELAXED); \
|
||||
})
|
||||
|
||||
#define atomic_exchange_acq(mem, newvalue) \
|
||||
__atomic_exchange_n (mem, newvalue, __ATOMIC_ACQUIRE)
|
||||
|
|
|
|||
Loading…
Reference in New Issue