mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 05:20:06 +00:00
e6a1c5dc77
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.
26 lines
718 B
Makefile
26 lines
718 B
Makefile
ifeq ($(subdir),crypt)
|
|
libcrypt-sysdep_routines += md5-crop sha256-crop sha512-crop
|
|
endif
|
|
|
|
ifeq ($(subdir),locale)
|
|
localedef-aux += md5-crop
|
|
endif
|
|
|
|
ifeq ($(subdir),string)
|
|
sysdep_routines += memcpy-ultra3 memcpy-niagara1 memcpy-niagara2 \
|
|
memset-niagara1 memcpy-niagara4 memset-niagara4 \
|
|
memcpy-ultra1 memset-ultra1 memcpy-memmove-niagara7 \
|
|
memmove-ultra1 memset-niagara7
|
|
endif
|
|
|
|
ifeq ($(subdir),stdlib)
|
|
sysdep_routines += mul_1-vis3 mul_1-generic addmul_1-vis3 addmul_1-generic \
|
|
submul_1-vis3 submul_1-generic add_n-vis3 add_n-generic \
|
|
sub_n-vis3 sub_n-generic
|
|
endif
|
|
|
|
ifeq ($(subdir),math)
|
|
gmp-sysdep_routines = mul_1-vis3 addmul_1-vis3 submul_1-vis3 add_n-vis3 \
|
|
sub_n-vis3
|
|
endif
|