aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2009-03-19 03:52:58 +0000
committerHans-Peter Nilsson <hp@gcc.gnu.org>2009-03-19 03:52:58 +0000
commit8ef20026dc352e6a1fccae8052bf7bdc009742bc (patch)
treed0667ba12bf974f168b7902596da504e7947fb21
parentf75d61d0f3447e64e7f401d48e1f49575d5c805c (diff)
downloadgcc-8ef20026dc352e6a1fccae8052bf7bdc009742bc.zip
gcc-8ef20026dc352e6a1fccae8052bf7bdc009742bc.tar.gz
gcc-8ef20026dc352e6a1fccae8052bf7bdc009742bc.tar.bz2
re PR middle-end/38609 (gcc.c-torture/execute/built-in-setjmp.c execute -O2 and above)
PR middle-end/38609 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all functions with dynamic stack-pointer adjustments. From-SVN: r144951
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/cris/cris.h5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 14acc11..9892f8f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-19 Hans-Peter Nilsson <hp@axis.com>
+
+ PR middle-end/38609
+ * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
+ functions with dynamic stack-pointer adjustments.
+
2009-03-19 Ben Elliston <bje@au.ibm.com>
* doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index eae8b48..4982259 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -851,8 +851,9 @@ enum reg_class
/* Node: Elimination */
/* Really only needed if the stack frame has variable length (alloca
- or variable sized local arguments (GNU C extension). */
-#define FRAME_POINTER_REQUIRED 0
+ or variable sized local arguments (GNU C extension). See PR39499 and
+ PR38609 for the reason this isn't just 0. */
+#define FRAME_POINTER_REQUIRED (!current_function_sp_is_unchanging)
#define ELIMINABLE_REGS \
{{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \