This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/83368] alloca after setjmp breaks PIC base reg


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83368

--- Comment #17 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
Author: ebotcazou
Date: Fri Jan 12 11:29:30 2018
New Revision: 256575

URL: https://gcc.gnu.org/viewcvs?rev=256575&root=gcc&view=rev
Log:
        PR target/83368
        * config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM
        in PIC mode except for TARGET_VXWORKS_RTP.
        * config/sparc/sparc.c: Include cfgrtl.h.
        (TARGET_INIT_PIC_REG): Define.
        (TARGET_USE_PSEUDO_PIC_REG): Likewise.
        (sparc_pic_register_p): New predicate.
        (sparc_legitimate_address_p): Use it.
        (sparc_legitimize_pic_address): Likewise.
        (sparc_delegitimize_address): Likewise.
        (sparc_mode_dependent_address_p): Likewise.
        (gen_load_pcrel_sym): Remove 4th parameter.
        (load_got_register): Adjust call to above.  Remove obsolete stuff.
        (sparc_expand_prologue): Do not call load_got_register here.
        (sparc_flat_expand_prologue): Likewise.
        (sparc_output_mi_thunk): Set the pic_offset_table_rtx object.
        (sparc_use_pseudo_pic_reg): New function.
        (sparc_init_pic_reg): Likewise.
        * config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
        (builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP.

Added:
    trunk/gcc/testsuite/gcc.target/sparc/setjmp-1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sparc/sparc.c
    trunk/gcc/config/sparc/sparc.h
    trunk/gcc/config/sparc/sparc.md

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]