summaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-29 01:24:20 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-29 01:24:20 +0000
commitdd731d53dcdbb24cd2a3f299a2ba4362505d3f55 (patch)
tree9db2cc09616d8073cc8c2888036e01cc60970d5b /nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
parent10e717a20778341a2e8c7d11e3cb1cc90e943602 (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.S9
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. */