Add strstr with unaligned loads. Fixes bug 12100.
commit584b18eb4df61ccd447db2dfe8c8a7901f8c8598
authorOndřej Bílka <neleai@seznam.cz>
Sat, 14 Dec 2013 18:33:56 +0000 (14 19:33 +0100)
committerOndřej Bílka <neleai@seznam.cz>
Sat, 14 Dec 2013 19:08:13 +0000 (14 20:08 +0100)
tree8240dbf408eadda74685f951e36f8885f77c2f77
parent8a5c7897dd1c52ca74b06aaf5a3bacf0919c97aa
Add strstr with unaligned loads. Fixes bug 12100.

A sse42 version of strstr used pcmpistr instruction which is quite
ineffective. A faster way is look for pairs of characters which is uses
sse2, is faster than pcmpistr and for real strings a pairs we look for
are relatively rare.

For linear time complexity we use buy or rent technique which switches
to two-way algorithm when superlinear behaviour is detected.
ChangeLog
NEWS
sysdeps/x86_64/multiarch/Makefile
sysdeps/x86_64/multiarch/ifunc-impl-list.c
sysdeps/x86_64/multiarch/strcasestr-c.c [deleted file]
sysdeps/x86_64/multiarch/strcasestr-nonascii.c [deleted file]
sysdeps/x86_64/multiarch/strcasestr.c
sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S [new file with mode: 0644]
sysdeps/x86_64/multiarch/strstr.c [moved from sysdeps/x86_64/multiarch/strstr-c.c with 90% similarity]