The recent changes to the move_by_pieces API were slightly incomplete. They failed to update the mips and microblaze ports (there may be others, that's what has complained so far).
This patch fixes the microblaze port. I've verified we can build it through libgcc. The tester will run a more complete build later today. Committed to the trunk. I'll be fixing the MIPS port momentarily. Jeff
* config/microblaze/microblaze.c (microblaze_block_move_straight): Use RETURN_BEGIN in call to move_by_pieces. (microblaze_expand_block_move): Likewise. diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c index 06aa50e2556..6c4a62c3113 100644 --- a/gcc/config/microblaze/microblaze.c +++ b/gcc/config/microblaze/microblaze.c @@ -1180,7 +1180,7 @@ microblaze_block_move_straight (rtx dest, rtx src, HOST_WIDE_INT length) src = adjust_address (src, BLKmode, offset); dest = adjust_address (dest, BLKmode, offset); move_by_pieces (dest, src, length - offset, - MIN (MEM_ALIGN (src), MEM_ALIGN (dest)), 0); + MIN (MEM_ALIGN (src), MEM_ALIGN (dest)), RETURN_BEGIN); } } @@ -1269,7 +1269,7 @@ microblaze_expand_block_move (rtx dest, rtx src, rtx length, rtx align_rtx) { if (INTVAL (length) <= MAX_MOVE_BYTES) { - move_by_pieces (dest, src, bytes, align, 0); + move_by_pieces (dest, src, bytes, align, RETURN_BEGIN); return true; } else