diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-03-15 21:46:30 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-15 21:46:30 +0000 |
commit | 7abed17041f92492ceadecf04d5d31f395f84ae1 (patch) | |
tree | d70f84726f01a681161c0c35842b63627c22b6b3 /nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S | |
parent | 39d8c1a2f43ecac503ed39f6df16c93d9655c6dd (diff) |
More random patches.
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.S | 21 |
1 files changed, 18 insertions, 3 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 3bebbd3e49..4a0e3cce55 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 @@ -61,9 +61,9 @@ __condvar_cleanup: subq $cond_lock, %rdi #endif -1: addq $1, wakeup_seq(%rdi) +1: incq wakeup_seq(%rdi) - addq $1, woken_seq(%rdi) + incq woken_seq(%rdi) /* Wake up all waiters to make sure no signal gets lost. */ addq $wakeup_seq, %rdi @@ -103,6 +103,21 @@ __condvar_cleanup: __pthread_cond_wait: pushq %r12 subq $64, %rsp + /* Stack frame: + + rsp + 64 + +--------------------------+ + rsp + 32 | cleanup buffer | + +--------------------------+ + rsp + 24 | old wake_seq value | + +--------------------------+ + rsp + 16 | mutex pointer | + +--------------------------+ + rsp + 8 | condvar pointer | + +--------------------------+ + rsp + 0 | old cancellation mode | + +--------------------------+ + */ /* Prepare structure passed to cancellation handler. */ movq %rdi, 8(%rsp) @@ -127,7 +142,7 @@ __pthread_cond_wait: jne 12f movq 8(%rsp), %rdi - addq $1, total_seq(%rdi) + incq total_seq(%rdi) /* Install cancellation handler. */ #ifdef PIC |