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/expr.h | |
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/expr.h')
-rw-r--r-- | gcc/expr.h | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -394,7 +394,15 @@ extern rtx convert_modes PARAMS ((enum machine_mode, enum machine_mode, rtx, int)); /* Emit code to move a block Y to a block X. */ -extern rtx emit_block_move PARAMS ((rtx, rtx, rtx)); + +enum block_op_methods +{ + BLOCK_OP_NORMAL, + BLOCK_OP_CALL_PARM, + BLOCK_OP_NO_LIBCALL +}; + +extern rtx emit_block_move PARAMS ((rtx, rtx, rtx, enum block_op_methods)); /* Copy all or part of a value X into registers starting at REGNO. The number of registers to be filled is NREGS. */ |