From 2f6025a15b2eed2f15eb1a997330f097e4814641 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 11 Mar 2008 16:48:28 +0000 Subject: re PR rtl-optimization/35281 (multiply with 0 generated for 64*32->64) 2008-03-11 Paolo Bonzini PR rtl-optimization/35281 * expr.c (convert_move): Use a new pseudo for the intermediate from_mode->word_mode result. From-SVN: r133116 --- gcc/expr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gcc/expr.c') diff --git a/gcc/expr.c b/gcc/expr.c index 300b63d..3294f1a 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -552,15 +552,15 @@ convert_move (rtx to, rtx from, int unsignedp) && ((code = can_extend_p (to_mode, word_mode, unsignedp)) != CODE_FOR_nothing)) { + rtx word_to = gen_reg_rtx (word_mode); if (REG_P (to)) { if (reg_overlap_mentioned_p (to, from)) from = force_reg (from_mode, from); emit_insn (gen_rtx_CLOBBER (VOIDmode, to)); } - convert_move (gen_lowpart (word_mode, to), from, unsignedp); - emit_unop_insn (code, to, - gen_lowpart (word_mode, to), equiv_code); + convert_move (word_to, from, unsignedp); + emit_unop_insn (code, to, word_to, equiv_code); return; } -- cgit v1.1