diff options
author | Richard Henderson <rth@redhat.com> | 2002-08-29 12:20:01 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-08-29 12:20:01 -0700 |
commit | 44bb111a78b9636b80d4b40ef57b8b47a375c525 (patch) | |
tree | 44fb6efc1ab10d4d91c0a9304f749fed8e7f2159 /gcc/builtins.c | |
parent | 08b3d1047a7cbcfc963e45063b763c38128374fc (diff) | |
download | gcc-44bb111a78b9636b80d4b40ef57b8b47a375c525.zip gcc-44bb111a78b9636b80d4b40ef57b8b47a375c525.tar.gz gcc-44bb111a78b9636b80d4b40ef57b8b47a375c525.tar.bz2 |
expr.h (enum block_op_methods): New.
* expr.h (enum block_op_methods): New.
(emit_block_move): Update prototype.
* expr.c (block_move_libcall_safe_for_call_parm): New.
(emit_block_move_via_loop): New.
(emit_block_move): Use them. New argument METHOD.
(emit_push_insn): Always respect the given alignment.
(expand_assignment): Update call to emit_block_move.
(store_expr, store_field, expand_expr): Likewise.
* builtins.c (expand_builtin_apply): Likewise.
(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
* function.c (expand_function_end): Likewise.
* config/sh/sh.c (sh_initialize_trampoline): Likewise.
* config/sparc/sparc.c (sparc_va_arg): Likewise.
* calls.c (expand_call, emit_library_call_value_1): Likewise.
(save_fixed_argument_area): Use emit_block_move with
BLOCK_OP_CALL_PARM instead of move_by_pieces.
(restore_fixed_argument_area): Likewise.
(store_one_arg): Fix alignment parameter to emit_push_insn.
From-SVN: r56661
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index a295a9a..b2ad537 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -1225,7 +1225,7 @@ expand_builtin_apply (function, arguments, argsize) set_mem_align (dest, PARM_BOUNDARY); src = gen_rtx_MEM (BLKmode, incoming_args); set_mem_align (src, PARM_BOUNDARY); - emit_block_move (dest, src, argsize); + emit_block_move (dest, src, argsize, BLOCK_OP_NORMAL); /* Refer to the argument block. */ apply_args_size (); @@ -2000,7 +2000,8 @@ expand_builtin_memcpy (arglist, target, mode) set_mem_align (src_mem, src_align); /* Copy word part most expediently. */ - dest_addr = emit_block_move (dest_mem, src_mem, len_rtx); + dest_addr = emit_block_move (dest_mem, src_mem, len_rtx, + BLOCK_OP_NORMAL); if (dest_addr == 0) { @@ -3298,7 +3299,7 @@ expand_builtin_va_copy (arglist) set_mem_align (srcb, TYPE_ALIGN (va_list_type_node)); /* Copy. */ - emit_block_move (dstb, srcb, size); + emit_block_move (dstb, srcb, size, BLOCK_OP_NORMAL); } return const0_rtx; |