summaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-01 00:20:13 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-01 00:20:13 +0000
commit0663398065295b8b03266c3f4a1df130d6bdf712 (patch)
treead8920def875a4093b66cd5ff53f14ecb758f32a /gcc/expmed.c
parent58f70b5c59a190feb5fb0b1beb8ee9b6dad292ef (diff)
downloadgcc-0663398065295b8b03266c3f4a1df130d6bdf712.tar.gz
* expr.c (convert_move): When a partial_int requires multiple
conversion steps, make sure successive steps convert the intermediate value, not the original value. * expmed.c (expand_mult): Convert partial_int multiplies to shift/add combinations too. * genmodes.c (mode_data): Add wider_2x. (calc_wider_mode): Calculate twice-wider mode too. (emit_mode_wider): Emit twice-wider mode too. * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New. * expr.c (expand_expr_real_1): Use it for expanding multiplies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100414 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index c814233d24c..ff8c278ced3 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -3030,7 +3030,7 @@ expand_mult (enum machine_mode mode, rtx op0, rtx op1, rtx target,
/* These are the operations that are potentially turned into a sequence
of shifts and additions. */
- if (GET_MODE_CLASS (mode) == MODE_INT
+ if (SCALAR_INT_MODE_P (mode)
&& (unsignedp || !flag_trapv))
{
HOST_WIDE_INT coeff = 0;