From 8b44057d9b7417293c2e9fc81bb0f355cabe83b6 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Sun, 20 Nov 2005 18:49:18 +0000 Subject: 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 --- gcc/optabs.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gcc/optabs.h') 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]) -- cgit v1.1