aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@cambridge.redhat.com>2002-01-11 16:15:36 +0000
committerNick Clifton <nickc@gcc.gnu.org>2002-01-11 16:15:36 +0000
commit96ae8197d279fbb1d801ae88ff36ca963b5e741a (patch)
treee7d7365066ab86350e372b03a0302f18cbd5ba84
parent9b78058234e46b63a561443a0ce26ee0461d01b1 (diff)
downloadgcc-96ae8197d279fbb1d801ae88ff36ca963b5e741a.zip
gcc-96ae8197d279fbb1d801ae88ff36ca963b5e741a.tar.gz
gcc-96ae8197d279fbb1d801ae88ff36ca963b5e741a.tar.bz2
Correct test of 'remainder' and 'subtargets'.
From-SVN: r48776
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e68eab..bad4bcb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-01-11 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
+ and 'subtargets'.
+
2002-01-11 Andreas Jaeger <aj@suse.de>,
Brad Lucier <lucier@math.purdue.edu>
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 76ce21c..7cad98b 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -1631,15 +1631,15 @@ arm_gen_constant (code, mode, val, target, source, subtargets, generate)
if (code == SET || code == MINUS)
{
new_src = (subtargets ? gen_reg_rtx (mode) : target);
- if (can_invert)
+ if (can_invert && code != MINUS)
temp1 = ~temp1;
}
else
{
- if (remainder || !subtargets)
- new_src = target;
- else
+ if (remainder && subtargets)
new_src = gen_reg_rtx (mode);
+ else
+ new_src = target;
if (can_invert)
temp1 = ~temp1;
else if (can_negate)