aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i960
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1993-01-26 15:22:13 -0800
committerJim Wilson <wilson@gcc.gnu.org>1993-01-26 15:22:13 -0800
commit9116497e24cabce51f2070bf8e754e63263c3965 (patch)
tree0e543d04c30dea68e6d8df6518e6dd3e48bccdd0 /gcc/config/i960
parent590d6f8e984fb41ce493f959c5344534f61aa4e8 (diff)
downloadgcc-9116497e24cabce51f2070bf8e754e63263c3965.zip
gcc-9116497e24cabce51f2070bf8e754e63263c3965.tar.gz
gcc-9116497e24cabce51f2070bf8e754e63263c3965.tar.bz2
(umulsidi3+1): Add variant which accepts constants.
From-SVN: r3353
Diffstat (limited to 'gcc/config/i960')
-rw-r--r--gcc/config/i960/i960.md13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/config/i960/i960.md b/gcc/config/i960/i960.md
index 8a42206..33c5d95 100644
--- a/gcc/config/i960/i960.md
+++ b/gcc/config/i960/i960.md
@@ -1494,6 +1494,19 @@
}"
[(set_attr "type" "mult")])
+(define_insn ""
+ [(set (match_operand:DI 0 "register_operand" "=d")
+ (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "%d"))
+ (match_operand:SI 2 "literal" "I"))))]
+ ""
+ "*
+{
+ if (i960_bypass (insn, operands[1], operands[2], 0))
+ return \"emul %2,%1,%0\";
+ return \"emul %1,%2,%0\";
+}"
+ [(set_attr "type" "mult")])
+
;; This goes after the move/add/sub/mul instructions
;; because those instructions are better when they apply.