Commit 2f6025a1 by Paolo Bonzini Committed by Paolo Bonzini

re PR rtl-optimization/35281 (multiply with 0 generated for 64*32->64)

2008-03-11  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/35281
	* expr.c (convert_move): Use a new pseudo for the intermediate
	from_mode->word_mode result.

From-SVN: r133116
parent 30e257e5
2008-03-11 Paolo Bonzini <bonzini@gnu.org> 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
PR rtl-optimization/35281
* expr.c (convert_move): Use a new pseudo for the intermediate
from_mode->word_mode result.
2008-03-11 Paolo Bonzini <bonzini@gnu.org>
* langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete. * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
* langhooks.h (struct lang_hooks): Delete clear_binding_stack member. * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
* toplev.c (compile_file): Don't call it. * toplev.c (compile_file): Don't call it.
......
...@@ -552,15 +552,15 @@ convert_move (rtx to, rtx from, int unsignedp) ...@@ -552,15 +552,15 @@ convert_move (rtx to, rtx from, int unsignedp)
&& ((code = can_extend_p (to_mode, word_mode, unsignedp)) && ((code = can_extend_p (to_mode, word_mode, unsignedp))
!= CODE_FOR_nothing)) != CODE_FOR_nothing))
{ {
rtx word_to = gen_reg_rtx (word_mode);
if (REG_P (to)) if (REG_P (to))
{ {
if (reg_overlap_mentioned_p (to, from)) if (reg_overlap_mentioned_p (to, from))
from = force_reg (from_mode, from); from = force_reg (from_mode, from);
emit_insn (gen_rtx_CLOBBER (VOIDmode, to)); emit_insn (gen_rtx_CLOBBER (VOIDmode, to));
} }
convert_move (gen_lowpart (word_mode, to), from, unsignedp); convert_move (word_to, from, unsignedp);
emit_unop_insn (code, to, emit_unop_insn (code, to, word_to, equiv_code);
gen_lowpart (word_mode, to), equiv_code);
return; return;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment