From 3300e46263916a8d9451de5fddb63e8bb03763d0 Mon Sep 17 00:00:00 2001 From: bernds Date: Tue, 27 Feb 2007 13:13:26 +0000 Subject: [PATCH] * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122371 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/config/bfin/bfin.md | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 838fa3fe0ec..2de3d70b2e8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-02-27 Bernd Schmidt + + * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode. + 2007-02-27 Andreas Schwab * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi. diff --git a/gcc/config/bfin/bfin.md b/gcc/config/bfin/bfin.md index 63a651a5035..6e609e8b37f 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; -- 2.11.4.GIT