diff options
author | Bernd Schmidt <bernd.schmidt@analog.com> | 2005-11-20 18:49:18 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2005-11-20 18:49:18 +0000 |
commit | 8b44057d9b7417293c2e9fc81bb0f355cabe83b6 (patch) | |
tree | ced326957170072ff9481ff36ed4bba3a5eb7c8e /gcc/optabs.h | |
parent | 23ffc23579daf0e63042a4952ff47317125279dd (diff) | |
download | gcc-8b44057d9b7417293c2e9fc81bb0f355cabe83b6.tar.gz |
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.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h index 582684f4038..78cf53b15ff 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]) |