reorg.c (emit_delay_sequence, [...]): Clear insn locators inside delay slots.
authorJan Hubicka <jh@suse.cz>
Sat, 14 Jun 2003 09:14:38 +0000 (11:14 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sat, 14 Jun 2003 09:14:38 +0000 (09:14 +0000)
* reorg.c (emit_delay_sequence, dbr_schedule): Clear insn locators
inside delay slots.

From-SVN: r67937

gcc/ChangeLog
gcc/reorg.c

index d9b3523dfa3d6bbd1cce46037b0d1e77b64d62e0..cfef7305e3a78c6b8cb479ae2022b6453586e324 100644 (file)
@@ -1,3 +1,8 @@
+Sat Jun 14 11:12:04 CEST 2003  Jan Hubicka  <jh@suse.cz>
+
+       * reorg.c (emit_delay_sequence, dbr_schedule): Clear insn locators
+       inside delay slots.
+
 2003-06-13  Matt Kraai  <kraai@alumni.cmu.edu>
 
        * unwind-c.c: Define NO_SIZE_OF_ENCODED_VALUE.
index 161e7b03ab23488f2d44a7f32ea5eb0c7f4563bd..37a8214032679696ab7ee7972733f5f6cebdec29 100644 (file)
@@ -497,6 +497,12 @@ emit_delay_sequence (insn, list, length)
       PREV_INSN (tem) = XVECEXP (seq, 0, i - 1);
       NEXT_INSN (XVECEXP (seq, 0, i - 1)) = tem;
 
+      /* SPARC assembler, for instance, emit warning when debug info is output
+         into the delay slot.  */
+      if (INSN_LOCATOR (tem) && !INSN_LOCATOR (seq_insn))
+       INSN_LOCATOR (seq_insn) = INSN_LOCATOR (tem);
+      INSN_LOCATOR (tem) = 0;
+
       for (note = REG_NOTES (tem); note; note = next)
        {
          next = XEXP (note, 1);
@@ -3841,5 +3847,17 @@ dbr_schedule (first, file)
     }
   free_resource_info ();
   free (uid_to_ruid);
+#ifdef DELAY_SLOTS_FOR_EPILOGUE
+  /* SPARC assembler, for instance, emit warning when debug info is output
+     into the delay slot.  */
+  {
+    rtx link;
+
+    for (link = current_function_epilogue_delay_list;
+         link;
+         link = XEXP (link, 1))
+      INSN_LOCATOR (XEXP (link, 0)) = 0;
+  }
+#endif
 }
 #endif /* DELAY_SLOTS */