From 1cab3be12477caa172c6e33cb417030af5d425c8 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Mon, 5 Jun 1995 21:49:58 -0400 Subject: [PATCH] (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 --- gcc/config/rs6000/rs6000.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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, -- 2.30.2