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 | |
parent | 424bea69fb3bcad456162da4a87ff6b558baaa8a (diff) | |
download | glibc-62616842ec4bec156ae8d75a345f7a553cb3c277.zip glibc-62616842ec4bec156ae8d75a345f7a553cb3c277.tar.gz glibc-62616842ec4bec156ae8d75a345f7a553cb3c277.tar.bz2 |
Minimal unwind section size reduction.
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 3 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S | 31 |
2 files changed, 17 insertions, 17 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index ae345a3..4f04c97 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,8 @@ 2009-11-17 Ulrich Drepper <drepper@redhat.com> + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Minimally + reduce size of unwind info. + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Convert to use cfi directives. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise. 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 86bdac1..be14fc8 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) |