From: Richard Kenner Date: Wed, 16 Nov 1994 00:33:56 +0000 (-0500) Subject: (relax_delay_slots): When invert a conditional jump over a single unconditional jump... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9e8b2461bd1f8b308ca1d0fe406e46a97822316c;p=gcc.git (relax_delay_slots): When invert a conditional jump over a single unconditional jump... (relax_delay_slots): When invert a conditional jump over a single unconditional jump, invert the INSN_FROM_TARGET_P bit of insns in the delay slots. From-SVN: r8452 --- diff --git a/gcc/reorg.c b/gcc/reorg.c index ec21a350382..cd7d6528f24 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -3972,6 +3972,17 @@ relax_delay_slots (first) if (invert_jump (delay_insn, label)) { + int i; + + /* Must update the INSN_FROM_TARGET_P bits now that + the branch is reversed, so that mark_target_live_regs + will handle the delay slot insn correctly. */ + for (i = 1; i < XVECLEN (PATTERN (insn), 0); i++) + { + rtx slot = XVECEXP (PATTERN (insn), 0, i); + INSN_FROM_TARGET_P (slot) = ! INSN_FROM_TARGET_P (slot); + } + delete_insn (next); next = insn; }