@@ -304,12 +304,15 @@ DW.ref.__gcc_personality_v0:
# new thread starts. This is called from a constructor.
# void __stack_split_initialize (void)
ENTRY(__stack_split_initialize)
+ .cfi_startproc
addi %r3,%r1,-0x4000 # We should have at least 16K.
std %r3,-0x7000-64(%r13) # tcbhead_t.__private_ss
# void __generic_morestack_set_initial_sp (void *sp, size_t len)
mr %r3,%r1
li %r4, 0x4000
b __generic_morestack_set_initial_sp
+# The lack of .cfi_endproc here is deliberate. This function and the
+# following ones can all use the default FDE.
SIZE (__stack_split_initialize)
@@ -335,6 +338,7 @@ ENTRY0(__morestack_make_guard)
sub %r3,%r3,%r4
addi %r3,%r3,BACKOFF
blr
+ .cfi_endproc
SIZE (__morestack_make_guard)
@@ -56,8 +56,10 @@ trampoline_size = .-trampoline_initial
/* R6 = static chain */
FUNC_START(__trampoline_setup)
+ .cfi_startproc
mflr r0 /* save return address */
bcl 20,31,.LCF0 /* load up __trampoline_initial into r7 */
+ .cfi_register lr,r0
.LCF0:
mflr r11
addi r7,r11,trampoline_initial-4-.LCF0 /* trampoline address -4 */
@@ -112,6 +114,7 @@ FUNC_START(__trampoline_setup)
addi r30,r30,_GLOBAL_OFFSET_TABLE_-1b@l
#endif
bl JUMP_TARGET(abort)
+ .cfi_endproc
FUNC_END(__trampoline_setup)
#endif
@@ -144,6 +147,7 @@ trampoline_size = .-trampoline_initial
.popsection
FUNC_START(__trampoline_setup)
+ .cfi_startproc
addis 7,2,.LC0@toc@ha
ld 7,.LC0@toc@l(7) /* trampoline address -8 */
@@ -180,6 +184,7 @@ FUNC_START(__trampoline_setup)
.Labort:
bl JUMP_TARGET(abort)
nop
+ .cfi_endproc
FUNC_END(__trampoline_setup)
#endif