aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2009-08-10 08:10:11 -0700
committerUlrich Drepper <drepper@redhat.com>2009-08-10 08:10:11 -0700
commitec4922395b05b428cb2cd17ea8118087e0ed6df4 (patch)
treebabd0b2fcd81ac7d50f554c5a46d3e4e4b3f54e9
parentefa0569d2bfdbb7367fce42b1c99821b85d2d3ba (diff)
downloadglibc-ec4922395b05b428cb2cd17ea8118087e0ed6df4.zip
glibc-ec4922395b05b428cb2cd17ea8118087e0ed6df4.tar.gz
glibc-ec4922395b05b428cb2cd17ea8118087e0ed6df4.tar.bz2
Fix check for PI mutex in x86-64 pthread_cond_signal
Register eax contains the syscall number, use a different one instead.
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S6
2 files changed, 9 insertions, 3 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 5be464e..092962f 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,9 @@
+2009-08-10 Andreas Schwab <schwab@redhat.com>
+
+ * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
+ (__pthread_cond_signal): Don't clobber register used for syscall
+ number.
+
2009-08-08 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
index 4d001ee..d1d83a8 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
@@ -64,9 +64,9 @@ __pthread_cond_signal:
/* Get the address of the mutex used. */
movq dep_mutex(%r8), %rcx
- movl MUTEX_KIND(%rcx), %eax
- andl $(ROBUST_BIT|PI_BIT), %eax
- cmpl $PI_BIT, %eax
+ movl MUTEX_KIND(%rcx), %r11d
+ andl $(ROBUST_BIT|PI_BIT), %r11d
+ cmpl $PI_BIT, %r11d
je 9f
#ifdef __ASSUME_PRIVATE_FUTEX