From: Richard Kenner Date: Tue, 6 Jun 1995 01:49:58 +0000 (-0400) Subject: (expand_block_move): Don't do any block moves where we clobber fixed numbers of regis... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1cab3be12477caa172c6e33cb417030af5d425c8;p=gcc.git (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 --- diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 5ae1507d01c..2adff2abd30 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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,