diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 7 |
2 files changed, 8 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 825c7b6..67e87e1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-06-02 Kaz Kojima <kkojima@gcc.gnu.org> + + * config/sh/sh.c: Revert last change. + (sh_expand_epilogue): Emit a blockage insn before the frame + pointer adjustment unconditionally. + 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program". diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 681488d..545ac04 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -43,7 +43,6 @@ along with GCC; see the file COPYING3. If not see #include "target.h" #include "target-def.h" #include "real.h" -#include "debug.h" #include "langhooks.h" #include "basic-block.h" #include "df.h" @@ -6747,11 +6746,9 @@ sh_expand_epilogue (bool sibcall_p) if (frame_pointer_needed) { - /* We must avoid scheduling the epilogue with previous basic blocks - when exception handling or frame information is needed. + /* We must avoid scheduling the epilogue with previous basic blocks. See PR/18032 and PR/40313. */ - if (flag_exceptions || dwarf2out_do_frame ()) - emit_insn (gen_blockage ()); + emit_insn (gen_blockage ()); output_stack_adjust (frame_size, hard_frame_pointer_rtx, e, &live_regs_mask); |