about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorOndřej Bílka <neleai@seznam.cz>2013-12-14 19:33:56 +0100
committerOndřej Bílka <neleai@seznam.cz>2013-12-14 20:08:13 +0100
commit584b18eb4df61ccd447db2dfe8c8a7901f8c8598 (patch)
tree8240dbf408eadda74685f951e36f8885f77c2f77 /ChangeLog
parent8a5c7897dd1c52ca74b06aaf5a3bacf0919c97aa (diff)
downloadglibc-584b18eb4df61ccd447db2dfe8c8a7901f8c8598.tar.gz
glibc-584b18eb4df61ccd447db2dfe8c8a7901f8c8598.tar.xz
glibc-584b18eb4df61ccd447db2dfe8c8a7901f8c8598.zip
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.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog14
1 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3de39014c5..811f4c9f31 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2013-12-14  Ondřej Bílka  <neleai@seznam.cz>
+
+	[BZ #12100]
+	* sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S: New file
+	* sysdeps/x86_64/multiarch/strstr-c.c: Moved to ...
+	* sysdeps/x86_64/multiarch/strstr.c: ... here.
+	(strstr): Add __strstr_sse2_unaligned ifunc.
+	* sysdeps/x86_64/multiarch/strcasestr-c.c: Moved to ...
+	* sysdeps/x86_64/multiarch/strcasestr.c ... here.
+	(strcasestr): Remove __strcasestr_sse42 ifunc.
+	* sysdeps/x86_64/multiarch/strcasestr-nonascii.c: Remove.
+	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: Update.
+	* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Update.
+
 2013-12-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
 
 	* sysdeps/sh/sh4/fpu/bits/fenv.h: Move to ...