diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 6 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S | 2 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S | 19 |
3 files changed, 17 insertions, 10 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 9f8cbae823..5dcea7be75 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2003-04-14 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Don't + overflow CFA advance instructions. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise. + 2003-04-14 Jakub Jelinek <jakub@redhat.com> * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX. diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S index 1ac6c1a7d6..e5614711d9 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S @@ -376,7 +376,7 @@ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, .byte 0x40+.Lsubl-.Lpush4 # DW_CFA_advance_loc+N .byte 14 # DW_CFA_def_cfa_offset .uleb128 52 - .byte 2 # DW_CFA_advance_loc1 + .byte 3 # DW_CFA_advance_loc2 .byte .Laddl-.Lsubl .byte 14 # DW_CFA_def_cfa_offset .uleb128 16 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 a099b2b8f3..151395048a 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 @@ -370,40 +370,41 @@ versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait, #ifdef SHARED .uleb128 0 # No augmentation data. #endif - .byte 0x40+.Lpush_r12-.LSTARTCODE # DW_CFA_advance_loc4 + .byte 0x40+.Lpush_r12-.LSTARTCODE # DW_CFA_advance_loc+N .byte 14 # DW_CFA_def_cfa_offset .uleb128 16 .byte 0x8c # DW_CFA_offset %r12 .uleb128 2 - .byte 0x40+.Lpush_r13-.Lpush_r12 # DW_CFA_advance_loc4 + .byte 0x40+.Lpush_r13-.Lpush_r12 # DW_CFA_advance_loc+N .byte 14 # DW_CFA_def_cfa_offset .uleb128 24 .byte 0x8d # DW_CFA_offset %r13 .uleb128 3 - .byte 0x40+.Lpush_r14-.Lpush_r13 # DW_CFA_advance_loc4 + .byte 0x40+.Lpush_r14-.Lpush_r13 # DW_CFA_advance_loc+N .byte 14 # DW_CFA_def_cfa_offset .uleb128 32 .byte 0x84 # DW_CFA_offset %r14 .uleb128 4 - .byte 0x40+.Lsubq-.Lpush_r14 # DW_CFA_advance_loc4 + .byte 0x40+.Lsubq-.Lpush_r14 # DW_CFA_advance_loc+N .byte 14 # DW_CFA_def_cfa_offset .uleb128 112 - .byte 0x40+.Laddq-.Lsubq # DW_CFA_advance_loc4 + .byte 3 # DW_CFA_advance_loc2 + .2byte .Laddq-.Lsubq .byte 14 # DW_CFA_def_cfa_offset .uleb128 32 - .byte 0x40+.Lpop_r14-.Laddq # DW_CFA_advance_loc4 + .byte 0x40+.Lpop_r14-.Laddq # DW_CFA_advance_loc+N .byte 14 # DW_CFA_def_cfa_offset .uleb128 24 .byte 0xce # DW_CFA_restore %r14 - .byte 0x40+.Lpop_r13-.Lpop_r14 # DW_CFA_advance_loc4 + .byte 0x40+.Lpop_r13-.Lpop_r14 # DW_CFA_advance_loc+N .byte 14 # DW_CFA_def_cfa_offset .uleb128 16 .byte 0xcd # DW_CFA_restore %r13 - .byte 0x40+.Lpop_r12-.Lpop_r13 # DW_CFA_advance_loc4 + .byte 0x40+.Lpop_r12-.Lpop_r13 # DW_CFA_advance_loc+N .byte 14 # DW_CFA_def_cfa_offset .uleb128 8 .byte 0xcc # DW_CFA_restore %r12 - .byte 0x40+.LSbl1-.Lpop_r12 # DW_CFA_advance_loc4 + .byte 0x40+.LSbl1-.Lpop_r12 # DW_CFA_advance_loc+N .byte 14 # DW_CFA_def_cfa_offset .uleb128 112 .byte 0x8c # DW_CFA_offset %r12 |