Minimal unwind section size reduction.

This commit is contained in:
Ulrich Drepper 2009-11-17 22:55:55 -08:00
parent 424bea69fb
commit 62616842ec
2 changed files with 17 additions and 17 deletions

View File

@ -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.

View File

@ -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)