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
This commit is contained in:
Richard Sandiford 2004-07-15 17:59:11 +00:00 committed by Richard Sandiford
parent d5325238eb
commit f6711314fb
2 changed files with 11 additions and 6 deletions

View File

@ -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

View File

@ -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