(final_scan_insn): When recur for instruction in delay slot...
authorRichard Kenner <kenner@gcc.gnu.org>
Thu, 26 Oct 1995 12:01:21 +0000 (08:01 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Thu, 26 Oct 1995 12:01:21 +0000 (08:01 -0400)
(final_scan_insn): When recur for instruction in delay slot, add loop
around recursive call in case the instruction gets split.

From-SVN: r10511

gcc/final.c

index 8ab4bdc..19b9683 100644 (file)
@@ -1686,7 +1686,15 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
              }
 
            for (i = 1; i < XVECLEN (body, 0); i++)
-             final_scan_insn (XVECEXP (body, 0, i), file, 0, prescan, 1);
+             {
+               rtx insn = XVECEXP (body, 0, i);
+               rtx next = NEXT_INSN (insn);
+               /* We loop in case any instruction in a delay slot gets
+                  split.  */
+               do
+                 insn = final_scan_insn (insn, file, 0, prescan, 1);
+               while (insn != next);
+             }
 #ifdef DBR_OUTPUT_SEQEND
            DBR_OUTPUT_SEQEND (file);
 #endif