Commit 9e8b2461 by Richard Kenner

(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
parent 1324c5de
...@@ -3972,6 +3972,17 @@ relax_delay_slots (first) ...@@ -3972,6 +3972,17 @@ relax_delay_slots (first)
if (invert_jump (delay_insn, label)) 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); delete_insn (next);
next = insn; next = insn;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment