aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-09-23 16:15:26 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-09-23 16:15:26 -0400
commit3c2f289c1ae0c7d3cee1ba0e2a2bca2b5736786e (patch)
tree0c89c41b74396914b14aaf1e5bbb0a1e98eea86c
parent59df2b2b6ffe4a193824b8282eeba345495b7117 (diff)
downloadgcc-3c2f289c1ae0c7d3cee1ba0e2a2bca2b5736786e.zip
gcc-3c2f289c1ae0c7d3cee1ba0e2a2bca2b5736786e.tar.gz
gcc-3c2f289c1ae0c7d3cee1ba0e2a2bca2b5736786e.tar.bz2
(check_dbra_loop): Don't assume label must be second part of
if_then_else in condjump. From-SVN: r12784
-rw-r--r--gcc/loop.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index b3c49a4..09ad338 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -6028,6 +6028,8 @@ check_dbra_loop (loop_end, insn_count, loop_start)
/* Save some info needed to produce the new insns. */
reg = bl->biv->dest_reg;
jump_label = XEXP (SET_SRC (PATTERN (PREV_INSN (loop_end))), 1);
+ if (jump_label == pc_rtx)
+ jump_label = XEXP (SET_SRC (PATTERN (PREV_INSN (loop_end))), 2);
new_add_val = GEN_INT (- INTVAL (bl->biv->add_val));
final_value = XEXP (comparison, 1);