egcs/gcc ChangeLog config/i386/i386.c config/i ...
hubicka@gcc.gnu.org
hubicka@gcc.gnu.org
Tue Jan 18 07:25:00 GMT 2000
CVSROOT: /cvs/gcc
Module name: egcs
Changes by: hubicka@sourceware.cygnus.com 00/01/18 07:25:05
Modified files:
gcc : ChangeLog
gcc/config/i386: i386.c i386.h i386.md
Log message:
* 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.
More information about the Gcc-cvs
mailing list