+2004-05-16 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
+ unwind info.
+
+ * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
+ Parametrize frame size. Correct some unwind info.
+ * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
+
2004-05-04 Jakub Jelinek <jakub@redhat.com>
* tst-stack3.c: Note testing functionality beyond POSIX.
addl $1, total_seq(%ebx)
adcl $0, total_seq+4(%ebx)
- subl $20, %esp
+#define FRAME_SIZE 20
+ subl $FRAME_SIZE, %esp
.Lsubl:
/* Get and store current wakeup_seq value. */
jne 10f
/* Remove cancellation handler. */
-11: movl 44(%esp), %eax
+11: movl 24+FRAME_SIZE(%esp), %eax
call __pthread_mutex_cond_lock
- addl $20, %esp
+ addl $FRAME_SIZE, %esp
.Laddl:
/* We return the result of the mutex_lock operation if it failed. */
call __lll_mutex_lock_wait
jmp 2b
- /* Unlock in loop requires waekup. */
+ /* Unlock in loop requires wakeup. */
3:
.LSbl2:
#if cond_lock == 0
call __lll_mutex_lock_wait
jmp 6b
- /* Unlock after loop requires waekup. */
+ /* Unlock after loop requires wakeup. */
10:
#if cond_lock == 0
movl %ebx, %eax
.type __condvar_tw_cleanup3, @function
__condvar_tw_cleanup3:
- movl 40(%esp), %ebx
+ movl 20+FRAME_SIZE(%esp), %ebx
.LSbl5:
jmp __condvar_tw_cleanup
.size __condvar_tw_cleanup3, .-__condvar_tw_cleanup3
movl $0x7fffffff, %edx
ENTER_KERNEL
- movl 44(%esp), %eax
+ movl 24+FRAME_SIZE(%esp), %eax
call __pthread_mutex_cond_lock
movl %esi, (%esp)
.byte 2 # DW_CFA_advance_loc1
.byte .Lsubl-.Lpush_ebx
.byte 14 # DW_CFA_def_cfa_offset
- .uleb128 40
+ .uleb128 20+FRAME_SIZE
.byte 3 # DW_CFA_advance_loc2
.2byte .Laddl-.Lsubl
.byte 14 # DW_CFA_def_cfa_offset
.uleb128 20
.byte 0x40+.LSbl2-.LSbl1 # DW_CFA_advance_loc+N
.byte 14 # DW_CFA_def_cfa_offset
- .uleb128 64
+ .uleb128 20+FRAME_SIZE
.byte 0x85 # DW_CFA_offset %ebp
.uleb128 2
.byte 0x87 # DW_CFA_offset %edi
.uleb128 5
.byte 0x40+.LSbl3-.LSbl2 # DW_CFA_advance_loc+N
.byte 14 # DW_CFA_def_cfa_offset
- .uleb128 24
+ .uleb128 20
#if defined __NR_clock_gettime && !defined __ASSUME_POSIX_TIMERS
.byte 0x40+.LSbl4-.LSbl3 # DW_CFA_advance_loc+N
- .byte 14 # DW_CFA_def_cfa_offset
- .uleb128 64
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl5-.LSbl4
#else
.byte 4 # DW_CFA_advance_loc4
.long .LSbl5-.LSbl3
#endif
.byte 14 # DW_CFA_def_cfa_offset
- .uleb128 40
+ .uleb128 20+FRAME_SIZE
.align 4
.LENDFDE:
addl $1, total_seq(%ebx)
adcl $0, total_seq+4(%ebx)
- subl $12, %esp
+#define FRAME_SIZE 12
+ subl $FRAME_SIZE, %esp
.Lsubl:
/* Get and store current wakeup_seq value. */
#endif
jne 10f
-11: movl 32(%esp), %eax
+11: movl 20+FRAME_SIZE(%esp), %eax
call __pthread_mutex_cond_lock
- addl $12, %esp
+ addl $FRAME_SIZE, %esp
.Laddl:
14: popl %ebx
movl $0x7fffffff, %edx
ENTER_KERNEL
- movl 32(%esp), %eax
+ movl 20+FRAME_SIZE(%esp), %eax
call __pthread_mutex_cond_lock
movl %esi, (%esp)
.byte 2 # DW_CFA_advance_loc1
.byte .Lsubl-.Lpush_ebx
.byte 14 # DW_CFA_def_cfa_offset
- .uleb128 28
+ .uleb128 16+FRAME_SIZE
.byte 2 # DW_CFA_advance_loc1
.byte .Laddl-.Lsubl
.byte 14 # DW_CFA_def_cfa_offset
.uleb128 4
.byte 0x40+.LSbl2-.LSbl1 # DW_CFA_advance_loc+N
.byte 14 # DW_CFA_def_cfa_offset
- .uleb128 28
+ .uleb128 16+FRAME_SIZE
.byte 0x40+.LSbl3-.LSbl2 # DW_CFA_advance_loc+N
.byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
.byte 0x40+.LSbl4-.LSbl3 # DW_CFA_advance_loc+N
.byte 14 # DW_CFA_def_cfa_offset
- .uleb128 28
+ .uleb128 16+FRAME_SIZE
.align 4
.LENDFDE:
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
popl %esi
cfi_adjust_cfa_offset(-4)
cfi_restore(6)
- cfi_adjust_cfa_offset(-4)
- cfi_restore(6)
ret
cfi_adjust_cfa_offset(24)
cfi_offset(6, -8) /* %esi */
- cfi_offset(7, -12) /* %edi */
+ cfi_offset(7, -12) /* %edi */
cfi_offset(3, -16) /* %ebx */
3: negl %esi
6: