* sysdeps/alpha/bits/atomic.h (__arch_compare_and_exchange_bool_*_int):

Invert the sense of the return value.
        (__arch_exchange_16_int): Fix paste-o.
        (__arch_exchange_{32,64}_int): Fix think-o.
This commit is contained in:
Richard Henderson 2003-06-30 23:21:38 +00:00
parent b8ba6f0633
commit b7978e8d84
1 changed files with 12 additions and 10 deletions

View File

@ -151,27 +151,27 @@ typedef uintmax_t uatomic_max_t;
: "memory"); \ : "memory"); \
}) })
/* For all "bool" routines, we return true if exchange succesful. */ /* For all "bool" routines, we return FALSE if exchange succesful. */
#define __arch_compare_and_exchange_bool_8_int(mem, new, old, mb1, mb2) \ #define __arch_compare_and_exchange_bool_8_int(mem, new, old, mb1, mb2) \
({ unsigned long __prev; int __cmp; \ ({ unsigned long __prev; int __cmp; \
__arch_compare_and_exchange_xxx_8_int(mem, new, old, mb1, mb2); \ __arch_compare_and_exchange_xxx_8_int(mem, new, old, mb1, mb2); \
__cmp; }) !__cmp; })
#define __arch_compare_and_exchange_bool_16_int(mem, new, old, mb1, mb2) \ #define __arch_compare_and_exchange_bool_16_int(mem, new, old, mb1, mb2) \
({ unsigned long __prev; int __cmp; \ ({ unsigned long __prev; int __cmp; \
__arch_compare_and_exchange_xxx_16_int(mem, new, old, mb1, mb2); \ __arch_compare_and_exchange_xxx_16_int(mem, new, old, mb1, mb2); \
__cmp; }) !__cmp; })
#define __arch_compare_and_exchange_bool_32_int(mem, new, old, mb1, mb2) \ #define __arch_compare_and_exchange_bool_32_int(mem, new, old, mb1, mb2) \
({ unsigned long __prev; int __cmp; \ ({ unsigned long __prev; int __cmp; \
__arch_compare_and_exchange_xxx_32_int(mem, new, old, mb1, mb2); \ __arch_compare_and_exchange_xxx_32_int(mem, new, old, mb1, mb2); \
__cmp; }) !__cmp; })
#define __arch_compare_and_exchange_bool_64_int(mem, new, old, mb1, mb2) \ #define __arch_compare_and_exchange_bool_64_int(mem, new, old, mb1, mb2) \
({ unsigned long __prev; int __cmp; \ ({ unsigned long __prev; int __cmp; \
__arch_compare_and_exchange_xxx_64_int(mem, new, old, mb1, mb2); \ __arch_compare_and_exchange_xxx_64_int(mem, new, old, mb1, mb2); \
__cmp; }) !__cmp; })
/* For all "val" routines, return the old value whether exchange /* For all "val" routines, return the old value whether exchange
successful or not. */ successful or not. */
@ -247,7 +247,7 @@ typedef uintmax_t uatomic_max_t;
unsigned long __ret, __tmp, __addr64, __sval; \ unsigned long __ret, __tmp, __addr64, __sval; \
__asm__ __volatile__ ( \ __asm__ __volatile__ ( \
mb1 \ mb1 \
" andnot %[__addr8],7,%[__addr64]\n" \ " andnot %[__addr16],7,%[__addr64]\n" \
" inswl %[__value],%[__addr16],%[__sval]\n" \ " inswl %[__value],%[__addr16],%[__sval]\n" \
"1: ldq_l %[__tmp],0(%[__addr64])\n" \ "1: ldq_l %[__tmp],0(%[__addr64])\n" \
" extwl %[__tmp],%[__addr16],%[__ret]\n" \ " extwl %[__tmp],%[__addr16],%[__ret]\n" \
@ -271,13 +271,14 @@ typedef uintmax_t uatomic_max_t;
__asm__ __volatile__ ( \ __asm__ __volatile__ ( \
mb1 \ mb1 \
"1: ldl_l %[__ret],%[__mem]\n" \ "1: ldl_l %[__ret],%[__mem]\n" \
" mov %[__ret],%[__tmp]\n" \ " mov %[__val],%[__tmp]\n" \
" stl_c %[__tmp],%[__mem]\n" \ " stl_c %[__tmp],%[__mem]\n" \
" beq %[__tmp],1b\n" \ " beq %[__tmp],1b\n" \
mb2 \ mb2 \
: [__ret] "=&r" (__ret), \ : [__ret] "=&r" (__ret), \
[__tmp] "=&r" (__tmp) \ [__tmp] "=&r" (__tmp) \
: [__mem] "m" (*(mem)) \ : [__mem] "m" (*(mem)), \
[__val] "Ir" (value) \
: "memory"); \ : "memory"); \
__ret; }) __ret; })
@ -287,13 +288,14 @@ typedef uintmax_t uatomic_max_t;
__asm__ __volatile__ ( \ __asm__ __volatile__ ( \
mb1 \ mb1 \
"1: ldq_l %[__ret],%[__mem]\n" \ "1: ldq_l %[__ret],%[__mem]\n" \
" mov %[__ret],%[__tmp]\n" \ " mov %[__val],%[__tmp]\n" \
" stq_c %[__tmp],%[__mem]\n" \ " stq_c %[__tmp],%[__mem]\n" \
" beq %[__tmp],1b\n" \ " beq %[__tmp],1b\n" \
mb2 \ mb2 \
: [__ret] "=&r" (__ret), \ : [__ret] "=&r" (__ret), \
[__tmp] "=&r" (__tmp) \ [__tmp] "=&r" (__tmp) \
: [__mem] "m" (*(mem)) \ : [__mem] "m" (*(mem)), \
[__val] "Ir" (value) \
: "memory"); \ : "memory"); \
__ret; }) __ret; })