diff options
author | Bernd Schmidt <bernd.schmidt@analog.com> | 2007-02-27 13:13:26 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2007-02-27 13:13:26 +0000 |
commit | 9b02a95e8022dca224a076d3ab818ee495f70ecb (patch) | |
tree | ec3bba3dd23303d2d3f1fd15ced9127c3c5130c5 | |
parent | daa07a06ced04ba1a57b17b635451c550afe39ba (diff) | |
download | gcc-9b02a95e8022dca224a076d3ab818ee495f70ecb.zip gcc-9b02a95e8022dca224a076d3ab818ee495f70ecb.tar.gz gcc-9b02a95e8022dca224a076d3ab818ee495f70ecb.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.md | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 838fa3f..2de3d70 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/config/bfin/bfin.md b/gcc/config/bfin/bfin.md index 63a651a..6e609e8 100644 --- a/gcc/config/bfin/bfin.md +++ b/gcc/config/bfin/bfin.md @@ -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; |