summaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-05-26 02:47:39 +0000
committerUlrich Drepper <drepper@redhat.com>2003-05-26 02:47:39 +0000
commit69431c9a21f7393f34330a27df1630520930789e (patch)
tree1fbd3f1520502c833e676afa3fb5410f92654f85 /nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
parent6a998b09ec734d8dd40e690244122a43bf9d7a16 (diff)
Update.
2003-05-25 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_FUTEX_REQUEUE for >= 2.5.70. * math/test-fenv.c (feexcp_nomask_test): Fix comment.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S16
1 files changed, 7 insertions, 9 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
index 6cad2812f0..5189972fc7 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
@@ -84,12 +84,8 @@ __condvar_cleanup:
movq $SYS_futex, %rax
syscall
- /* Lock the mutex unless asynchronous cancellation is in effect. */
- testq $2, (%r8)
- jne 3f
-
movq 16(%r8), %rdi
- callq __pthread_mutex_lock_internal
+ callq __pthread_mutex_cond_lock
3: retq
.size __condvar_cleanup, .-__condvar_cleanup
@@ -137,7 +133,9 @@ __pthread_cond_wait:
jne 1f
/* Unlock the mutex. */
-2: movq 16(%rsp), %rdi
+2: movq %rdi, %rax
+ movq 16(%rsp), %rdi
+ movq %rdi, dep_mutex(%rax)
callq __pthread_mutex_unlock_internal
testl %eax, %eax
@@ -170,8 +168,8 @@ __pthread_cond_wait:
#endif
jne 3f
-4: movq %rsp, %rdi
- callq __pthread_enable_asynccancel_2
+4: callq __pthread_enable_asynccancel
+ movq %rax, (%rsp)
movq 8(%rsp), %rdi
xorq %r10, %r10
@@ -221,7 +219,7 @@ __pthread_cond_wait:
movq %rdx, %fs:CLEANUP
movq 16(%rsp), %rdi
- callq __pthread_mutex_lock_internal
+ callq __pthread_mutex_cond_lock
14: addq $64, %rsp
.Laddq: