Hello Richard,
On Jun 25, 2012, at 20:36 , Richard Henderson wrote:
> Can you explain the sequence that results in multiple memory
> references? Because I can't see how it can...
Compared to the point at which we were observing the problem,
the code has changed a bit in this area though not so much.
In the current mainline, this would be from the two uses of
"lowfrom" in:
/* Get a copy of FROM widened to a word, if necessary. */
...
lowfrom = convert_to_mode (lowpart_mode, from, unsignedp);
lowpart = gen_lowpart (lowpart_mode, to);
==> emit_move_insn (lowpart, lowfrom);
/* Compute the value to put in each remaining word. */
if (unsignedp)
fill_value = const0_rtx;
else
fill_value = emit_store_flag (gen_reg_rtx (word_mode),
==> LT, lowfrom, const0_rtx,
VOIDmode, 0, -1);