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
This commit is contained in:
Jeffrey A Law 2000-08-01 04:19:47 +00:00 committed by Jeff Law
parent 68c8d8ce93
commit 7905cfefe1
2 changed files with 11 additions and 2 deletions

View File

@ -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

View File

@ -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;
}