diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-05-26 02:47:39 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-05-26 02:47:39 +0000 |
commit | 69431c9a21f7393f34330a27df1630520930789e (patch) | |
tree | 1fbd3f1520502c833e676afa3fb5410f92654f85 /nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S | |
parent | 6a998b09ec734d8dd40e690244122a43bf9d7a16 (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.S | 16 |
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: |