aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2004-08-23 08:25:56 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2004-08-23 08:25:56 +0000
commite8bf0f3bacc5f3f4ae892f4df794cc23e41519b9 (patch)
treee8feeb440b6f1a9015f356b7f8ece2d5b40d04f7
parent4d06ed0a96ce09cef95f80a7b2693410fb4a5da3 (diff)
downloadgcc-e8bf0f3bacc5f3f4ae892f4df794cc23e41519b9.zip
gcc-e8bf0f3bacc5f3f4ae892f4df794cc23e41519b9.tar.gz
gcc-e8bf0f3bacc5f3f4ae892f4df794cc23e41519b9.tar.bz2
mips.md (mfhilo_[sd]i): Redefine using :GPR.
* config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode attribute. From-SVN: r86420
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.md22
2 files changed, 12 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ee5dde5..08c8713 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
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
loads and stores.
(*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index e42a607..2a8ca05 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
@@ -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