mips.md (mfhilo_[sd]i): Redefine using :GPR.
authorRichard Sandiford <rsandifo@redhat.com>
Mon, 23 Aug 2004 08:25:56 +0000 (08:25 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 23 Aug 2004 08:25:56 +0000 (08:25 +0000)
* config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
attribute.

From-SVN: r86420

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

index ee5dde575ad962c8f6c8b7323dc85cb27c0845c7..08c8713b17071a8c2fee1bfea0e5ce7d8804ed32 100644 (file)
@@ -1,3 +1,8 @@
+2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
+       attribute.
+
 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
 
        * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
index e42a607977fbff194b827b6cfdbbd0b144cea7a4..2a8ca052a464f694230189cff4f23f70b9adb485 100644 (file)
@@ -4087,23 +4087,15 @@ beq\t%2,%.,1b\;\
 ;; We cope with this by making the mflo and mfhi patterns use both HI and LO.
 ;; Operand 1 is the register we want, operand 2 is the other one.
 
-(define_insn "mfhilo_di"
-  [(set (match_operand:DI 0 "register_operand" "=d,d")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "h,l")
-                   (match_operand:DI 2 "register_operand" "l,h")]
-                  UNSPEC_MFHILO))]
-  "TARGET_64BIT"
-  "mf%1\t%0"
-  [(set_attr "type" "mfhilo")])
-
-(define_insn "mfhilo_si"
-  [(set (match_operand:SI 0 "register_operand" "=d,d")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "h,l")
-                   (match_operand:SI 2 "register_operand" "l,h")]
-                  UNSPEC_MFHILO))]
+(define_insn "mfhilo_<mode>"
+  [(set (match_operand:GPR 0 "register_operand" "=d,d")
+       (unspec:GPR [(match_operand:GPR 1 "register_operand" "h,l")
+                    (match_operand:GPR 2 "register_operand" "l,h")]
+                   UNSPEC_MFHILO))]
   ""
   "mf%1\t%0"
-  [(set_attr "type" "mfhilo")])
+  [(set_attr "type" "mfhilo")
+   (set_attr "mode" "<MODE>")])
 
 ;; Patterns for loading or storing part of a paired floating point
 ;; register.  We need them because odd-numbered floating-point registers