diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-08-29 19:20:01 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-08-29 19:20:01 +0000 |
| commit | 0378dbdcee9c538dd704efe558d55acb1620fda8 (patch) | |
| tree | 44fb6efc1ab10d4d91c0a9304f749fed8e7f2159 /gcc/builtins.c | |
| parent | 71012db2d016fa8bce5d3c00de462feff6605635 (diff) | |
| download | gcc-0378dbdcee9c538dd704efe558d55acb1620fda8.tar.gz | |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56661 138bc75d-0d04-0410-961f-82ee72b054a4
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 a295a9aab34..b2ad5375b77 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; |
