]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/i386/i386.h
i386.md (memstr): Do not use rep stosb for counts divisible by 4 when optimize_size.
authorJan Hubicka <hubicka@freesoft.cz>
Tue, 18 Jan 2000 15:25:05 +0000 (16:25 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 18 Jan 2000 15:25:05 +0000 (15:25 +0000)
commite2e52e1be7f47a95853b79d36c2e7c1b636e52f6
tree59d70f3dc18b9115f9b1b36bd1b57390832ce417
parentb9f243c201382f3566742d70ed53a8d300610764
i386.md (memstr): Do not use rep stosb for counts divisible by 4 when optimize_size.

* i386.md (memstr): Do not use rep stosb for counts divisible by 4
when optimize_size.
(clrstrsi): Rewrite.
(strsethi, strsetqi): New expanders.
(strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
(cmpstrsi): Emit compare insn before cmpstrsi_1
(cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
(strlensi_1): Likewise.
(cmpstrsi_1): Likewise; do not output compare.
(strlen expander): Do not unroll when optimizing for size.
(*subsi3_carry): Rename to subsi3_carry
(addqi3_cc): New pattern.
* i386.h (processor_costs): Add move_ratio field.
(MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
* i386.c (*_cost): Set move_ratio.
(x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
(x86_expand_strlensi_1): Rewrite the main loop.

From-SVN: r31488
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md