diff options
author | Richard Stallman <rms@gnu.org> | 1993-02-11 08:56:16 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-02-11 08:56:16 +0000 |
commit | 9937da1a0c1aee623a0076efba7b55a4d7aa5158 (patch) | |
tree | f8f04302894dbb9ab7da66586fb48c701de8500c /gcc | |
parent | 0f33506ca7bfc727f2fbb05084c0403c628d9c5d (diff) | |
download | gcc-9937da1a0c1aee623a0076efba7b55a4d7aa5158.zip gcc-9937da1a0c1aee623a0076efba7b55a4d7aa5158.tar.gz gcc-9937da1a0c1aee623a0076efba7b55a4d7aa5158.tar.bz2 |
(expand_builtin): Move memory_address calls
out of arglist of emit_block_move.
From-SVN: r3460
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/expr.c | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -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; |