always define SETUP_FRAME_ADDRESSES
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>
Sun, 11 Oct 2015 00:48:02 +0000 (00:48 +0000)
committerTrevor Saunders <tbsaunde@gcc.gnu.org>
Sun, 11 Oct 2015 00:48:02 +0000 (00:48 +0000)
gcc/ChangeLog:

2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* 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
gcc/builtins.c
gcc/defaults.h
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/except.c

index 5da4a5dd09f04383bb083a02946afe5b6be5abaa..0d9ab5cde4841b1bcca280cb31ebf972eb99bebd 100644 (file)
@@ -1,3 +1,11 @@
+2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
+
+       * 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  <tbsaunde+gcc@tbsaunde.org>
 
        * builtins.c (expand_builtin_return_addr): Adjust.
index 3bbe763b0314fdb9ec149f5d4b740cc9555c39a8..bd95acbca9334558c81237293e039cf495ce9e60 100644 (file)
@@ -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
index c4d953622be6b5620345b73a29de3ae5a0029aa6..5f1ea7674bb7bc6332cbe7f60030a0bd2087659c 100644 (file)
@@ -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
 
index 72366b90dbf5e887d683b939c923f2ecc123065f..d09e6461683a1ae25ab9bcd2531be9706053897e 100644 (file)
@@ -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)
index d8d008703761ed67cc6ec711c9bffdba187060b9..33939ec77f4d32bb2e8c8faff7f10e5940c18e55 100644 (file)
@@ -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
index fed18eeb2733a455c7b81606bea748272c2029e4..8f776532e4230c960501219567bc261d2c590321 100644 (file)
@@ -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