glibc/sysdeps
Andrew Senkevich 8b4416d83c i386: memcpy functions with SSE2 unaligned load/store
These new memcpy functions are the 32-bit version of x86_64 SSE2 unaligned
memcpy.  Memcpy average performace benefit is 18% on Silvermont, other
platforms also improved about 35%, benchmarked on Silvermont, Haswell, Ivy
Bridge, Sandy Bridge and Westmere, performance results attached in

https://sourceware.org/ml/libc-alpha/2014-07/msg00157.html

	* sysdeps/i386/i686/multiarch/bcopy-sse2-unaligned.S: New file.
	* sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S: Likewise.
	* sysdeps/i386/i686/multiarch/memmove-sse2-unaligned.S: Likewise.
	* sysdeps/i386/i686/multiarch/mempcpy-sse2-unaligned.S: Likewise.
	* sysdeps/i386/i686/multiarch/bcopy.S: Select the sse2_unaligned
	version if bit_Fast_Unaligned_Load is set.
	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
	bcopy-sse2-unaligned, memcpy-sse2-unaligned,
	memmove-sse2-unaligned and mempcpy-sse2-unaligned.
	* sysdeps/i386/i686/multiarch/ifunc-impl-list.c (MAX_IFUNC): Set
	to 4.
	(__libc_ifunc_impl_list): Test __bcopy_sse2_unaligned,
	__memmove_chk_sse2_unaligned, __memmove_sse2_unaligned,
	__memcpy_chk_sse2_unaligned, __memcpy_sse2_unaligned,
	__mempcpy_chk_sse2_unaligned, and __mempcpy_sse2_unaligned.
2014-12-30 07:19:38 -08:00
..
aarch64 Call libc_fetestexcept_aarch64. 2014-12-22 17:14:54 +00:00
alpha Remove IS_IN_rtld 2014-11-24 11:41:48 +05:30
arm Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
generic Add hidden __tls_get_addr/___tls_get_addr alias 2014-12-21 09:27:11 -08:00
gnu Use PTR_MANGLE on libgcc unwinder function pointers. 2014-12-16 15:47:53 -08:00
hppa Don't use INTDEF/INTUSE with _dl_init (bug 14132). 2014-11-04 23:26:39 +00:00
i386 i386: memcpy functions with SSE2 unaligned load/store 2014-12-30 07:19:38 -08:00
ia64 Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
ieee754 Split __kernel_standard* functions (fixes bug 17724). 2014-12-22 18:45:50 +00:00
init_array Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
m68k m68k: remove @PLTPC from _dl_init call 2014-12-21 15:21:14 +01:00
mach Fix resolver if_* namespace (bug 17717). 2014-12-16 18:18:49 +00:00
microblaze microblaze: 64b atomic operations are not supported. 2014-11-21 14:09:21 +01:00
mips Fix preprocessor indentation in sysdeps/mips/memcpy.S. 2014-12-22 13:29:20 -08:00
nptl NPTL: Move fork state variables to initializer files. 2014-12-17 14:33:28 -08:00
posix Use posix-conf-vars.list to generate spec array 2014-12-29 19:56:27 +05:30
powerpc Fix strftime wcschr namespace (bug 17634). 2014-12-10 16:59:02 +00:00
pthread Move semaphore.h to sysdeps/pthread/. 2014-12-11 22:58:48 +00:00
s390 S/390: Get rid of assembler warning value truncated. 2014-12-11 17:02:24 +01:00
sh * Fix SH specific compiler warnings which are for integer-pointer 2014-12-12 08:07:35 +09:00
sparc Fix soft-fp build warning on sparc about strict aliasing. 2014-12-19 13:45:31 -08:00
tile tile: prefer inlines to macros in math_private.h. 2014-12-29 19:48:43 -05:00
unix Fix a couple of -Wundef warnings. 2014-12-29 23:14:38 -05:00
wordsize-32 Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
wordsize-64 Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
x86 Recognize recent x86 CPUs in string.h 2014-11-27 17:21:12 +01:00
x86_64 Add hidden __tls_get_addr/___tls_get_addr alias 2014-12-21 09:27:11 -08:00