diff options
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.S | 10 |
1 files changed, 5 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 c8fd4ea129..b64953ba83 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 @@ -76,6 +76,8 @@ __pthread_cond_timedwait: movq %rsi, 16(%rsp) movq %rdx, %r13 + movq %rsi, dep_mutex(%rdi) + /* Get internal lock. */ movl $1, %esi LOCK @@ -88,9 +90,7 @@ __pthread_cond_timedwait: jne 1f /* Unlock the mutex. */ -2: movq %rdi, %rax - movq 16(%rsp), %rdi - movq %rdi, dep_mutex(%rax) +2: movq 16(%rsp), %rdi callq __pthread_mutex_unlock_internal testl %eax, %eax @@ -124,7 +124,7 @@ __pthread_cond_timedwait: jne 3f 4: callq __pthread_enable_asynccancel - movq %rax, (%rsp) + movl %eax, (%rsp) /* Get the current time. */ #ifdef __NR_clock_gettime @@ -181,7 +181,7 @@ __pthread_cond_timedwait: syscall movq %rax, %r14 - movq (%rsp), %rdi + movl (%rsp), %edi callq __pthread_disable_asynccancel /* Lock. */ |