(expand_builtin): Move memory_address calls

out of arglist of emit_block_move.

From-SVN: r3460
This commit is contained in:
Richard Stallman 1993-02-11 08:56:16 +00:00
parent 0f33506ca7
commit 9937da1a0c
1 changed files with 9 additions and 8 deletions

View File

@ -6419,7 +6419,7 @@ expand_builtin (exp, target, subtarget, mode, ignore)
= get_pointer_alignment (src, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
int dest_align
= get_pointer_alignment (dest, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
rtx dest_rtx;
rtx dest_rtx, dest_mem, src_mem;
/* If either SRC or DEST is not a pointer type, don't do
this operation in-line. */
@ -6431,15 +6431,16 @@ expand_builtin (exp, target, subtarget, mode, ignore)
}
dest_rtx = expand_expr (dest, NULL_RTX, Pmode, EXPAND_NORMAL);
dest_mem = gen_rtx (MEM, BLKmode,
memory_address (BLKmode, dest_rtx));
src_mem = gen_rtx (MEM, BLKmode,
memory_address (BLKmode,
expand_expr (src, NULL_RTX,
Pmode,
EXPAND_NORMAL)));
/* Copy word part most expediently. */
emit_block_move (gen_rtx (MEM, BLKmode,
memory_address (BLKmode, dest_rtx)),
gen_rtx (MEM, BLKmode,
memory_address (BLKmode,
expand_expr (src, NULL_RTX,
Pmode,
EXPAND_NORMAL))),
emit_block_move (dest_mem, src_mem,
expand_expr (len, NULL_RTX, VOIDmode, 0),
MIN (src_align, dest_align));
return dest_rtx;