OSDN Git Service

PR target/40313
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 31 May 2009 21:45:18 +0000 (21:45 +0000)
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 31 May 2009 21:45:18 +0000 (21:45 +0000)
* config/sh/sh.c: Include debug.h.
(sh_expand_epilogue): Emit a blockage insn before the frame
pointer adjustment also when dwarf2out_do_frame returns true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148017 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/sh/sh.c

index 40dca07..9305d0c 100644 (file)
@@ -1,3 +1,10 @@
+2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/40313
+       * config/sh/sh.c: Include debug.h.
+       (sh_expand_epilogue): Emit a blockage insn before the frame
+       pointer adjustment also when dwarf2out_do_frame returns true.
+
 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
 
        * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
 
        * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
index 9c9583f..681488d 100644 (file)
@@ -43,6 +43,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "target-def.h"
 #include "real.h"
 #include "target.h"
 #include "target-def.h"
 #include "real.h"
+#include "debug.h"
 #include "langhooks.h"
 #include "basic-block.h"
 #include "df.h"
 #include "langhooks.h"
 #include "basic-block.h"
 #include "df.h"
@@ -6747,8 +6748,9 @@ sh_expand_epilogue (bool sibcall_p)
   if (frame_pointer_needed)
     {
       /* We must avoid scheduling the epilogue with previous basic blocks
   if (frame_pointer_needed)
     {
       /* We must avoid scheduling the epilogue with previous basic blocks
-        when exception handling is enabled.  See PR/18032.  */
-      if (flag_exceptions)
+        when exception handling or frame information is needed.
+        See PR/18032 and PR/40313.  */
+      if (flag_exceptions || dwarf2out_do_frame ())
        emit_insn (gen_blockage ());
       output_stack_adjust (frame_size, hard_frame_pointer_rtx, e,
                           &live_regs_mask);
        emit_insn (gen_blockage ());
       output_stack_adjust (frame_size, hard_frame_pointer_rtx, e,
                           &live_regs_mask);