ia64.md (mulsi3): Use grfr_register_operand.
authorRichard Henderson <rth@cygnus.com>
Fri, 1 Sep 2000 21:28:26 +0000 (14:28 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 1 Sep 2000 21:28:26 +0000 (14:28 -0700)
        * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
        (madddi3): Likewise.
        (maddsi3): New.

From-SVN: r36103

gcc/ChangeLog
gcc/config/ia64/ia64.md

index 3c62375d3f1a138bb31bfad48bfdf4f51640add1..166df7a50d044a3cd24c36bbc60c8a655389e39f 100644 (file)
@@ -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
index 59bbb0c43af770b7a7c1899272a24a8433bc3945..2bbf1a221042f3ac4634caaefa7ae7f3f1b9f34f 100644 (file)
   "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")))]
 
 (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"