diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-20 18:49:18 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-20 18:49:18 +0000 |
commit | 8f0c8a8b1d184a7d759f6736cddd5d7a485a908b (patch) | |
tree | ced326957170072ff9481ff36ed4bba3a5eb7c8e /gcc/optabs.h | |
parent | 77f8ffcbeff911eeb82431db33383c102ee556a5 (diff) | |
download | gcc-8f0c8a8b1d184a7d759f6736cddd5d7a485a908b.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107258 138bc75d-0d04-0410-961f-82ee72b054a4
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]) |