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-03-12 05:45:00 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-12 05:45:00 +0000
commit5a03acfe371193faace69e5517864ba3b9fc2b9f (patch)
tree7d92152ecdd4461da2692f4fa399609341eac44a /nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
parentb874af999547ee4e7688fc07710786131eef7d1b (diff)
downloadglibc-5a03acfe371193faace69e5517864ba3b9fc2b9f.tar.gz
Update.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax. * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise. * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax. * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack): Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads. * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB] (create_thread): Likewise. Define __pthread_multiple_threads and __libc_multiple_threads_ptr. * init.c (__pthread_initialize_minimal_internal): Initialize __libc_multiple_threads_ptr if necessary. * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare __pthread_multiple_threads and __libc_multiple_threads_ptr. * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define __libc_multiple_threads. (__libc_pthread_init): Return pointer to __libc_pthread_init if necessary. * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant. (THREAD_SETMEM_NC): Likewise. * sysdeps/x86_64/pthread_spin_trylock.c: Removed. * sysdeps/x86_64/pthread_spin_trylock.S: New file. * sysdeps/x86_64/pthread_spin_unlock.c: Removed. * sysdeps/x86_64/pthread_spin_unlock.S: New file. * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock): Eliminate one entire instruction.
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.S10
1 files changed, 5 insertions, 5 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 193cc081e1..831d4f9c90 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
@@ -42,7 +42,7 @@
__condvar_cleanup:
/* Get internal lock. */
movq %rdi, %r8
- movl 8(%rdi), %rdi
+ movq 8(%rdi), %rdi
movl $1, %esi
LOCK
#if cond_lock == 0
@@ -89,7 +89,7 @@ __condvar_cleanup:
2: testq $2, (%r8)
jne 3f
- movq 16(%r8), %edi
+ movq 16(%r8), %rdi
callq __pthread_mutex_lock_internal
3: retq
@@ -101,7 +101,7 @@ __condvar_cleanup:
.type __pthread_cond_wait, @function
.align 16
__pthread_cond_wait:
- pushq %12
+ pushq %r12
subq $64, %rsp
/* Prepare structure passed to cancellation handler. */
@@ -131,7 +131,7 @@ __pthread_cond_wait:
/* Install cancellation handler. */
#ifdef PIC
- leaq __condvar_cleanup@GOTOFF(%rip), %rsi
+ leaq __condvar_cleanup(%rip), %rsi
#else
leaq __condvar_cleanup, %rsi
#endif
@@ -153,7 +153,7 @@ __pthread_cond_wait:
#endif
jne 3f
-4: movq %rsp, %edi
+4: movq %rsp, %rdi
callq __pthread_enable_asynccancel_2
movq 8(%rsp), %rdi