summaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-16 08:09:26 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-16 08:09:26 +0000
commit51d0678c29b8e49e838c85d0ee7e98210a105695 (patch)
tree00c6476008122b40d8ec531ad305cf467ea48fc1 /nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
parentad032aee17008c7799fee97679a6d20efdcd7bee (diff)
Update.
2003-03-16 Ulrich Drepper <drepper@redhat.com> * tst-rwlock6.c: Add some more status output.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S11
1 files changed, 7 insertions, 4 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
index fd04e116c7..b522f3c07e 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
@@ -45,6 +45,7 @@
pthread_rwlock_timedrdlock:
pushq %r12
pushq %r13
+ pushq %r14
subq $16, %rsp
movq %rdi, %r12
@@ -76,14 +77,14 @@ pthread_rwlock_timedrdlock:
incl READERS_QUEUED(%r12)
je 4f
- movl READERS_WAKEUP(%r12), %edx
+ movl READERS_WAKEUP(%r12), %r14d
/* Unlock. */
LOCK
#if MUTEX == 0
- subl $1, (%r12)
+ decl (%r12)
#else
- subl $1, MUTEX(%r12)
+ decl MUTEX(%r12)
#endif
jne 10f
@@ -112,7 +113,8 @@ pthread_rwlock_timedrdlock:
movq %rdi, 8(%rsp)
xorq %rsi, %rsi /* movq $FUTEX_WAIT, %rsi */
- xorq %r10, %r10
+ movq %rsp, %r10
+ movl %r14d, %edx
leaq READERS_WAKEUP(%r12), %rdi
movq $SYS_futex, %rax
syscall
@@ -152,6 +154,7 @@ pthread_rwlock_timedrdlock:
7: movq %rdx, %rax
addq $16, %rsp
+ popq %r14
popq %r13
popq %r12
retq