bfin.md (doloop_end): FAIL if counter reg isn't SImode.

* config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.

From-SVN: r122371
This commit is contained in:
Bernd Schmidt 2007-02-27 13:13:26 +00:00 committed by Bernd Schmidt
parent daa07a06ce
commit 9b02a95e80
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
2007-02-27 Andreas Schwab <schwab@suse.de>
* Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.

View File

@ -1640,10 +1640,12 @@
(clobber (match_scratch:SI 5 ""))])]
""
{
/* The loop optimizer doesn't check the predicates... */
if (GET_MODE (operands[0]) != SImode)
FAIL;
/* Due to limitations in the hardware (an initial loop count of 0
does not loop 2^32 times) we must avoid to generate a hardware
loops when we cannot rule out this case. */
if (!flag_unsafe_loop_optimizations
&& (unsigned HOST_WIDE_INT) INTVAL (operands[2]) >= 0xFFFFFFFF)
FAIL;