mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
(__arch_compare_and_exchange_val_*_acq): Remove setne instruction.
This commit is contained in:
parent
9f07eae298
commit
b97ccf3d1e
@ -57,28 +57,28 @@ typedef uintmax_t uatomic_max_t;
|
||||
|
||||
#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
|
||||
({ __typeof (*mem) ret; \
|
||||
__asm __volatile (LOCK "cmpxchgb %b2, %1; setne %0" \
|
||||
__asm __volatile (LOCK "cmpxchgb %b2, %1" \
|
||||
: "=a" (ret), "=m" (*mem) \
|
||||
: "q" (newval), "1" (*mem), "0" (oldval)); \
|
||||
ret; })
|
||||
|
||||
#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
|
||||
({ __typeof (*mem) ret; \
|
||||
__asm __volatile (LOCK "cmpxchgw %w2, %1; setne %0" \
|
||||
__asm __volatile (LOCK "cmpxchgw %w2, %1" \
|
||||
: "=a" (ret), "=m" (*mem) \
|
||||
: "r" (newval), "1" (*mem), "0" (oldval)); \
|
||||
ret; })
|
||||
|
||||
#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
|
||||
({ __typeof (*mem) ret; \
|
||||
__asm __volatile (LOCK "cmpxchgl %2, %1; setne %0" \
|
||||
__asm __volatile (LOCK "cmpxchgl %2, %1" \
|
||||
: "=a" (ret), "=m" (*mem) \
|
||||
: "r" (newval), "1" (*mem), "0" (oldval)); \
|
||||
ret; })
|
||||
|
||||
#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
|
||||
({ __typeof (*mem) ret; \
|
||||
__asm __volatile (LOCK "cmpxchgq %q2, %1; setne %0" \
|
||||
__asm __volatile (LOCK "cmpxchgq %q2, %1" \
|
||||
: "=a" (ret), "=m" (*mem) \
|
||||
: "r" (newval), "1" (*mem), "0" (oldval)); \
|
||||
ret; })
|
||||
|
Loading…
Reference in New Issue
Block a user