aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2004-08-24 19:53:32 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2004-08-24 19:53:32 +0000
commitbe659abd840dffa23f750638381ab0f1251b735d (patch)
treed029945d2f6954af512c28767ae700f3f8591e41
parent92dcb88270268c66c7394e2254ebfa0872fcfe7f (diff)
downloadgcc-be659abd840dffa23f750638381ab0f1251b735d.zip
gcc-be659abd840dffa23f750638381ab0f1251b735d.tar.gz
gcc-be659abd840dffa23f750638381ab0f1251b735d.tar.bz2
mips.md (load_call[sd]i): Redefine using :P.
* config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode attribute. From-SVN: r86510
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.md26
2 files changed, 13 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e2c252f..4af8dcf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+ * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
+ attribute.
+
+2004-08-24 Richard Sandiford <rsandifo@redhat.com>
+
* config/mips/mips.md (indirect_jump): Use force_reg. Adjust names
of internal patterns.
(indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index 739307c..251ec68 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
@@ -5720,26 +5720,16 @@ beq\t%2,%.,1b\;\
;; acts like a GOT version number. By making the register call-clobbered,
;; we tell the target-independent code that the address could be changed
;; by any call insn.
-(define_insn "load_callsi"
- [(set (match_operand:SI 0 "register_operand" "=c")
- (unspec:SI [(match_operand:SI 1 "register_operand" "r")
- (match_operand:SI 2 "immediate_operand" "")
- (reg:SI FAKE_CALL_REGNO)]
- UNSPEC_LOAD_CALL))]
+(define_insn "load_call<mode>"
+ [(set (match_operand:P 0 "register_operand" "=c")
+ (unspec:P [(match_operand:P 1 "register_operand" "r")
+ (match_operand:P 2 "immediate_operand" "")
+ (reg:P FAKE_CALL_REGNO)]
+ UNSPEC_LOAD_CALL))]
"TARGET_ABICALLS"
- "lw\t%0,%R2(%1)"
- [(set_attr "type" "load")
- (set_attr "length" "4")])
-
-(define_insn "load_calldi"
- [(set (match_operand:DI 0 "register_operand" "=c")
- (unspec:DI [(match_operand:DI 1 "register_operand" "r")
- (match_operand:DI 2 "immediate_operand" "")
- (reg:DI FAKE_CALL_REGNO)]
- UNSPEC_LOAD_CALL))]
- "TARGET_ABICALLS"
- "ld\t%0,%R2(%1)"
+ "<load>\t%0,%R2(%1)"
[(set_attr "type" "load")
+ (set_attr "mode" "<MODE>")
(set_attr "length" "4")])
;; Sibling calls. All these patterns use jump instructions.