bfin.md (doloop_end): FAIL if counter reg isn't SImode.
authorBernd Schmidt <bernd.schmidt@analog.com>
Tue, 27 Feb 2007 13:13:26 +0000 (13:13 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Tue, 27 Feb 2007 13:13:26 +0000 (13:13 +0000)
* config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.

From-SVN: r122371

gcc/ChangeLog
gcc/config/bfin/bfin.md

index 838fa3f..2de3d70 100644 (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.
index 63a651a..6e609e8 100644 (file)
              (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;