aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.md
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2013-11-18 00:32:12 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2013-11-17 23:32:12 +0000
commit3918b10802ce96c0c8cf477a0695856dc8d0919a (patch)
tree947c4bdd1ca87f99c679541fdf303cfef4a00776 /gcc/config/i386/i386.md
parent2048a057063239900ff4b614c854f5a53bab55de (diff)
downloadgcc-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.md22
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;