From 11a1370459e76305852e8b806fb33726449ba86e Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Fri, 1 Sep 2000 14:28:26 -0700 Subject: [PATCH] ia64.md (mulsi3): Use grfr_register_operand. * config/ia64/ia64.md (mulsi3): Use grfr_register_operand. (madddi3): Likewise. (maddsi3): New. From-SVN: r36103 --- gcc/ChangeLog | 6 ++++++ gcc/config/ia64/ia64.md | 21 ++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3c62375d3f1..166df7a50d0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-09-01 Richard Henderson + + * config/ia64/ia64.md (mulsi3): Use grfr_register_operand. + (madddi3): Likewise. + (maddsi3): New. + Fri Sep 1 10:59:47 2000 Richard Kenner * 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 59bbb0c43af..2bbf1a22104 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"