summaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386-opts.h
diff options
context:
space:
mode:
authorMichael Zolotukhin <michael.v.zolotukhin@gmail.com>2013-07-08 06:48:15 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2013-07-08 06:48:15 +0000
commit930b700ba28617ea074b0f4e54d3b00b8d9be0a2 (patch)
treeba89b5940f5318ef03d3bc4262cca5673f95b354 /gcc/config/i386/i386-opts.h
parentc8dfadf8f35a6d636f8dbc51590f7b530ef34d4f (diff)
downloadgcc-930b700ba28617ea074b0f4e54d3b00b8d9be0a2.tar.gz
i386-opts.h (enum stringop_alg): Add vector_loop.
ChangeLog: * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop. * config/i386/i386.c (expand_set_or_movmem_via_loop): Use adjust_address instead of change_address to keep info about alignment. (emit_strmov): Remove. (emit_memmov): New function. (expand_movmem_epilogue): Refactor to properly handle bigger sizes. (expand_movmem_epilogue): Likewise and return updated rtx for destination. (expand_constant_movmem_prologue): Likewise and return updated rtx for destination and source. (decide_alignment): Refactor, handle vector_loop. (ix86_expand_movmem): Likewise. (ix86_expand_setmem): Likewise. * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg. testsuite/ChangeLog: * gcc.target/i386/memcpy-vector_loop-1.c: New. * gcc.target/i386/memcpy-vector_loop-2.c: New. From-SVN: r200751
Diffstat (limited to 'gcc/config/i386/i386-opts.h')
-rw-r--r--gcc/config/i386/i386-opts.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/i386/i386-opts.h b/gcc/config/i386/i386-opts.h
index 61f04ced53b..bea1c257830 100644
--- a/gcc/config/i386/i386-opts.h
+++ b/gcc/config/i386/i386-opts.h
@@ -35,7 +35,8 @@ enum stringop_alg
rep_prefix_8_byte,
loop_1_byte,
loop,
- unrolled_loop
+ unrolled_loop,
+ vector_loop
};
/* Available call abi. */