aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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}, \