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

--- Comment #5 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Thu Apr 19 16:36:34 2018
New Revision: 259500

URL: https://gcc.gnu.org/viewcvs?rev=259500&root=gcc&view=rev
Log:
i386: Add save_stack_nonlocal and restore_stack_nonlocal

Define STACK_SAVEAREA_MODE to hold both shadow stack and stack pointers.
Replace builtin_setjmp_setup and builtin_longjmp with save_stack_nonlocal
and restore_stack_nonlocal to support both builtin setjmp/longjmp as well
as non-local goto in nested functions.

gcc/

        PR target/85397
        * config/i386/i386.h (STACK_SAVEAREA_MODE): New.
        * config/i386/i386.md (builtin_setjmp_setup): Removed.
        (builtin_longjmp): Likewise.
        (save_stack_nonlocal): New pattern.
        (restore_stack_nonlocal): Likewise.

gcc/testsuite/

        PR target/85397
        * gcc.dg/torture/pr85397-1.c: New test.
        * gcc.target/i386/cet-sjlj-6a.c: Adjusted.
        * gcc.target/i386/cet-sjlj-6b.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr85397-1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.h
    trunk/gcc/config/i386/i386.md
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/i386/cet-sjlj-6a.c
    trunk/gcc/testsuite/gcc.target/i386/cet-sjlj-6b.c

Reply via email to