diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-01 04:19:47 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-01 04:19:47 +0000 |
commit | 3c68ac580d9b574c4415828b4f0647e2ef0d4a07 (patch) | |
tree | f3c9fd54e6dba6819acba571e9b36b97d14db5e3 /gcc/loop.c | |
parent | 95d80c61074b26592f32e3b73222e1414d338100 (diff) | |
download | gcc-3c68ac580d9b574c4415828b4f0647e2ef0d4a07.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35404 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/loop.c b/gcc/loop.c index f812b2e4c76..20211c67297 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -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; } |