diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 7ccf11fff38..a4bce25cb23 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,6 +1,13 @@ +2018-11-27 Alan Modra + + * config/rs6000/morestack.S (__stack_split_initialize), + (__morestack_get_guard, __morestack_set_guard), + (__morestack_make_guard): Provide CFI covering these functions. + * config/rs6000/tramp.S (__trampoline_setup): Likewise. + 2018-11-15 Xianmiao Qu - * config/csky/linux-unwind.h (sc_pt_regs): Update for kernel. + * config/csky/linux-unwind.h (sc_pt_regs): Update for kernel. (sc_pt_regs_lr): Update for kernel. (sc_pt_regs_tls): Update for kernel. @@ -11,7 +18,7 @@ 2018-11-13 Xianmiao Qu * config/csky/linux-unwind.h (_sig_ucontext_t): Remove. - (csky_fallback_frame_state): Modify the check of the + (csky_fallback_frame_state): Modify the check of the instructions to adapt to changes in the kernel 2018-11-09 Stafford Horne @@ -243,7 +250,7 @@ 2018-08-22 Iain Sandoe - * config/unwind-dw2-fde-darwin.c + * config/unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction): move from here ... * config/darwin10-unwind-find-enc-func.c: … to here. * config/t-darwin: Build Darwin10 unwinder shim crt. diff --git a/libgcc/config/rs6000/morestack.S b/libgcc/config/rs6000/morestack.S index a0fee4037e4..936051eab33 100644 --- a/libgcc/config/rs6000/morestack.S +++ b/libgcc/config/rs6000/morestack.S @@ -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) diff --git a/libgcc/config/rs6000/tramp.S b/libgcc/config/rs6000/tramp.S index 19ea57838fc..637f4510146 100644 --- a/libgcc/config/rs6000/tramp.S +++ b/libgcc/config/rs6000/tramp.S @@ -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