diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5012177..2aa5536 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-10-21 Jozef Lawrynowicz <jozef.l@mittosystems.com> + + * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding + widening multiplication. + 2019-10-21 Richard Earnshaw <rearnsha@arm.com> * config/arm/iterators.md (t2_binop0): Fix typo in comment. @@ -8954,9 +8954,6 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode, != INTEGER_CST check. Handle it. */ if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode) goto widen_mult_const; - if (TREE_CODE (treeop1) == INTEGER_CST) - op1 = convert_modes (mode, word_mode, op1, - TYPE_UNSIGNED (TREE_TYPE (treeop1))); temp = expand_binop (mode, other_optab, op0, op1, target, unsignedp, OPTAB_LIB_WIDEN); hipart = gen_highpart (word_mode, temp); |