aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2004-06-23 10:39:50 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2004-06-23 10:39:50 +0000
commit97358092a486fda247a0e3bcd72cb2a1ab6f45d0 (patch)
treeca9e926d7ce307ef13d78ece0fb0fa473380de14
parent1c020272cec98dfc13206f9247da9adac0ab0ad8 (diff)
downloadgcc-97358092a486fda247a0e3bcd72cb2a1ab6f45d0.zip
gcc-97358092a486fda247a0e3bcd72cb2a1ab6f45d0.tar.gz
gcc-97358092a486fda247a0e3bcd72cb2a1ab6f45d0.tar.bz2
re PR target/15927 (THUMB -O2: strength-reduced iteration variable ends up off by 1)
PR target/15927 * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary reload if CLASS is BASE_REGS. From-SVN: r83548
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.h2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8bcc51e..534cfae 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-06-23 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/15927
+ * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
+ reload if CLASS is BASE_REGS.
+
2004-06-23 Richard Sandiford <rsandifo@redhat.com>
* gengtype-yacc.y (option): Avoid use of non-constant struct
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 21a5d60..736934b 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -1322,7 +1322,7 @@ enum reg_class
: NO_REGS)
#define THUMB_SECONDARY_OUTPUT_RELOAD_CLASS(CLASS, MODE, X) \
- ((CLASS) != LO_REGS \
+ ((CLASS) != LO_REGS && (CLASS) != BASE_REGS \
? ((true_regnum (X) == -1 ? LO_REGS \
: (true_regnum (X) + HARD_REGNO_NREGS (0, MODE) > 8) ? LO_REGS \
: NO_REGS)) \