glibc/sysdeps/x86_64/multiarch
H.J. Lu 5e8c5bb1ac X86-64: Remove the previous SSE2/AVX2 memsets
Since the new SSE2/AVX2 memsets are faster than the previous ones, we
can remove the previous SSE2/AVX2 memsets and replace them with the
new ones.  This reduces the size of libc.so by about 900 bytes.

No change in IFUNC selection if SSE2 and AVX2 memsets weren't used
before.  If SSE2 or AVX2 memset was used, the new SSE2 or AVX2 memset
optimized with Enhanced REP STOSB will be used for processors with
ERMS.  The new AVX512 memset will be used for processors with AVX512
which prefer vzeroupper.

	[BZ #19881]
	* sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S: Folded
	into ...
	* sysdeps/x86_64/memset.S: This.
	(__bzero): Removed.
	(__memset_tail): Likewise.
	(__memset_chk): Likewise.
	(memset): Likewise.
	(MEMSET_CHK_SYMBOL): New. Define only if MEMSET_SYMBOL isn't
	defined.
	(MEMSET_SYMBOL): Define only if MEMSET_SYMBOL isn't defined.
	* sysdeps/x86_64/multiarch/memset-avx2.S: Removed.
	(__memset_zero_constant_len_parameter): Check SHARED instead of
	PIC.
	* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Remove
	memset-avx2 and memset-sse2-unaligned-erms.
	* sysdeps/x86_64/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Remove __memset_chk_sse2,
	__memset_chk_avx2, __memset_sse2 and __memset_avx2_unaligned.
	* sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
	(__bzero): Enabled.
	* sysdeps/x86_64/multiarch/memset.S (memset): Replace
	__memset_sse2 and __memset_avx2 with __memset_sse2_unaligned
	and __memset_avx2_unaligned.  Use __memset_sse2_unaligned_erms
	or __memset_avx2_unaligned_erms if processor has ERMS.  Support
	__memset_avx512_unaligned_erms and __memset_avx512_unaligned.
	(memset): Removed.
	(__memset_chk): Likewise.
	(MEMSET_SYMBOL): New.
	(libc_hidden_builtin_def): Replace __memset_sse2 with
	__memset_sse2_unaligned.
	* sysdeps/x86_64/multiarch/memset_chk.S (__memset_chk): Replace
	__memset_chk_sse2 and __memset_chk_avx2 with
	__memset_chk_sse2_unaligned and __memset_chk_avx2_unaligned_erms.
	Use __memset_chk_sse2_unaligned_erms or
	__memset_chk_avx2_unaligned_erms if processor has ERMS.  Support
	__memset_chk_avx512_unaligned_erms and
	__memset_chk_avx512_unaligned.
2016-06-08 13:56:14 -07:00
..
bcopy.S Use IFUNC memmove/memset in x86-64 bcopy/bzero 2012-10-11 13:58:16 -07:00
ifunc-impl-list.c X86-64: Remove the previous SSE2/AVX2 memsets 2016-06-08 13:56:14 -07:00
Makefile X86-64: Remove the previous SSE2/AVX2 memsets 2016-06-08 13:56:14 -07:00
memcmp-sse4.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memcmp-ssse3.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memcmp.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memcpy_chk.S Fixed typos in __memcpy_chk. 2016-01-16 14:42:26 +03:00
memcpy-avx-unaligned.S Implement x86-64 multiarch mempcpy in memcpy 2016-03-28 13:13:51 -07:00
memcpy-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memcpy-ssse3-back.S Implement x86-64 multiarch mempcpy in memcpy 2016-03-28 13:13:51 -07:00
memcpy-ssse3.S Implement x86-64 multiarch mempcpy in memcpy 2016-03-28 13:13:51 -07:00
memcpy.S [x86] Add a feature bit: Fast_Unaligned_Copy 2016-03-28 04:40:03 -07:00
memmove_chk.c Added memcpy/memmove family optimized with AVX512 for KNL hardware. 2016-01-16 00:49:45 +03:00
memmove-avx512-no-vzeroupper.S Make __memcpy_avx512_no_vzeroupper an alias 2016-03-28 13:16:22 -07:00
memmove-avx512-unaligned-erms.S X86-64: Use non-temporal store in memcpy on large data 2016-04-12 08:10:47 -07:00
memmove-avx-unaligned-erms.S X86-64: Use non-temporal store in memcpy on large data 2016-04-12 08:10:47 -07:00
memmove-avx-unaligned.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memmove-sse2-unaligned-erms.S X86-64: Use non-temporal store in memcpy on large data 2016-04-12 08:10:47 -07:00
memmove-ssse3-back.S Improve 64bit memcpy/memmove for Atom, Core 2 and Core i7 2010-06-30 08:26:11 -07:00
memmove-ssse3.S Improve 64bit memcpy/memmove for Atom, Core 2 and Core i7 2010-06-30 08:26:11 -07:00
memmove-vec-unaligned-erms.S Fix a typo in comments in memmove-vec-unaligned-erms.S 2016-06-06 16:03:21 -07:00
memmove.c Added memcpy/memmove family optimized with AVX512 for KNL hardware. 2016-01-16 00:49:45 +03:00
mempcpy_chk.S Added memcpy/memmove family optimized with AVX512 for KNL hardware. 2016-01-16 00:49:45 +03:00
mempcpy.S Added memcpy/memmove family optimized with AVX512 for KNL hardware. 2016-01-16 00:49:45 +03:00
memset_chk.S X86-64: Remove the previous SSE2/AVX2 memsets 2016-06-08 13:56:14 -07:00
memset-avx2-unaligned-erms.S Don't put SSE2/AVX/AVX512 memmove/memset in ld.so 2016-04-03 14:35:38 -07:00
memset-avx512-no-vzeroupper.S Group AVX512 functions in .text.avx512 section 2016-03-06 16:48:11 -08:00
memset-avx512-unaligned-erms.S Don't put SSE2/AVX/AVX512 memmove/memset in ld.so 2016-04-03 14:35:38 -07:00
memset-vec-unaligned-erms.S X86-64: Remove the previous SSE2/AVX2 memsets 2016-06-08 13:56:14 -07:00
memset.S X86-64: Remove the previous SSE2/AVX2 memsets 2016-06-08 13:56:14 -07:00
sched_cpucount.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stpcpy-sse2-unaligned.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
stpcpy-ssse3.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
stpcpy.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
stpncpy-c.c SSSE3 strcpy/stpcpy for x86-64 2009-07-02 03:39:03 -07:00
stpncpy-sse2-unaligned.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
stpncpy-ssse3.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
stpncpy.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strcasecmp_l-ssse3.S Fix x86-64 build without multiarch. 2010-08-14 14:56:32 -07:00
strcasecmp_l.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strcat-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcat-ssse3.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcat.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strchr-sse2-no-bsf.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strchr.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcmp-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcmp-sse42.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcmp-ssse3.S Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
strcmp.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcpy-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcpy-ssse3.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcpy.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcspn-c.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcspn.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strncase_l-ssse3.S Add optimized strncasecmp versions for x86-64. 2010-08-14 22:04:01 -07:00
strncase_l.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strncat-c.c Improve 64 bit strcat functions with SSE2/SSSE3 2011-07-19 17:11:54 -04:00
strncat-sse2-unaligned.S Improve 64 bit strcat functions with SSE2/SSSE3 2011-07-19 17:11:54 -04:00
strncat-ssse3.S Improve 64 bit strcat functions with SSE2/SSSE3 2011-07-19 17:11:54 -04:00
strncat.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strncmp-ssse3.S Don't define x86-64 __strncmp_ssse3 in libc.a 2012-09-27 07:43:03 -07:00
strncmp.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strncpy-c.c SSSE3 strcpy/stpcpy for x86-64 2009-07-02 03:39:03 -07:00
strncpy-sse2-unaligned.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
strncpy-ssse3.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
strncpy.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strpbrk-c.c Don't define __strpbrk_sse42 in static library 2010-03-24 12:16:24 -07:00
strpbrk.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strspn-c.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strspn.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strstr-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strstr.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-multiarch.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
varshift.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
varshift.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
wcscpy-c.c Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
wcscpy-ssse3.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
wcscpy.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
wmemcmp-c.c Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
wmemcmp-sse4.S Optimized memcmp and wmemcmp for x86-64 and x86-32 2011-10-15 11:10:08 -04:00
wmemcmp-ssse3.S Optimized memcmp and wmemcmp for x86-64 and x86-32 2011-10-15 11:10:08 -04:00
wmemcmp.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00