aboutsummaryrefslogtreecommitdiff
path: root/gcc/optabs.h
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@analog.com>2005-11-20 18:49:18 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2005-11-20 18:49:18 +0000
commit8b44057d9b7417293c2e9fc81bb0f355cabe83b6 (patch)
treeced326957170072ff9481ff36ed4bba3a5eb7c8e /gcc/optabs.h
parent23ffc23579daf0e63042a4952ff47317125279dd (diff)
downloadgcc-8b44057d9b7417293c2e9fc81bb0f355cabe83b6.zip
gcc-8b44057d9b7417293c2e9fc81bb0f355cabe83b6.tar.gz
gcc-8b44057d9b7417293c2e9fc81bb0f355cabe83b6.tar.bz2
expr.c (expand_expr_real): Use usmul_optab for widening signed * unsigned multiplies.
* expr.c (expand_expr_real): Use usmul_optab for widening signed * unsigned multiplies. * genopinit.c (optabs): Add usmul_widen_optab. * optabs.c (init_optabs): Likewise. * optabs.h (enum optab_index): Add OTI_usmul_widen. (usmul_widen_optab): Define. * config/bfin/bfin.md (usmulhisi3): New pattern. * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document. From-SVN: r107258
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r--gcc/optabs.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h
index 582684f..78cf53b 100644
--- a/gcc/optabs.h
+++ b/gcc/optabs.h
@@ -82,6 +82,8 @@ enum optab_index
/* Signed multiply with result one machine mode wider than args */
OTI_smul_widen,
OTI_umul_widen,
+ /* Widening multiply of one unsigned and one signed operand. */
+ OTI_usmul_widen,
/* Signed divide */
OTI_sdiv,
@@ -268,6 +270,7 @@ extern GTY(()) optab optab_table[OTI_MAX];
#define umul_highpart_optab (optab_table[OTI_umul_highpart])
#define smul_widen_optab (optab_table[OTI_smul_widen])
#define umul_widen_optab (optab_table[OTI_umul_widen])
+#define usmul_widen_optab (optab_table[OTI_usmul_widen])
#define sdiv_optab (optab_table[OTI_sdiv])
#define smulv_optab (optab_table[OTI_smulv])
#define sdivv_optab (optab_table[OTI_sdivv])