aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2004-07-15 17:59:11 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2004-07-15 17:59:11 +0000
commitf6711314fbb9d2d94469aafd6ae436675767afff (patch)
treec1dd271f6170f03f7ee0988b1e73eafff633e672 /gcc
parentd5325238eb0dead53af57fbdf1a8154608513393 (diff)
downloadgcc-f6711314fbb9d2d94469aafd6ae436675767afff.zip
gcc-f6711314fbb9d2d94469aafd6ae436675767afff.tar.gz
gcc-f6711314fbb9d2d94469aafd6ae436675767afff.tar.bz2
mips.md: In the mips16 li/neg splitter...
* config/mips/mips.md: In the mips16 li/neg splitter, use SImode for the destination of the li as well as for the neg. From-SVN: r84764
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.md12
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8d4a911..cd45d8a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-15 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
+ the destination of the li as well as for the neg.
+
2004-07-15 Frank Ch. Eigler <fche@redhat.com>
g++/15861
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index fa096d3..79d9060 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
@@ -4748,13 +4748,13 @@ dsrl\t%3,%3,1\n\
[(set (match_operand 0 "register_operand")
(match_operand 1 "const_int_operand"))]
"TARGET_MIPS16 && reload_completed && INTVAL (operands[1]) < 0"
- [(set (match_dup 0)
- (match_dup 2))
- (set (match_dup 3)
- (neg:SI (match_dup 3)))]
+ [(set (match_dup 2)
+ (match_dup 3))
+ (set (match_dup 2)
+ (neg:SI (match_dup 2)))]
{
- operands[2] = GEN_INT (-INTVAL (operands[1]));
- operands[3] = gen_lowpart (SImode, operands[0]);
+ operands[2] = gen_lowpart (SImode, operands[0]);
+ operands[3] = GEN_INT (-INTVAL (operands[1]));
})
;; The HI and LO registers are not truly independent. If we move an mthi