Commit 0e5bad53 by Jeff Law

reorg.c (optimize_skip): Do not thread a jump to a new target if doing so would…

reorg.c (optimize_skip): Do not thread a jump to a new target if doing so would invalidate the insn in...

        * reorg.c (optimize_skip): Do not thread a jump to a new
        target if doing so would invalidate the insn in the jump's
        delay slot.

From-SVN: r5540
parent 56ae2659
...@@ -1157,6 +1157,13 @@ optimize_skip (insn) ...@@ -1157,6 +1157,13 @@ optimize_skip (insn)
target_label = JUMP_LABEL (next_trial); target_label = JUMP_LABEL (next_trial);
if (target_label == 0) if (target_label == 0)
target_label = find_end_label (); target_label = find_end_label ();
/* Recompute the flags based on TARGET_LABEL since threading
the jump to TARGET_LABEL may change the direction of the
jump (which may change the circumstances in which the
delay slot is nullified). */
flags = get_jump_flags (insn, target_label);
if (eligible_for_annul_true (insn, 0, trial, flags))
reorg_redirect_jump (insn, target_label); reorg_redirect_jump (insn, target_label);
} }
......
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