From baf37960f6ff7b5d8b4fc69f1f3d936d221cdeeb Mon Sep 17 00:00:00 2001 From: Trevor Saunders Date: Sun, 11 Oct 2015 00:48:02 +0000 Subject: [PATCH] always define SETUP_FRAME_ADDRESSES gcc/ChangeLog: 2015-10-10 Trevor Saunders * defaults.h (SETUP_FRAME_ADDRESSES): New default definition. * builtins.c (expand_builtin_return_addr): Adjust. * doc/tm.texi: Likewise. * doc/tm.texi.in: Likewise. * except.c (expand_builtin_unwind_init): Likewise. From-SVN: r228686 --- gcc/ChangeLog | 8 ++++++++ gcc/builtins.c | 5 ----- gcc/defaults.h | 4 ++++ gcc/doc/tm.texi | 4 ++-- gcc/doc/tm.texi.in | 4 ++-- gcc/except.c | 2 -- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5da4a5dd09f..0d9ab5cde48 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2015-10-10 Trevor Saunders + + * defaults.h (SETUP_FRAME_ADDRESSES): New default definition. + * builtins.c (expand_builtin_return_addr): Adjust. + * doc/tm.texi: Likewise. + * doc/tm.texi.in: Likewise. + * except.c (expand_builtin_unwind_init): Likewise. + 2015-10-10 Trevor Saunders * builtins.c (expand_builtin_return_addr): Adjust. diff --git a/gcc/builtins.c b/gcc/builtins.c index 3bbe763b031..bd95acbca93 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -784,13 +784,8 @@ expand_builtin_return_addr (enum built_in_function fndecl_code, int count) } } - /* Some machines need special handling before we can access - arbitrary frames. For example, on the SPARC, we must first flush - all register windows to the stack. */ -#ifdef SETUP_FRAME_ADDRESSES if (count > 0) SETUP_FRAME_ADDRESSES (); -#endif /* On the SPARC, the return address is not in the frame, it is in a register. There is no way to access it off of the current frame diff --git a/gcc/defaults.h b/gcc/defaults.h index c4d953622be..5f1ea7674bb 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -1281,6 +1281,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define INITIAL_FRAME_ADDRESS_RTX NULL #endif +#ifndef SETUP_FRAME_ADDRESSES +#define SETUP_FRAME_ADDRESSES() do { } while (0) +#endif + #ifdef GCC_INSN_FLAGS_H /* Dependent default target macro definitions diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 72366b90dbf..d09e6461683 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -3020,11 +3020,11 @@ address of the stack word that points to the previous frame. @end defmac @defmac SETUP_FRAME_ADDRESSES -If defined, a C expression that produces the machine-specific code to +A C expression that produces the machine-specific code to setup the stack so that arbitrary frames can be accessed. For example, on the SPARC, we must flush all of the register windows to the stack before we can access arbitrary stack frames. You will seldom need to -define this macro. +define this macro. The default is to do nothing. @end defmac @deftypefn {Target Hook} rtx TARGET_BUILTIN_SETJMP_FRAME_VALUE (void) diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index d8d00870376..33939ec77f4 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -2626,11 +2626,11 @@ address of the stack word that points to the previous frame. @end defmac @defmac SETUP_FRAME_ADDRESSES -If defined, a C expression that produces the machine-specific code to +A C expression that produces the machine-specific code to setup the stack so that arbitrary frames can be accessed. For example, on the SPARC, we must flush all of the register windows to the stack before we can access arbitrary stack frames. You will seldom need to -define this macro. +define this macro. The default is to do nothing. @end defmac @hook TARGET_BUILTIN_SETJMP_FRAME_VALUE diff --git a/gcc/except.c b/gcc/except.c index fed18eeb273..8f776532e42 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -2120,9 +2120,7 @@ expand_builtin_unwind_init (void) able to copy the saved values for any registers from frames we unwind. */ crtl->saves_all_registers = 1; -#ifdef SETUP_FRAME_ADDRESSES SETUP_FRAME_ADDRESSES (); -#endif } /* Map a non-negative number to an eh return data register number; expands -- 2.30.2