From 8c118062e37d36e8dee625706408e811c933ba91 Mon Sep 17 00:00:00 2001 From: Geoff Keating Date: Sun, 13 Aug 2000 17:01:54 +0000 Subject: [PATCH] expr.c (expand_expr): Call convert_modes when turning a large multiply into a small one. * expr.c (expand_expr): Call convert_modes when turning a large multiply into a small one. From-SVN: r35662 --- gcc/ChangeLog | 7 ++++++- gcc/expr.c | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cc284f2e39e6..47a633d918ab 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,9 @@ -2000-05-13 Geoffrey Keating +2000-08-13 Geoff Keating + + * expr.c (expand_expr): Call convert_modes when turning a large + multiply into a small one. + +2000-08-12 Geoff Keating * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of the tree structure an exponent rather than an explicit alignment diff --git a/gcc/expr.c b/gcc/expr.c index 0c609c2eaeb6..5a3c303fa4b4 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -7473,8 +7473,10 @@ expand_expr (exp, target, tmode, modifier) op0 = expand_expr (TREE_OPERAND (TREE_OPERAND (exp, 0), 0), NULL_RTX, VOIDmode, 0); if (TREE_CODE (TREE_OPERAND (exp, 1)) == INTEGER_CST) - op1 = expand_expr (TREE_OPERAND (exp, 1), NULL_RTX, - VOIDmode, 0); + op1 = convert_modes (innermode, mode, + expand_expr (TREE_OPERAND (exp, 1), + NULL_RTX, VOIDmode, 0), + unsignedp); else op1 = expand_expr (TREE_OPERAND (TREE_OPERAND (exp, 1), 0), NULL_RTX, VOIDmode, 0);