* reorg.c (emit_delay_sequence, dbr_schedule): Clear insn locators
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 14 Jun 2003 09:14:38 +0000 (09:14 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 14 Jun 2003 09:14:38 +0000 (09:14 +0000)
inside delay slots.

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

gcc/ChangeLog
gcc/reorg.c

index d9b3523..cfef730 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 161e7b0..37a8214 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 */