diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-10-12 23:05:45 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-10-12 23:05:45 +0000 |
commit | fa3cbe3d5d0c6e6b4de642de8693f9f58347d18c (patch) | |
tree | b9a8b9759bffa3a9514409d3c7ca3bf462b41241 /nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S | |
parent | cc0af5f451b47358315c9c180b9bf908aed61b89 (diff) | |
download | glibc-fa3cbe3d5d0c6e6b4de642de8693f9f58347d18c.tar.gz glibc-fa3cbe3d5d0c6e6b4de642de8693f9f58347d18c.tar.xz glibc-fa3cbe3d5d0c6e6b4de642de8693f9f58347d18c.zip |
Update.
2003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/sh/syscalls.list: Add waitpid.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S index 14008279e3..29e29b6f65 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S @@ -44,13 +44,13 @@ pthread_rwlock_timedwrlock: mov r5, r9 /* Get the lock. */ - mov #1, r3 + mov #0, r3 + mov #1, r4 #if MUTEX == 0 - XADD (r3, @r4, r2) + CMPXCHG (r3, @r8, r4, r2) #else - XADD (r3, @(MUTEX,r4), r2) + CMPXCHG (r3, @(MUTEX,r8), r4, r2) #endif - tst r2, r2 bf 1f 2: mov.l @(WRITER,r8), r0 @@ -126,14 +126,13 @@ pthread_rwlock_timedwrlock: 17: /* Reget the lock. */ - mov r8, r4 - mov #1, r5 + mov #0, r5 + mov #1, r4 #if MUTEX == 0 - XADD (r5, @r4, r2) + CMPXCHG (r5, @r8, r4, r2) #else - XADD (r5, @(MUTEX,r4), r2) + CMPXCHG (r5, @(MUTEX,r8), r4, r2) #endif - tst r2, r2 bf 12f 13: |