From: Jeff Law Date: Fri, 1 Jul 1994 23:29:06 +0000 (-0600) Subject: reorg.c (make_return_insns): Make sure redirecting a jump to a RETURN insn does not... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=18beb3e99697d66f252e98d717fcdfb14b1f1403;p=gcc.git reorg.c (make_return_insns): Make sure redirecting a jump to a RETURN insn does not invalidate the delay... * reorg.c (make_return_insns): Make sure redirecting a jump to a RETURN insn does not invalidate the delay slots of the jump. From-SVN: r7639 --- diff --git a/gcc/reorg.c b/gcc/reorg.c index 343f4b7035d..4082ad8de51 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -3980,11 +3980,16 @@ make_return_insns (first) pat = PATTERN (insn); jump_insn = XVECEXP (pat, 0, 0); - /* If we can't make the jump into a RETURN, redirect it to the best + /* If we can't make the jump into a RETURN, try to redirect it to the best RETURN and go on to the next insn. */ if (! reorg_redirect_jump (jump_insn, NULL_RTX)) { - reorg_redirect_jump (jump_insn, real_return_label); + /* Make sure redirecting the jump will not invalidate the delay + slot insns. */ + if (redirect_with_delay_slots_safe_p (jump_insn, + real_return_label, + insn)) + reorg_redirect_jump (jump_insn, real_return_label); continue; }