aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@analog.com>2007-02-27 13:13:26 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2007-02-27 13:13:26 +0000
commit9b02a95e8022dca224a076d3ab818ee495f70ecb (patch)
treeec3bba3dd23303d2d3f1fd15ced9127c3c5130c5
parentdaa07a06ced04ba1a57b17b635451c550afe39ba (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/config/bfin/bfin.md4
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;