diff options
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/loop.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c9d309..7c24fda 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com) + + * 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. + 2000-07-31 Jim Wilson <wilson@cygnus.com> * config/ia64/ia64.c (ia64_function_arg): Use alignment not size @@ -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; } |
