From 281ac6046f34ac0bae7bb981b332036cf1b0f2f1 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sat, 14 Jun 2003 11:14:38 +0200 Subject: [PATCH] reorg.c (emit_delay_sequence, [...]): Clear insn locators inside delay slots. * reorg.c (emit_delay_sequence, dbr_schedule): Clear insn locators inside delay slots. From-SVN: r67937 --- gcc/ChangeLog | 5 +++++ gcc/reorg.c | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d9b3523dfa3..cfef7305e3a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sat Jun 14 11:12:04 CEST 2003 Jan Hubicka + + * reorg.c (emit_delay_sequence, dbr_schedule): Clear insn locators + inside delay slots. + 2003-06-13 Matt Kraai * unwind-c.c: Define NO_SIZE_OF_ENCODED_VALUE. diff --git a/gcc/reorg.c b/gcc/reorg.c index 161e7b03ab2..37a82140326 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -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 */