aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1995-12-15 00:23:39 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1995-12-15 00:23:39 +0000
commit8106dc08326b97c77ade099fa8704d6e73073fd8 (patch)
tree453b002e04fe70db358594ccaba32a8b016647ba
parent34f016ed1f9ab59baa74e2b429b25e6d9ce9e80d (diff)
downloadgcc-8106dc08326b97c77ade099fa8704d6e73073fd8.zip
gcc-8106dc08326b97c77ade099fa8704d6e73073fd8.tar.gz
gcc-8106dc08326b97c77ade099fa8704d6e73073fd8.tar.bz2
Fixes from Torbjorn/Dje
From-SVN: r10728
-rw-r--r--gcc/config/rs6000/rs6000.md16
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 8c41bec..f3b10f0 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -3715,6 +3715,20 @@
[(set_attr "type" "imul")
(set_attr "length" "8")])
+(define_insn "umulsidi3"
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=&r")
+ (mult:DI (zero_extend:DI (match_operand:SI 1 "gpc_reg_operand" "%r"))
+ (zero_extend:DI (match_operand:SI 2 "gpc_reg_operand" "r"))))]
+ "TARGET_POWERPC && ! TARGET_POWERPC64"
+ "*
+{
+ return (WORDS_BIG_ENDIAN)
+ ? \"mulhwu %0,%1,%2\;mullw %L0,%1,%2\"
+ : \"mulhwu %L0,%1,%2\;mullw %0,%1,%2\";
+}"
+ [(set_attr "type" "imul")
+ (set_attr "length" "8")])
+
(define_expand "smulsi3_highpart"
[(set (match_operand:SI 0 "gpc_reg_operand" "")
(truncate:SI
@@ -7206,7 +7220,7 @@
""
"@
{sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;nand %0,%0,%0
- {sfi|subfic} %0,%1,-1\;a%I2 %0,%0,%2\;{sfe|subfe} %0,%0,%0"
+ {sfi|subfic} %0,%1,-1\;{a%I2|add%I2c} %0,%0,%2\;{sfe|subfe} %0,%0,%0"
[(set_attr "length" "12")])
(define_insn ""