glibc/sysdeps/sparc/sparc32/sparcv9/multiarch
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
..
bzero.c sparc: Implement memset/bzero ifunc selection in C 2017-11-28 08:53:15 -02:00
ifunc-impl-list.c Add IFUNC test lists for memcpy/mempcpy/memset on sparc. 2012-10-25 16:34:26 -07:00
Makefile sparc: M7 optimized memset/bzero 2017-12-14 08:48:19 -02:00
md5-block.c Add support for sparc cryptographic hash opcodes. 2012-11-13 17:12:45 -08:00
md5-crop.S Add support for sparc cryptographic hash opcodes. 2012-11-13 17:12:45 -08:00
memcpy-memmove-niagara7.S sparc: M7 optimized memcpy/mempcpy/memmove 2017-12-14 08:47:38 -02:00
memcpy-niagara1.S
memcpy-niagara2.S
memcpy-niagara4.S Add Niagara-4 optimized memcpy and mempcpy. 2012-09-28 13:06:24 -07:00
memcpy-ultra1.S sparc: Implement memcpy/mempcpy ifunc selection in C 2017-11-28 08:53:15 -02:00
memcpy-ultra3.S
memcpy.c sparc: Implement memcpy/mempcpy ifunc selection in C 2017-11-28 08:53:15 -02:00
memmove-ultra1.S sparc: M7 optimized memcpy/mempcpy/memmove 2017-12-14 08:47:38 -02:00
mempcpy.c sparc: Implement memcpy/mempcpy ifunc selection in C 2017-11-28 08:53:15 -02:00
memset-niagara1.S
memset-niagara4.S Add Niagara-4 optimized memset/bzero implementation. 2012-10-05 14:46:47 -07:00
memset-niagara7.S sparc: M7 optimized memset/bzero 2017-12-14 08:48:19 -02:00
memset-ultra1.S sparc: Implement memset/bzero ifunc selection in C 2017-11-28 08:53:15 -02:00
memset.c sparc: Implement memset/bzero ifunc selection in C 2017-11-28 08:53:15 -02:00
rtld-memcpy.c Use generic memset/memcpy in rtld on sparcv9/sparc64. 2012-03-28 22:22:15 -07:00
rtld-memmove.c sparc: M7 optimized memcpy/mempcpy/memmove 2017-12-14 08:47:38 -02:00
rtld-memset.c Use generic memset/memcpy in rtld on sparcv9/sparc64. 2012-03-28 22:22:15 -07:00
sha256-block.c Add support for sparc cryptographic hash opcodes. 2012-11-13 17:12:45 -08:00
sha256-crop.S Add support for sparc cryptographic hash opcodes. 2012-11-13 17:12:45 -08:00
sha512-block.c Add support for sparc cryptographic hash opcodes. 2012-11-13 17:12:45 -08:00
sha512-crop.S Add support for sparc cryptographic hash opcodes. 2012-11-13 17:12:45 -08:00