OSDN Git Service

* config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Jul 2004 17:59:11 +0000 (17:59 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Jul 2004 17:59:11 +0000 (17:59 +0000)
the destination of the li as well as for the neg.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84764 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 8d4a911..cd45d8a 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 fa096d3..79d9060 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