mips.md: In the mips16 li/neg splitter...
authorRichard Sandiford <rsandifo@redhat.com>
Thu, 15 Jul 2004 17:59:11 +0000 (17:59 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 15 Jul 2004 17:59:11 +0000 (17:59 +0000)
* 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

gcc/ChangeLog
gcc/config/mips/mips.md

index 8d4a911dcbda4b5130a46805835f391d196a1069..cd45d8ae9064d3c7460a7da009de1b7277b1cb7f 100644 (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
index fa096d3335754ccf2e93ef522f4468790e2a23a7..79d90609738b3024473b20760c94a70f1443cb01 100644 (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