diff options
author | Jan Hubicka <jh@suse.cz> | 2013-11-18 00:32:12 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-11-17 23:32:12 +0000 |
commit | 3918b10802ce96c0c8cf477a0695856dc8d0919a (patch) | |
tree | 947c4bdd1ca87f99c679541fdf303cfef4a00776 /gcc/expr.h | |
parent | 2048a057063239900ff4b614c854f5a53bab55de (diff) | |
download | gcc-3918b10802ce96c0c8cf477a0695856dc8d0919a.zip gcc-3918b10802ce96c0c8cf477a0695856dc8d0919a.tar.gz gcc-3918b10802ce96c0c8cf477a0695856dc8d0919a.tar.bz2 |
md.texi (setmem, movstr): Update documentation.
* doc/md.texi (setmem, movstr): Update documentation.
* builtins.c (determine_block_size): New function.
(expand_builtin_memcpy): Use it and pass it to
emit_block_move_hints.
(expand_builtin_memset_args): Use it and pass it to
set_storage_via_setmem.
* expr.c (emit_block_move_via_movmem): Add min_size/max_size parameters;
update call to expander.
(emit_block_move_hints): Add min_size/max_size parameters.
(clear_storage_hints): Likewise.
(set_storage_via_setmem): Likewise.
(clear_storage): Update.
* expr.h (emit_block_move_hints, clear_storage_hints,
set_storage_via_setmem): Update prototype.
* i386.c (ix86_expand_set_or_movmem): Add bounds; export.
(ix86_expand_movmem, ix86_expand_setmem): Remove.
(ix86_expand_movmem, ix86_expand_setmem): Remove.
* i386.md (movmem, setmem): Pass parameters.
* gcc.target/i386/memcpy-2.c: New testcase.
From-SVN: r204926
Diffstat (limited to 'gcc/expr.h')
-rw-r--r-- | gcc/expr.h | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -300,7 +300,9 @@ extern void init_block_clear_fn (const char *); extern rtx emit_block_move (rtx, rtx, rtx, enum block_op_methods); extern rtx emit_block_move_via_libcall (rtx, rtx, rtx, bool); extern rtx emit_block_move_hints (rtx, rtx, rtx, enum block_op_methods, - unsigned int, HOST_WIDE_INT); + unsigned int, HOST_WIDE_INT, + unsigned HOST_WIDE_INT, + unsigned HOST_WIDE_INT); extern bool emit_storent_insn (rtx to, rtx from); /* Copy all or part of a value X into registers starting at REGNO. @@ -361,13 +363,17 @@ extern void use_group_regs (rtx *, rtx); If OBJECT has BLKmode, SIZE is its length in bytes. */ extern rtx clear_storage (rtx, rtx, enum block_op_methods); extern rtx clear_storage_hints (rtx, rtx, enum block_op_methods, - unsigned int, HOST_WIDE_INT); + unsigned int, HOST_WIDE_INT, + unsigned HOST_WIDE_INT, + unsigned HOST_WIDE_INT); /* The same, but always output an library call. */ rtx set_storage_via_libcall (rtx, rtx, rtx, bool); /* Expand a setmem pattern; return true if successful. */ extern bool set_storage_via_setmem (rtx, rtx, rtx, unsigned int, - unsigned int, HOST_WIDE_INT); + unsigned int, HOST_WIDE_INT, + unsigned HOST_WIDE_INT, + unsigned HOST_WIDE_INT); extern unsigned HOST_WIDE_INT move_by_pieces_ninsns (unsigned HOST_WIDE_INT, unsigned int, |