aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-09-01 14:28:26 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-09-01 14:28:26 -0700
commit11a1370459e76305852e8b806fb33726449ba86e (patch)
treee3d504e5d55f54e4acc30097745f0a4e440596fc /gcc
parentf798660ee0370538e4005b6e1bd286f2af2d3ea7 (diff)
downloadgcc-11a1370459e76305852e8b806fb33726449ba86e.zip
gcc-11a1370459e76305852e8b806fb33726449ba86e.tar.gz
gcc-11a1370459e76305852e8b806fb33726449ba86e.tar.bz2
ia64.md (mulsi3): Use grfr_register_operand.
* config/ia64/ia64.md (mulsi3): Use grfr_register_operand. (madddi3): Likewise. (maddsi3): New. From-SVN: r36103
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/ia64/ia64.md21
2 files changed, 20 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3c62375..166df7a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2000-09-01 Richard Henderson <rth@cygnus.com>
+
+ * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
+ (madddi3): Likewise.
+ (maddsi3): New.
+
Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (clear_storage): Don't use emit_move_insn unless
diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md
index 59bbb0c..2bbf1a2 100644
--- a/gcc/config/ia64/ia64.md
+++ b/gcc/config/ia64/ia64.md
@@ -1372,16 +1372,23 @@
"sub %0 = %2, %1, 1"
[(set_attr "type" "A")])
-;; ??? Could add maddsi3 patterns patterned after the madddi3 patterns.
-
(define_insn "mulsi3"
[(set (match_operand:SI 0 "fr_register_operand" "=f")
- (mult:SI (match_operand:SI 1 "fr_register_operand" "f")
- (match_operand:SI 2 "nonmemory_operand" "f")))]
+ (mult:SI (match_operand:SI 1 "grfr_register_operand" "f")
+ (match_operand:SI 2 "grfr_register_operand" "f")))]
""
"xma.l %0 = %1, %2, f0%B0"
[(set_attr "type" "F")])
+(define_insn "*maddsi3"
+ [(set (match_operand:SI 0 "fr_register_operand" "=f")
+ (plus:SI (mult:SI (match_operand:SI 1 "grfr_register_operand" "f")
+ (match_operand:SI 2 "grfr_register_operand" "f"))
+ (match_operand:SI 3 "grfr_register_operand" "f")))]
+ ""
+ "xma.l %0 = %1, %2, %3%B0"
+ [(set_attr "type" "F")])
+
(define_insn "negsi2"
[(set (match_operand:SI 0 "gr_register_operand" "=r")
(neg:SI (match_operand:SI 1 "gr_register_operand" "r")))]
@@ -1532,9 +1539,9 @@
(define_insn "*madddi3"
[(set (match_operand:DI 0 "fr_register_operand" "=f")
- (plus:DI (mult:DI (match_operand:DI 1 "fr_register_operand" "f")
- (match_operand:DI 2 "fr_register_operand" "f"))
- (match_operand:DI 3 "fr_register_operand" "f")))
+ (plus:DI (mult:DI (match_operand:DI 1 "grfr_register_operand" "f")
+ (match_operand:DI 2 "grfr_register_operand" "f"))
+ (match_operand:DI 3 "grfr_register_operand" "f")))
(clobber (match_scratch:DI 4 "=X"))]
""
"xma.l %0 = %1, %2, %3%B0"