diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-03-11 23:26:35 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-11 23:26:35 +0000 |
commit | 32a589b1ea1365c8651b0692d0350403fde7b6ff (patch) | |
tree | 77b94275bcf321370496c19d29267e8c66a8606d /nptl/sysdeps/unix/sysv/linux/x86_64 | |
parent | 3e976b962a84255b70bcf6d9751a9a35d3e987ab (diff) | |
download | glibc-32a589b1ea1365c8651b0692d0350403fde7b6ff.tar glibc-32a589b1ea1365c8651b0692d0350403fde7b6ff.tar.gz glibc-32a589b1ea1365c8651b0692d0350403fde7b6ff.tar.bz2 glibc-32a589b1ea1365c8651b0692d0350403fde7b6ff.zip |
Update.
* cancellation.c (__pthread_enable_asynccancel_2): New function.
* pthreadP.h: Declare __pthread_enable_asynccancel_2.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
(__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
instead of __pthread_enable_asynccancel.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
(__pthread_cond_wait): Likewise.
* sysdeps/pthread/pthread_cond_timedwait.c
(__pthread_cond_timedwait): Likewise.
* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S | 2 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S | 2 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S | 5 |
3 files changed, 5 insertions, 4 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S index e7e1707a48..1585921ff0 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S @@ -49,7 +49,7 @@ __lll_lock_wait: xorq %r10, %r10 /* No timeout. */ 1: - leal -1(%esi), %edx /* account for the preceeded xadd. */ + leaq -1(%rsi), %rdx /* account for the preceeded xadd. */ movq %r10, %rsi /* movl $FUTEX_WAIT, %ecx */ movq $SYS_futex, %rax syscall diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S index a494e0efaa..55e4ec4682 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S @@ -50,7 +50,7 @@ __lll_mutex_lock_wait: xorq %r10, %r10 /* No timeout. */ 1: - leal 1(%esi), %edx /* account for the preceeded xadd. */ + leaq 1(%rsi), %rdx /* account for the preceeded xadd. */ movq %r10, %rsi /* movl $FUTEX_WAIT, %ecx */ movq $SYS_futex, %rax syscall 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 c15566fdf0..193cc081e1 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 @@ -153,9 +153,10 @@ __pthread_cond_wait: #endif jne 3f -4: callq __pthread_enable_asynccancel - movq %rax, (%rsp) +4: movq %rsp, %edi + callq __pthread_enable_asynccancel_2 + movq 8(%rsp), %rdi xorq %r10, %r10 movq %r12, %rdx addq $wakeup_seq-cond_lock, %rdi |