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/config/i386/i386.md | |
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/config/i386/i386.md')
-rw-r--r-- | gcc/config/i386/i386.md | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index e23b3b6..223a467 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -15503,11 +15503,15 @@ (use (match_operand:SWI48 2 "nonmemory_operand")) (use (match_operand:SWI48 3 "const_int_operand")) (use (match_operand:SI 4 "const_int_operand")) - (use (match_operand:SI 5 "const_int_operand"))] + (use (match_operand:SI 5 "const_int_operand")) + (use (match_operand:SI 6 "")) + (use (match_operand:SI 7 ""))] "" { - if (ix86_expand_movmem (operands[0], operands[1], operands[2], operands[3], - operands[4], operands[5])) + if (ix86_expand_set_or_movmem (operands[0], operands[1], + operands[2], NULL, operands[3], + operands[4], operands[5], + operands[6], operands[7], false)) DONE; else FAIL; @@ -15695,12 +15699,16 @@ (use (match_operand:QI 2 "nonmemory_operand")) (use (match_operand 3 "const_int_operand")) (use (match_operand:SI 4 "const_int_operand")) - (use (match_operand:SI 5 "const_int_operand"))] + (use (match_operand:SI 5 "const_int_operand")) + (use (match_operand:SI 6 "")) + (use (match_operand:SI 7 ""))] "" { - if (ix86_expand_setmem (operands[0], operands[1], - operands[2], operands[3], - operands[4], operands[5])) + if (ix86_expand_set_or_movmem (operands[0], NULL, + operands[1], operands[2], + operands[3], operands[4], + operands[5], operands[6], + operands[6], true)) DONE; else FAIL; |