summaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-07-20 08:39:47 -0700
committerUlrich Drepper <drepper@redhat.com>2009-07-20 08:39:47 -0700
commitc3db953c165baa444d01ee6c04ef0c51eba42522 (patch)
tree6944ca213a06f764019a4b1f7142b486d584b67f /nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
parent42e69bcf1137fccfd7a95645a9d316c6490b9ff9 (diff)
Minor optimizations of last x86-64 condvar changes.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S8
1 files changed, 3 insertions, 5 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
index f81466e1a5..e12790cb96 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
@@ -160,16 +160,14 @@ __pthread_cond_timedwait:
movq 8(%rsp), %rdi
movq %r13, %r10
+ movl $FUTEX_WAIT_BITSET, %esi
cmpq $-1, dep_mutex(%rdi)
- movl $FUTEX_WAIT_BITSET, %eax
- movl $(FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG), %esi
- cmove %eax, %esi
je 60f
movq dep_mutex(%rdi), %r8
/* Requeue to a PI mutex if the PI bit is set. */
testl $PI_BIT, MUTEX_KIND(%r8)
- je 60f
+ je 61f
movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
xorl %eax, %eax
@@ -191,10 +189,10 @@ __pthread_cond_timedwait:
cmpq $-4095, %rax
jnae 62f
- movl $(FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG), %esi
subq $cond_futex, %rdi
#endif
+61: movl $(FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG), %esi
60: xorl %r15d, %r15d
xorl %eax, %eax
/* The following only works like this because we only support