diff options
author | Jeffrey A Law <law@cygnus.com> | 2000-08-01 04:19:47 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2000-07-31 22:19:47 -0600 |
commit | 7905cfefe15c4a2c43803219af5d353252eef9d8 (patch) | |
tree | f3c9fd54e6dba6819acba571e9b36b97d14db5e3 /gcc/loop.c | |
parent | 68c8d8ce93dd689350341b5586e13b11d2d169dd (diff) | |
download | gcc-7905cfefe15c4a2c43803219af5d353252eef9d8.zip gcc-7905cfefe15c4a2c43803219af5d353252eef9d8.tar.gz gcc-7905cfefe15c4a2c43803219af5d353252eef9d8.tar.bz2 |
loop.c (check_dbra_loop): Make change from July 17...
* loop.c (check_dbra_loop): Make change from July 17, 2000 work
on targets which need more than one insn for a compare/cbranch
operation.
From-SVN: r35404
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -7788,10 +7788,13 @@ check_dbra_loop (loop, insn_count) { /* If more than one condition is present to control the loop, then do not proceed, as this function does not know how to rewrite - loop tests with more than one condition. */ + loop tests with more than one condition. + + Look backwards from the first insn in the last comparison + sequence and see if we've got another comparison sequence. */ rtx jump1; - if ((jump1 = prev_nonnote_insn (jump)) != loop->cont) + if ((jump1 = prev_nonnote_insn (first_compare)) != loop->cont) if (GET_CODE (jump1) == JUMP_INSN) return 0; } |