diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-11-17 22:55:55 -0800 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-11-17 23:13:08 -0800 |
commit | 62616842ec4bec156ae8d75a345f7a553cb3c277 (patch) | |
tree | 8142eaa1d91256874c83e24401c17dbfbcef70d9 /nptl/sysdeps | |
parent | 424bea69fb3bcad456162da4a87ff6b558baaa8a (diff) | |
download | glibc-62616842ec4bec156ae8d75a345f7a553cb3c277.tar.gz glibc-62616842ec4bec156ae8d75a345f7a553cb3c277.tar.xz glibc-62616842ec4bec156ae8d75a345f7a553cb3c277.zip |
Minimal unwind section size reduction.
Diffstat (limited to 'nptl/sysdeps')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S | 31 |
1 files changed, 14 insertions, 17 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 86bdac1b1b..be14fc897e 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 @@ -69,6 +69,7 @@ __pthread_cond_timedwait: #endif subq $FRAME_SIZE, %rsp cfi_adjust_cfa_offset(FRAME_SIZE) + cfi_remember_state cmpq $1000000000, 8(%rdx) movl $EINVAL, %eax @@ -77,19 +78,19 @@ __pthread_cond_timedwait: /* Stack frame: rsp + 48 - +--------------------------+ + +--------------------------+ rsp + 32 | timeout value | - +--------------------------+ + +--------------------------+ rsp + 24 | old wake_seq value | - +--------------------------+ + +--------------------------+ rsp + 16 | mutex pointer | - +--------------------------+ + +--------------------------+ rsp + 8 | condvar pointer | - +--------------------------+ + +--------------------------+ rsp + 4 | old broadcast_seq value | - +--------------------------+ + +--------------------------+ rsp + 0 | old cancellation mode | - +--------------------------+ + +--------------------------+ */ cmpq $-1, dep_mutex(%rdi) @@ -317,11 +318,7 @@ __pthread_cond_timedwait: retq - cfi_adjust_cfa_offset(4 * 8 + FRAME_SIZE) - cfi_rel_offset(%r12, FRAME_SIZE + 24) - cfi_rel_offset(%r13, FRAME_SIZE + 16) - cfi_rel_offset(%r14, FRAME_SIZE + 8) - cfi_rel_offset(%r15, FRAME_SIZE) + cfi_restore_state 64: callq __pthread_mutex_cond_lock_adjust movq %r14, %rax @@ -650,15 +647,15 @@ __condvar_cleanup2: rsp + 48 | %r14 | +--------------------------+ rsp + 24 | unused | - +--------------------------+ + +--------------------------+ rsp + 16 | mutex pointer | - +--------------------------+ + +--------------------------+ rsp + 8 | condvar pointer | - +--------------------------+ + +--------------------------+ rsp + 4 | old broadcast_seq value | - +--------------------------+ + +--------------------------+ rsp + 0 | old cancellation mode | - +--------------------------+ + +--------------------------+ */ movq %rax, 24(%rsp) |