diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-03-29 01:24:20 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-29 01:24:20 +0000 |
commit | dd731d53dcdbb24cd2a3f299a2ba4362505d3f55 (patch) | |
tree | 9db2cc09616d8073cc8c2888036e01cc60970d5b /nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S | |
parent | 10e717a20778341a2e8c7d11e3cb1cc90e943602 (diff) |
Update.
2003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/sh/bits/atomic.h (__arch_compare_and_exchange_val_8_acq):
Return old value. Make asm output reg constraint earlyclobber.
Renamed from...
(__arch_compare_and_exchange_8_acq): ... this.
(__arch_compare_and_exchange_val_16_acq):
Return old value. Make asm output reg constraint earlyclobber.
Renamed from...
(__arch_compare_and_exchange_16_acq): ... this.
(__arch_compare_and_exchange_val_32_acq):
Return old value. Make asm output reg constraint earlyclobber.
Renamed from...
(__arch_compare_and_exchange_32_acq): ... this.
(__arch_compare_and_exchange_val_64_acq):
Renamed from...
(__arch_compare_and_exchange_64_acq): ... this.
(atomic_exchange_and_add): Use local variables and
__arch_compare_and_exchange_val_64_acq.
(atomic_add): Likewise.
(atomic_add_negative, atomic_add_zero): Use local variables.
* Makefile: Remove libmd5crypt goal.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S index 1aa1c72bbf..27aecad314 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S @@ -75,7 +75,8 @@ __pthread_rwlock_rdlock: mov r8, r4 add #READERS_WAKEUP, r4 mov #FUTEX_WAIT, r5 - mov #0, r6 + mov.l @(READERS_WAKEUP,r8), r6 + mov #0, r7 mov #SYS_futex, r3 extu.b r3, r3 trapa #0x14 @@ -93,11 +94,8 @@ __pthread_rwlock_rdlock: 13: mov.l @(READERS_QUEUED,r8), r0 add #-1, r0 - mov.l r0, @(READERS_QUEUED,r8) - tst r0, r0 - bf 2b bra 2b - mov.l r0, @(READERS_WAKEUP,r8) + mov.l r0, @(READERS_QUEUED,r8) 5: mov #0, r3 @@ -138,7 +136,6 @@ __pthread_rwlock_rdlock: stc gbr, r1 mov.w .Ltcboff,r2 sub r2,r1 - mov.l @(8,r1),r1 cmp/eq r1, r0 bf 3b /* Deadlock detected. */ |