Make strcmp with unaligned load/store the defaulthjl/unaligned
commit9db00f75ae25af0c043de52786739dcdf52e53f5
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 25 Aug 2015 18:01:20 +0000 (25 11:01 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 28 Aug 2015 13:02:43 +0000 (28 06:02 -0700)
tree8d3c997193fb15f72012cb454125e5c55ff77985
parente05a252da92a4dd15d4be40a855d31bd864804e9
Make strcmp with unaligned load/store the default

Since strcmp_sse2_unaligned performs better on current Intel and AMD
processors, this patch makes it the default.

* sysdeps/x86_64/strcmp.S: Moved to ...
* sysdeps/x86_64/multiarch/strcmp-sse2.S:  Here.  Remove
"#if !IS_IN (libc)".  Remove libc_hidden_builtin_def (STRCMP).
(STRCMP): Defined to __strcmp_sse2 if not defined.
* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Moved to ...
* sysdeps/x86_64/strcmp.S: Here.  Remove "#if IS_IN (libc)".
Add .text.  Add libc_hidden_builtin_def (strcmp).
(__strcmp_sse2_unaligned): Renamed to ...
(strcmp): This.
* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
strcmp-sse2.
* sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S: Include
strcmp-sse2.S instead of ../strcmp.S.
* sysdeps/x86_64/multiarch/strcmp-ssse3.S: Likewise.
* sysdeps/x86_64/multiarch/strncase_l-ssse3.S: Likewise.
* sysdeps/x86_64/multiarch/strncmp-ssse3.S: Likewise.
* sysdeps/x86_64/multiarch/strcmp.S
[USE_AS_STRCMP] (STRCMP_SSE2): Set to __strcmp_sse2_unaligned.
[USE_AS_STRCMP] (STRCMP): Load __strcmp_sse2 instead of
STRCMP_SSE2.
[USE_AS_STRCMP] (strcmp): Defined __strcmp_sse2_unaligned if
in libc.
[!USE_AS_STRCMP]: Include strcmp-sse2S instead of ../strcmp.S.
* sysdeps/x86_64/strcasecmp_l.S: Include multiarch/strcmp-sse2.S
instead of strcmp.S.  Add libc_hidden_builtin_def (STRCMP).
* sysdeps/x86_64/strncase_l.S: Likewise.
* sysdeps/x86_64/strncmp.S: Likewise.
sysdeps/x86_64/multiarch/Makefile
sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S
sysdeps/x86_64/multiarch/strcmp-sse2.S [moved from sysdeps/x86_64/strcmp.S with 99% similarity]
sysdeps/x86_64/multiarch/strcmp-ssse3.S
sysdeps/x86_64/multiarch/strcmp.S
sysdeps/x86_64/multiarch/strncase_l-ssse3.S
sysdeps/x86_64/multiarch/strncmp-ssse3.S
sysdeps/x86_64/strcasecmp_l.S
sysdeps/x86_64/strcmp.S [moved from sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S with 98% similarity]
sysdeps/x86_64/strncase_l.S
sysdeps/x86_64/strncmp.S