mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 19:53:32 +08:00
Use CFI statements instead of hand-coding .eh_frame.
This commit is contained in:
parent
b9f1922d7e
commit
e1b4354e66
@ -1,3 +1,12 @@
|
||||
2012-05-09 Chung-Lin Tang <cltang@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
|
||||
(__pthread_cond_timedwait): Use CFI directives.
|
||||
* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
|
||||
(__pthread_cond_wait): Likewise.
|
||||
* sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Likewise.
|
||||
* sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
|
||||
|
||||
2012-05-03 David S. Miller <davem@davemloft.net>
|
||||
|
||||
* sysdeps/sparc/sparc64/pthread_spin_unlock.S: Fix thinko, we
|
||||
|
@ -31,24 +31,41 @@
|
||||
.globl __pthread_cond_timedwait
|
||||
.type __pthread_cond_timedwait, @function
|
||||
.align 5
|
||||
cfi_startproc
|
||||
__pthread_cond_timedwait:
|
||||
.LSTARTCODE:
|
||||
#ifdef SHARED
|
||||
cfi_personality(DW_EH_PE_pcrel | DW_EH_PE_sdata4 | DW_EH_PE_indirect,
|
||||
DW.ref.__gcc_personality_v0)
|
||||
cfi_lsda(DW_EH_PE_pcrel | DW_EH_PE_sdata4, .LexceptSTART)
|
||||
#else
|
||||
cfi_personality(DW_EH_PE_absptr, __gcc_personality_v0)
|
||||
cfi_lsda(DW_EH_PE_absptr, .LexceptSTART)
|
||||
#endif
|
||||
mov.l r8, @-r15
|
||||
.Lpush_r8:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r8, 0)
|
||||
mov.l r9, @-r15
|
||||
.Lpush_r9:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r9, 0)
|
||||
mov.l r10, @-r15
|
||||
.Lpush_r10:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r10, 0)
|
||||
mov.l r11, @-r15
|
||||
.Lpush_r11:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r11, 0)
|
||||
mov.l r12, @-r15
|
||||
.Lpush_r12:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r12, 0)
|
||||
mov.l r13, @-r15
|
||||
.Lpush_r13:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r13, 0)
|
||||
sts.l pr, @-r15
|
||||
.Lpush_pr:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (pr, 0)
|
||||
add #-64, r15
|
||||
.Lalloc:
|
||||
cfi_adjust_cfa_offset (64)
|
||||
|
||||
mov r4, r8
|
||||
mov r5, r9
|
||||
mov r6, r13
|
||||
@ -724,15 +741,15 @@ __condvar_tw_cleanup:
|
||||
.long _Unwind_Resume
|
||||
#endif
|
||||
.LENDCODE:
|
||||
cfi_endproc
|
||||
.size __condvar_tw_cleanup, .-__condvar_tw_cleanup
|
||||
|
||||
|
||||
.section .gcc_except_table,"a",@progbits
|
||||
.LexceptSTART:
|
||||
.byte 0xff ! @LPStart format (omit)
|
||||
.byte 0xff ! @TType format (omit)
|
||||
.byte 0x0b ! call-site format
|
||||
! DW_EH_PE_sdata4
|
||||
.byte DW_EH_PE_omit ! @LPStart format (omit)
|
||||
.byte DW_EH_PE_omit ! @TType format (omit)
|
||||
.byte DW_EH_PE_sdata4 ! call-site format
|
||||
.uleb128 .Lcstend-.Lcstbegin
|
||||
.Lcstbegin:
|
||||
.ualong .LcleanupSTART-.LSTARTCODE
|
||||
@ -745,109 +762,6 @@ __condvar_tw_cleanup:
|
||||
.uleb128 0
|
||||
.Lcstend:
|
||||
|
||||
.section .eh_frame,"a",@progbits
|
||||
.LSTARTFRAME:
|
||||
.ualong .LENDCIE-.LSTARTCIE ! Length of the CIE.
|
||||
.LSTARTCIE:
|
||||
.ualong 0 ! CIE ID.
|
||||
.byte 1 ! Version number.
|
||||
#ifdef SHARED
|
||||
.string "zPLR" ! NUL-terminated augmentation
|
||||
! string.
|
||||
#else
|
||||
.string "zPL" ! NUL-terminated augmentation
|
||||
! string.
|
||||
#endif
|
||||
.uleb128 1 ! Code alignment factor.
|
||||
.sleb128 -4 ! Data alignment factor.
|
||||
.byte 0x11 ! Return address register
|
||||
! column.
|
||||
#ifdef SHARED
|
||||
.uleb128 7 ! Augmentation value length.
|
||||
.byte 0x9b ! Personality: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4
|
||||
! + DW_EH_PE_indirect
|
||||
.ualong DW.ref.__gcc_personality_v0-.
|
||||
.byte 0x1b ! LSDA Encoding: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4.
|
||||
.byte 0x1b ! FDE Encoding: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4.
|
||||
#else
|
||||
.uleb128 6 ! Augmentation value length.
|
||||
.byte 0x0 ! Personality: absolute
|
||||
.ualong __gcc_personality_v0
|
||||
.byte 0x0 ! LSDA Encoding: absolute
|
||||
#endif
|
||||
.byte 0x0c ! DW_CFA_def_cfa
|
||||
.uleb128 0xf
|
||||
.uleb128 0
|
||||
.align 2
|
||||
.LENDCIE:
|
||||
|
||||
.ualong .LENDFDE-.LSTARTFDE ! Length of the FDE.
|
||||
.LSTARTFDE:
|
||||
.ualong .LSTARTFDE-.LSTARTFRAME ! CIE pointer.
|
||||
#ifdef SHARED
|
||||
.ualong .LSTARTCODE-. ! PC-relative start address
|
||||
! of the code.
|
||||
#else
|
||||
.ualong .LSTARTCODE ! Start address of the code.
|
||||
#endif
|
||||
.ualong .LENDCODE-.LSTARTCODE ! Length of the code.
|
||||
.uleb128 4 ! Augmentation size
|
||||
#ifdef SHARED
|
||||
.ualong .LexceptSTART-.
|
||||
#else
|
||||
.ualong .LexceptSTART
|
||||
#endif
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r8-.LSTARTCODE
|
||||
.byte 0xe
|
||||
.uleb128 4
|
||||
.byte 0x88
|
||||
.uleb128 1
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r9-.Lpush_r8
|
||||
.byte 0xe
|
||||
.uleb128 8
|
||||
.byte 0x89
|
||||
.uleb128 2
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r10-.Lpush_r9
|
||||
.byte 0xe
|
||||
.uleb128 12
|
||||
.byte 0x8a
|
||||
.uleb128 3
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r11-.Lpush_r10
|
||||
.byte 0xe
|
||||
.uleb128 16
|
||||
.byte 0x8b
|
||||
.uleb128 4
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r12-.Lpush_r11
|
||||
.byte 0xe
|
||||
.uleb128 20
|
||||
.byte 0x8c
|
||||
.uleb128 5
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r13-.Lpush_r12
|
||||
.byte 0xe
|
||||
.uleb128 24
|
||||
.byte 0x8d
|
||||
.uleb128 6
|
||||
.byte 0x4
|
||||
.ualong .Lpush_pr-.Lpush_r13
|
||||
.byte 0xe
|
||||
.uleb128 28
|
||||
.byte 0x91
|
||||
.uleb128 7
|
||||
.byte 0x4
|
||||
.ualong .Lalloc-.Lpush_pr
|
||||
.byte 0xe
|
||||
.uleb128 92
|
||||
.align 2
|
||||
.LENDFDE:
|
||||
|
||||
#ifdef SHARED
|
||||
.hidden DW.ref.__gcc_personality_v0
|
||||
|
@ -29,22 +29,38 @@
|
||||
.globl __pthread_cond_wait
|
||||
.type __pthread_cond_wait, @function
|
||||
.align 5
|
||||
cfi_startproc
|
||||
__pthread_cond_wait:
|
||||
.LSTARTCODE:
|
||||
#ifdef SHARED
|
||||
cfi_personality(DW_EH_PE_pcrel | DW_EH_PE_sdata4 | DW_EH_PE_indirect,
|
||||
DW.ref.__gcc_personality_v0)
|
||||
cfi_lsda(DW_EH_PE_pcrel | DW_EH_PE_sdata4, .LexceptSTART)
|
||||
#else
|
||||
cfi_personality(DW_EH_PE_absptr, __gcc_personality_v0)
|
||||
cfi_lsda(DW_EH_PE_absptr, .LexceptSTART)
|
||||
#endif
|
||||
mov.l r8, @-r15
|
||||
.Lpush_r8:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r8, 0)
|
||||
mov.l r9, @-r15
|
||||
.Lpush_r9:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r9, 0)
|
||||
mov.l r10, @-r15
|
||||
.Lpush_r10:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r10, 0)
|
||||
mov.l r11, @-r15
|
||||
.Lpush_r11:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r11, 0)
|
||||
mov.l r12, @-r15
|
||||
.Lpush_r12:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r12, 0)
|
||||
sts.l pr, @-r15
|
||||
.Lpush_pr:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (pr, 0)
|
||||
add #-48, r15
|
||||
.Lalloc:
|
||||
cfi_adjust_cfa_offset (48)
|
||||
|
||||
mov r4, r8
|
||||
mov r5, r9
|
||||
#ifdef PIC
|
||||
@ -623,15 +639,15 @@ __condvar_w_cleanup:
|
||||
.long _Unwind_Resume
|
||||
#endif
|
||||
.LENDCODE:
|
||||
cfi_endproc
|
||||
.size __condvar_w_cleanup, .-__condvar_w_cleanup
|
||||
|
||||
|
||||
.section .gcc_except_table,"a",@progbits
|
||||
.LexceptSTART:
|
||||
.byte 0xff ! @LPStart format (omit)
|
||||
.byte 0xff ! @TType format (omit)
|
||||
.byte 0x0b ! call-site format
|
||||
! DW_EH_PE_sdata4
|
||||
.byte DW_EH_PE_omit ! @LPStart format (omit)
|
||||
.byte DW_EH_PE_omit ! @TType format (omit)
|
||||
.byte DW_EH_PE_sdata4 ! call-site format
|
||||
.uleb128 .Lcstend-.Lcstbegin
|
||||
.Lcstbegin:
|
||||
.ualong .LcleanupSTART-.LSTARTCODE
|
||||
@ -644,103 +660,6 @@ __condvar_w_cleanup:
|
||||
.uleb128 0
|
||||
.Lcstend:
|
||||
|
||||
.section .eh_frame,"a",@progbits
|
||||
.LSTARTFRAME:
|
||||
.ualong .LENDCIE-.LSTARTCIE ! Length of the CIE.
|
||||
.LSTARTCIE:
|
||||
.ualong 0 ! CIE ID.
|
||||
.byte 1 ! Version number.
|
||||
#ifdef SHARED
|
||||
.string "zPLR" ! NUL-terminated augmentation
|
||||
! string.
|
||||
#else
|
||||
.string "zPL" ! NUL-terminated augmentation
|
||||
! string.
|
||||
#endif
|
||||
.uleb128 1 ! Code alignment factor.
|
||||
.sleb128 -4 ! Data alignment factor.
|
||||
.byte 0x11 ! Return address register
|
||||
! column.
|
||||
#ifdef SHARED
|
||||
.uleb128 7 ! Augmentation value length.
|
||||
.byte 0x9b ! Personality: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4
|
||||
! + DW_EH_PE_indirect
|
||||
.ualong DW.ref.__gcc_personality_v0-.
|
||||
.byte 0x1b ! LSDA Encoding: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4.
|
||||
.byte 0x1b ! FDE Encoding: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4.
|
||||
#else
|
||||
.uleb128 6 ! Augmentation value length.
|
||||
.byte 0x0 ! Personality: absolute
|
||||
.ualong __gcc_personality_v0
|
||||
.byte 0x0 ! LSDA Encoding: absolute
|
||||
#endif
|
||||
.byte 0x0c ! DW_CFA_def_cfa
|
||||
.uleb128 0xf
|
||||
.uleb128 0
|
||||
.align 2
|
||||
.LENDCIE:
|
||||
|
||||
.ualong .LENDFDE-.LSTARTFDE ! Length of the FDE.
|
||||
.LSTARTFDE:
|
||||
.ualong .LSTARTFDE-.LSTARTFRAME ! CIE pointer.
|
||||
#ifdef SHARED
|
||||
.ualong .LSTARTCODE-. ! PC-relative start address
|
||||
! of the code.
|
||||
#else
|
||||
.ualong .LSTARTCODE ! Start address of the code.
|
||||
#endif
|
||||
.ualong .LENDCODE-.LSTARTCODE ! Length of the code.
|
||||
.uleb128 4 ! Augmentation size
|
||||
#ifdef SHARED
|
||||
.ualong .LexceptSTART-.
|
||||
#else
|
||||
.ualong .LexceptSTART
|
||||
#endif
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r8-.LSTARTCODE
|
||||
.byte 0xe
|
||||
.uleb128 4
|
||||
.byte 0x88
|
||||
.uleb128 1
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r9-.Lpush_r8
|
||||
.byte 0xe
|
||||
.uleb128 8
|
||||
.byte 0x89
|
||||
.uleb128 2
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r10-.Lpush_r9
|
||||
.byte 0xe
|
||||
.uleb128 12
|
||||
.byte 0x8a
|
||||
.uleb128 3
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r11-.Lpush_r10
|
||||
.byte 0xe
|
||||
.uleb128 16
|
||||
.byte 0x8b
|
||||
.uleb128 4
|
||||
.byte 0x4
|
||||
.ualong .Lpush_r12-.Lpush_r11
|
||||
.byte 0xe
|
||||
.uleb128 20
|
||||
.byte 0x8c
|
||||
.uleb128 5
|
||||
.byte 0x4
|
||||
.ualong .Lpush_pr-.Lpush_r12
|
||||
.byte 0xe
|
||||
.uleb128 24
|
||||
.byte 0x91
|
||||
.uleb128 6
|
||||
.byte 0x4
|
||||
.ualong .Lalloc-.Lpush_pr
|
||||
.byte 0xe
|
||||
.uleb128 72
|
||||
.align 2
|
||||
.LENDFDE:
|
||||
|
||||
#ifdef SHARED
|
||||
.hidden DW.ref.__gcc_personality_v0
|
||||
|
@ -33,8 +33,17 @@
|
||||
.globl sem_timedwait
|
||||
.type sem_timedwait,@function
|
||||
.align 5
|
||||
cfi_startproc
|
||||
sem_timedwait:
|
||||
.LSTARTCODE:
|
||||
#ifdef SHARED
|
||||
cfi_personality(DW_EH_PE_pcrel | DW_EH_PE_sdata4 | DW_EH_PE_indirect,
|
||||
DW.ref.__gcc_personality_v0)
|
||||
cfi_lsda(DW_EH_PE_pcrel | DW_EH_PE_sdata4, .LexceptSTART)
|
||||
#else
|
||||
cfi_personality(DW_EH_PE_absptr, __gcc_personality_v0)
|
||||
cfi_lsda(DW_EH_PE_absptr, .LexceptSTART)
|
||||
#endif
|
||||
mov.l @r4, r0
|
||||
2:
|
||||
tst r0, r0
|
||||
@ -51,17 +60,23 @@ sem_timedwait:
|
||||
1:
|
||||
/* Check whether the timeout value is valid. */
|
||||
mov.l r8, @-r15
|
||||
.Lpush_r8:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r8, 0)
|
||||
mov.l r9, @-r15
|
||||
.Lpush_r9:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r9, 0)
|
||||
mov.l r10, @-r15
|
||||
.Lpush_r10:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r10, 0)
|
||||
mov.l r12, @-r15
|
||||
.Lpush_r12:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r12, 0)
|
||||
sts.l pr, @-r15
|
||||
.Lpush_pr:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (pr, 0)
|
||||
add #-8, r15
|
||||
.Lalloc:
|
||||
cfi_adjust_cfa_offset (8)
|
||||
|
||||
mov r4, r8
|
||||
mov r5, r9
|
||||
|
||||
@ -220,15 +235,15 @@ sem_wait_cleanup:
|
||||
.long _Unwind_Resume
|
||||
#endif
|
||||
.LENDCODE:
|
||||
cfi_endproc
|
||||
.size sem_wait_cleanup,.-sem_wait_cleanup
|
||||
|
||||
|
||||
.section .gcc_except_table,"a",@progbits
|
||||
.LexceptSTART:
|
||||
.byte 0xff ! @LPStart format (omit)
|
||||
.byte 0xff ! @TType format (omit)
|
||||
.byte 0x01 ! call-site format
|
||||
! DW_EH_PE_uleb128
|
||||
.byte DW_EH_PE_omit ! @LPStart format (omit)
|
||||
.byte DW_EH_PE_omit ! @TType format (omit)
|
||||
.byte DW_EH_PE_uleb128 ! call-site format
|
||||
.uleb128 .Lcstend-.Lcstbegin
|
||||
.Lcstbegin:
|
||||
.uleb128 .LcleanupSTART-.LSTARTCODE
|
||||
@ -241,101 +256,6 @@ sem_wait_cleanup:
|
||||
.uleb128 0
|
||||
.Lcstend:
|
||||
|
||||
|
||||
.section .eh_frame,"a",@progbits
|
||||
.LSTARTFRAME:
|
||||
.ualong .LENDCIE-.LSTARTCIE ! Length of the CIE.
|
||||
.LSTARTCIE:
|
||||
.ualong 0 ! CIE ID.
|
||||
.byte 1 ! Version number.
|
||||
#ifdef SHARED
|
||||
.string "zPLR" ! NUL-terminated augmentation
|
||||
! string.
|
||||
#else
|
||||
.string "zPL" ! NUL-terminated augmentation
|
||||
! string.
|
||||
#endif
|
||||
.uleb128 1 ! Code alignment factor.
|
||||
.sleb128 -4 ! Data alignment factor.
|
||||
.byte 0x11 ! Return address register
|
||||
! column.
|
||||
#ifdef SHARED
|
||||
.uleb128 7 ! Augmentation value length.
|
||||
.byte 0x9b ! Personality: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4
|
||||
! + DW_EH_PE_indirect
|
||||
.ualong DW.ref.__gcc_personality_v0-.
|
||||
.byte 0x1b ! LSDA Encoding: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4.
|
||||
.byte 0x1b ! FDE Encoding: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4.
|
||||
#else
|
||||
.uleb128 6 ! Augmentation value length.
|
||||
.byte 0x0 ! Personality: absolute
|
||||
.ualong __gcc_personality_v0
|
||||
.byte 0x0 ! LSDA Encoding: absolute
|
||||
#endif
|
||||
.byte 0x0c ! DW_CFA_def_cfa
|
||||
.uleb128 0xf
|
||||
.uleb128 0
|
||||
.align 4
|
||||
.LENDCIE:
|
||||
|
||||
.ualong .LENDFDE-.LSTARTFDE ! Length of the FDE.
|
||||
.LSTARTFDE:
|
||||
.ualong .LSTARTFDE-.LSTARTFRAME ! CIE pointer.
|
||||
#ifdef SHARED
|
||||
.ualong .LSTARTCODE-. ! PC-relative start address
|
||||
! of the code.
|
||||
#else
|
||||
.ualong .LSTARTCODE ! Start address of the code.
|
||||
#endif
|
||||
.ualong .LENDCODE-.LSTARTCODE ! Length of the code.
|
||||
.uleb128 4 ! Augmentation size
|
||||
#ifdef SHARED
|
||||
.ualong .LexceptSTART-.
|
||||
#else
|
||||
.ualong .LexceptSTART
|
||||
#endif
|
||||
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lpush_r8-.LSTARTCODE
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 4
|
||||
.byte 0x88 ! DW_CFA_offset r8
|
||||
.uleb128 1
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lpush_r9-.Lpush_r8
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 8
|
||||
.byte 0x89 ! DW_CFA_offset r9
|
||||
.uleb128 2
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lpush_r10-.Lpush_r9
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 12
|
||||
.byte 0x8a ! DW_CFA_offset r10
|
||||
.uleb128 3
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lpush_r12-.Lpush_r10
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 16
|
||||
.byte 0x8c ! DW_CFA_offset r12
|
||||
.uleb128 4
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lpush_pr-.Lpush_r12
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 20
|
||||
.byte 0x91 ! DW_CFA_offset pr
|
||||
.uleb128 5
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lalloc-.Lpush_pr
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 28
|
||||
.align 4
|
||||
.LENDFDE:
|
||||
|
||||
|
||||
#ifdef SHARED
|
||||
.hidden DW.ref.__gcc_personality_v0
|
||||
.weak DW.ref.__gcc_personality_v0
|
||||
|
@ -33,18 +33,31 @@
|
||||
.globl __new_sem_wait
|
||||
.type __new_sem_wait,@function
|
||||
.align 5
|
||||
cfi_startproc
|
||||
__new_sem_wait:
|
||||
.LSTARTCODE:
|
||||
#ifdef SHARED
|
||||
cfi_personality(DW_EH_PE_pcrel | DW_EH_PE_sdata4 | DW_EH_PE_indirect,
|
||||
DW.ref.__gcc_personality_v0)
|
||||
cfi_lsda(DW_EH_PE_pcrel | DW_EH_PE_sdata4, .LexceptSTART)
|
||||
#else
|
||||
cfi_personality(DW_EH_PE_absptr, __gcc_personality_v0)
|
||||
cfi_lsda(DW_EH_PE_absptr, .LexceptSTART)
|
||||
#endif
|
||||
mov.l r8, @-r15
|
||||
.Lpush_r8:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r8, 0)
|
||||
mov.l r10, @-r15
|
||||
.Lpush_r10:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r10, 0)
|
||||
mov.l r12, @-r15
|
||||
.Lpush_r12:
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (r12, 0)
|
||||
sts.l pr, @-r15
|
||||
.Lpush_pr:
|
||||
mov r4, r8
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (pr, 0)
|
||||
|
||||
mov r4, r8
|
||||
mov.l @r8, r0
|
||||
2:
|
||||
tst r0, r0
|
||||
@ -174,15 +187,15 @@ sem_wait_cleanup:
|
||||
.long _Unwind_Resume
|
||||
#endif
|
||||
.LENDCODE:
|
||||
cfi_endproc
|
||||
.size sem_wait_cleanup,.-sem_wait_cleanup
|
||||
|
||||
|
||||
.section .gcc_except_table,"a",@progbits
|
||||
.LexceptSTART:
|
||||
.byte 0xff ! @LPStart format (omit)
|
||||
.byte 0xff ! @TType format (omit)
|
||||
.byte 0x01 ! call-site format
|
||||
! DW_EH_PE_uleb128
|
||||
.byte DW_EH_PE_omit ! @LPStart format (omit)
|
||||
.byte DW_EH_PE_omit ! @TType format (omit)
|
||||
.byte DW_EH_PE_uleb128 ! call-site format
|
||||
.uleb128 .Lcstend-.Lcstbegin
|
||||
.Lcstbegin:
|
||||
.uleb128 .LcleanupSTART-.LSTARTCODE
|
||||
@ -195,91 +208,6 @@ sem_wait_cleanup:
|
||||
.uleb128 0
|
||||
.Lcstend:
|
||||
|
||||
|
||||
.section .eh_frame,"a",@progbits
|
||||
.LSTARTFRAME:
|
||||
.ualong .LENDCIE-.LSTARTCIE ! Length of the CIE.
|
||||
.LSTARTCIE:
|
||||
.ualong 0 ! CIE ID.
|
||||
.byte 1 ! Version number.
|
||||
#ifdef SHARED
|
||||
.string "zPLR" ! NUL-terminated augmentation
|
||||
! string.
|
||||
#else
|
||||
.string "zPL" ! NUL-terminated augmentation
|
||||
! string.
|
||||
#endif
|
||||
.uleb128 1 ! Code alignment factor.
|
||||
.sleb128 -4 ! Data alignment factor.
|
||||
.byte 0x11 ! Return address register
|
||||
! column.
|
||||
#ifdef SHARED
|
||||
.uleb128 7 ! Augmentation value length.
|
||||
.byte 0x9b ! Personality: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4
|
||||
! + DW_EH_PE_indirect
|
||||
.ualong DW.ref.__gcc_personality_v0-.
|
||||
.byte 0x1b ! LSDA Encoding: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4.
|
||||
.byte 0x1b ! FDE Encoding: DW_EH_PE_pcrel
|
||||
! + DW_EH_PE_sdata4.
|
||||
#else
|
||||
.uleb128 6 ! Augmentation value length.
|
||||
.byte 0x0 ! Personality: absolute
|
||||
.ualong __gcc_personality_v0
|
||||
.byte 0x0 ! LSDA Encoding: absolute
|
||||
#endif
|
||||
.byte 0x0c ! DW_CFA_def_cfa
|
||||
.uleb128 0xf
|
||||
.uleb128 0
|
||||
.align 4
|
||||
.LENDCIE:
|
||||
|
||||
.ualong .LENDFDE-.LSTARTFDE ! Length of the FDE.
|
||||
.LSTARTFDE:
|
||||
.ualong .LSTARTFDE-.LSTARTFRAME ! CIE pointer.
|
||||
#ifdef SHARED
|
||||
.ualong .LSTARTCODE-. ! PC-relative start address
|
||||
! of the code.
|
||||
#else
|
||||
.ualong .LSTARTCODE ! Start address of the code.
|
||||
#endif
|
||||
.ualong .LENDCODE-.LSTARTCODE ! Length of the code.
|
||||
.uleb128 4 ! Augmentation size
|
||||
#ifdef SHARED
|
||||
.ualong .LexceptSTART-.
|
||||
#else
|
||||
.ualong .LexceptSTART
|
||||
#endif
|
||||
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lpush_r8-.LSTARTCODE
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 4
|
||||
.byte 0x88 ! DW_CFA_offset r8
|
||||
.uleb128 1
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lpush_r10-.Lpush_r8
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 8
|
||||
.byte 0x8a ! DW_CFA_offset r10
|
||||
.uleb128 2
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lpush_r12-.Lpush_r10
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 12
|
||||
.byte 0x8c ! DW_CFA_offset r12
|
||||
.uleb128 3
|
||||
.byte 4 ! DW_CFA_advance_loc4
|
||||
.ualong .Lpush_pr-.Lpush_r12
|
||||
.byte 14 ! DW_CFA_def_cfa_offset
|
||||
.uleb128 16
|
||||
.byte 0x91 ! DW_CFA_offset pr
|
||||
.uleb128 4
|
||||
.align 4
|
||||
.LENDFDE:
|
||||
|
||||
|
||||
#ifdef SHARED
|
||||
.hidden DW.ref.__gcc_personality_v0
|
||||
.weak DW.ref.__gcc_personality_v0
|
||||
|
Loading…
Reference in New Issue
Block a user