Commit 1cab3be1 by Richard Kenner

(expand_block_move): Don't do any block moves where we clobber fixed numbers of registers...

(expand_block_move): Don't do any block moves where we clobber fixed
numbers of registers, instead move just 1-8 bytes at a time.

From-SVN: r9884
parent 025cc923
......@@ -687,7 +687,7 @@ expand_block_move (operands)
then don't generate more than 8 loads. */
if (TARGET_STRING)
{
if (bytes > 64)
if (bytes > 4*8)
return 0;
}
else if (!STRICT_ALIGNMENT)
......@@ -706,6 +706,8 @@ expand_block_move (operands)
{
for ( ; bytes > 0; bytes -= move_bytes)
{
#if 0
/* XXX Don't move so many bytes right now, it causes the compiler to not bootstrap */
if (bytes > 24 /* move up to 32 bytes at a time */
&& !fixed_regs[5]
&& !fixed_regs[6]
......@@ -748,7 +750,9 @@ expand_block_move (operands)
GEN_INT (move_bytes),
align_rtx));
}
else if (bytes > 4 && !TARGET_64BIT)
else
#endif
if (bytes > 4 && !TARGET_64BIT)
{ /* move up to 8 bytes at a time */
move_bytes = (bytes > 8) ? 8 : bytes;
emit_insn (gen_movstrsi_2reg (dest_reg,
......
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