summaryrefslogtreecommitdiff
path: root/gcc/config/m68k/m68k.md
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1997-03-25 19:50:42 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1997-03-25 19:50:42 +0000
commita5667aaa5e117ff61eb2d47f492e902ed8a99632 (patch)
treef768965df28cfe1ea7146f7745a5d65bba46d14d /gcc/config/m68k/m68k.md
parentc0039eb0bb8be2c725143b2dd8d0b98eebe893e3 (diff)
downloadgcc-a5667aaa5e117ff61eb2d47f492e902ed8a99632.tar.gz
(mulsi3): Changed into define_expand. Split insn into m68k and
coldfire specific versions with appropriate constraints. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13798 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k/m68k.md')
-rw-r--r--gcc/config/m68k/m68k.md18
1 files changed, 16 insertions, 2 deletions
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 51a8075ae31..31e9a48d3f6 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -2890,11 +2890,25 @@
#endif
}")
-(define_insn "mulsi3"
+(define_expand "mulsi3"
+ [(set (match_operand:SI 0 "general_operand" "")
+ (mult:SI (match_operand:SI 1 "general_operand" "")
+ (match_operand:SI 2 "general_operand" "")))]
+ "TARGET_68020 || TARGET_5200"
+ "")
+
+(define_insn ""
[(set (match_operand:SI 0 "general_operand" "=d")
(mult:SI (match_operand:SI 1 "general_operand" "%0")
(match_operand:SI 2 "general_operand" "dmsK")))]
- "TARGET_68020 || TARGET_5200"
+ "TARGET_68020"
+ "muls%.l %2,%0")
+
+(define_insn ""
+ [(set (match_operand:SI 0 "general_operand" "=d")
+ (mult:SI (match_operand:SI 1 "general_operand" "%0")
+ (match_operand:SI 2 "general_operand" "d<>")))]
+ "TARGET_5200"
"muls%.l %2,%0")
(define_insn "umulhisi3"