diff options
author | Michael Meissner <meissner@gcc.gnu.org> | 1995-12-15 00:23:39 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 1995-12-15 00:23:39 +0000 |
commit | 8106dc08326b97c77ade099fa8704d6e73073fd8 (patch) | |
tree | 453b002e04fe70db358594ccaba32a8b016647ba | |
parent | 34f016ed1f9ab59baa74e2b429b25e6d9ce9e80d (diff) | |
download | gcc-8106dc08326b97c77ade099fa8704d6e73073fd8.zip gcc-8106dc08326b97c77ade099fa8704d6e73073fd8.tar.gz gcc-8106dc08326b97c77ade099fa8704d6e73073fd8.tar.bz2 |
Fixes from Torbjorn/Dje
From-SVN: r10728
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 16 |
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 "" |