diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2004-07-15 17:59:11 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2004-07-15 17:59:11 +0000 |
commit | f6711314fbb9d2d94469aafd6ae436675767afff (patch) | |
tree | c1dd271f6170f03f7ee0988b1e73eafff633e672 /gcc | |
parent | d5325238eb0dead53af57fbdf1a8154608513393 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.md | 12 |
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 |