diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/cris/cris.h | 5 |
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}, \ |