glibc/sysdeps/sparc/sparc64
Patrick McGehearty e6a1c5dc77 sparc: M7 optimized memset/bzero
Support added to identify Sparc M7/T7/S7/M8/T8 processor capability.
Performance tests run on Sparc S7 using new code and old niagara4 code.

Optimizations for memset also apply to bzero as they share code.

For memset/bzero, performance comparison with niagara4 code:
For memset nonzero data,
  256-1023 bytes - 60-90% gain (in cache); 5% gain (out of cache)
  1K+ bytes - 80-260% gain (in cache); 40-80% gain (out of cache)
For memset zero data (and bzero),
  256-1023 bytes - 80-120% gain (in cache), 0% gain (out of cache)
  1024+ bytes - 2-4x gain (in cache), 10-35% gain (out of cache)

Tested in sparcv9-*-* and sparc64-*-* targets in both multi and
non-multi arch configurations.

	Patrick McGehearty <patrick.mcgehearty@oracle.com>
	Adhemerval Zanella  <adhemerval.zanella@linaro.org>

	* sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
	(sysdeps_routines): Add memset-niagara7.
	* sysdeps/sparc/sparc64/multiarch/Makefile (sysdes_rotuines):
	Likewise.
	* sysdeps/sparc/sparc32/sparcv9/multiarch/memset-niagara7.S: New
	file.
	* sysdeps/sparc/sparc64/multiarch/memset-niagara7.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Add __bzero_niagara7 and __memset_niagara7.
	* sysdeps/sparc/sparc64/multiarch/ifunc-memset.h (IFUNC_SELECTOR):
	Add niagara7 option.
	* NEWS: Mention sparc m7 optimized memcpy, mempcpy, memmove, and
	memset.
2017-12-14 08:48:19 -02:00
..
bits
fpu Use libm_alias_float for sparc. 2017-11-30 00:30:40 +00:00
multiarch sparc: M7 optimized memset/bzero 2017-12-14 08:48:19 -02:00
soft-fp Remove unused sparc64/soft-fp libm function implementations. 2017-11-22 21:11:00 +00:00
Implies
Makefile sparc: Assume VIS3 support 2017-11-29 08:18:00 -02:00
Versions
add_n.S
addmul_1.S
align-cpy.S
atomic-machine.h
backtrace.h
bzero.c
cpu_relax.c sparc: refactor cpu_relax to C 2017-12-01 11:51:10 -02:00
dl-irel.h
dl-machine.h Fix TLS relocations against local symbols on powerpc32, sparc32 and sparc64 2017-10-13 16:14:16 -03:00
dl-plt.h
dl-trampoline.S
hp-timing.h
jmpbuf-unwind.h
lshift.S
memchr.S
memcmp.S
memcpy.S
memmove.S sparc: assembly version of memmove for ultra1+ 2017-12-14 08:47:09 -02:00
memset.S
mul_1.S
pthread_spin_init.c
pthread_spin_lock.S
pthread_spin_trylock.S
pthread_spin_unlock.S
pthreaddef.h
rawmemchr.S
rshift.S
rtld-memcpy.c
rtld-memmove.c sparc: assembly version of memmove for ultra1+ 2017-12-14 08:47:09 -02:00
rtld-memset.c
stackguard-macros.h
start.S
stpcpy.S
stpncpy.S
strcat.S
strchr.S
strcmp.S
strcpy.S
strcspn.S
strlen.S
strncmp.S
strncpy.S
strpbrk.S
strrchr.c
strspn.S
sub_n.S
submul_1.S
tls-macros.h
tst-audit.h