sh.c (output_branch): Check the insn length possibly in the delayed slot.
authorKaz Kojima <kkojima@gcc.gnu.org>
Wed, 1 Sep 2004 00:28:30 +0000 (00:28 +0000)
committerKaz Kojima <kkojima@gcc.gnu.org>
Wed, 1 Sep 2004 00:28:30 +0000 (00:28 +0000)
* config/sh/sh.c (output_branch): Check the insn length possibly
in the delayed slot.

From-SVN: r86858

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

index d357130ab7022ae3bca6b397ecd4c7117cadf24f..ff6249eefefc3138fe3b6c3fccc92c2d643bfecb 100644 (file)
@@ -1,3 +1,8 @@
+2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (output_branch): Check the insn length possibly
+       in the delayed slot.
+
 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
index 31104e5fbe3b91b8eedfdca16389523af0ed9238..087bb7fd47fcd27c4f660b66681a7fc233aae15a 100644 (file)
@@ -1379,7 +1379,8 @@ output_branch (int logic, rtx insn, rtx *operands)
             place for it is after the label.  final will do that by default.  */
 
          if (final_sequence
-             && ! INSN_ANNULLED_BRANCH_P (XVECEXP (final_sequence, 0, 0)))
+             && ! INSN_ANNULLED_BRANCH_P (XVECEXP (final_sequence, 0, 0))
+             && get_attr_length (XVECEXP (final_sequence, 0, 1)))
            {
              asm_fprintf (asm_out_file, "\tb%s%ss\t%LLF%d\n", logic ? "f" : "t",
                           ASSEMBLER_DIALECT ? "/" : ".", label);