glibc/sysdeps/arm
Adhemerval Zanella 802c1f1645 arm: Implement memcpy ifunc selection in C
This patch refactor ARM memcpy ifunc selector to a C implementation.
No functional change is expected, including ifunc resolution rules.

It also adds some cleanup:

  - Internal memcpy hidden definition (__GI_memcpy) is now a hidden
    symbol.

  - No need to create hidden definition for the ifunc variants.

Checked on armv7-linux-gnueabihf and with a build for arm-linux-gnueabi,
arm-linux-gnueabihf with and without multiarch support and with both
GCC 7.1 and GCC mainline.  I also checked with the some possible
multiarch different configurations that trigger different memcpy
buids (__ARM_NEON__ && !__SOFT_FP__, !__ARM_NEON__ && !__SOFT_FP__, and
!__ARM_NEON__ && __SOFT_FP__).

	* sysdeps/arm/arm-ifunc.h: New file.
	* sysdeps/arm/armv7/multiarch/ifunc-memcpy.h: Likewise.
	* sysdeps/arm/armv7/multiarch/memcpy.c: Likewise.
	* sysdeps/arm/armv7/multiarch/memcpy_arm.S: Likewise.
	* sysdeps/arm/armv7/multiarch/rtld-memcpy.S: Likewise.
	* sysdeps/arm/armv7/multiarch/memcpy_neon.S [!__ARM_NEON__]
	(__memcpy_neon): Avoid create hidden alias.
	* sysdeps/arm/armv7/multiarch/memcpy_vfp.S [!__ARM_NEON_]
	(__memcpy_vfp): Likewise.
	* sysdeps/arm/armv7/multiarch/Makefile [$(subdir) = string]
	(sysdep_routines): Add memcpy_arm.
	* sysdeps/arm/armv7/multiarch/memcpy.S: Remove file.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2017-11-06 17:37:57 -02:00
..
armv6 Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
armv6t2 Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
armv7 arm: Implement memcpy ifunc selection in C 2017-11-06 17:37:57 -02:00
bits
include/bits
nptl Optimize generic spinlock code and use C11 like atomic macros. 2017-06-06 09:41:56 +02:00
sys Fix mcontext_t sigcontext namespace (bug 21457). 2017-08-30 22:02:04 +00:00
__longjmp.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
abi-note.S
add_n.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
addmul_1.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
aeabi_assert.c
aeabi_atexit.c
aeabi_errno_addr.c
aeabi_lcsts.c
aeabi_localeconv.c
aeabi_math.c
aeabi_mb_cur_max.c
aeabi_memclr.c Replace all internal uses of __bzero with memset. This removes the need 2017-06-12 14:56:53 +01:00
aeabi_memcpy.c
aeabi_memmove.c
aeabi_memset.c
aeabi_sighandlers.S
aeabi_unwind_cpp_pr1.c
arm-features.h
arm-ifunc.h arm: Implement memcpy ifunc selection in C 2017-11-06 17:37:57 -02:00
arm-mcount.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
arm-unwind-resume.S
atomic-machine.h Optimize generic spinlock code and use C11 like atomic macros. 2017-06-06 09:41:56 +02:00
backtrace.c
bsd-_setjmp.S
bsd-setjmp.S
configure
configure.ac
crti.S
crtn.S
dl-irel.h
dl-lookupcfg.h elf: Remove internal_function attribute 2017-08-31 16:59:37 +02:00
dl-machine.h arm: Remove lazy tlsdesc initialization related code 2017-11-03 14:49:20 +00:00
dl-sysdep.h
dl-tls.h
dl-tlsdesc.h arm: Remove lazy tlsdesc initialization related code 2017-11-03 14:49:20 +00:00
dl-tlsdesc.S arm: Remove lazy tlsdesc initialization related code 2017-11-03 14:49:20 +00:00
dl-trampoline.S
e_sqrt.c
e_sqrtf.c
fclrexcpt.c
fedisblxcpt.c
feenablxcpt.c
fegetenv.c
fegetexcept.c
fegetmode.c
fegetround.c
feholdexcpt.c
fenv_private.h
fesetenv.c
fesetexcept.c
fesetmode.c
fesetround.c
feupdateenv.c
fgetexcptflg.c
find_exidx.c
fix-fp-int-convert-overflow.h
fpu_control.h
fraiseexcpt.c
frame.h
framestate.c
fsetexcptflg.c
ftestexcept.c
gcc-compat.h
gccframe.h
get-rounding-mode.h
gmp-mparam.h
Implies
jmpbuf-unwind.h
ldsodefs.h
libc-aeabi_read_tp.S
libc-tls.c
libm-test-ulps Update ARM libm-test-ulps. 2017-10-05 22:17:30 +00:00
libm-test-ulps-name
linkmap.h
machine-gmon.h gmon: Remove internal_function attribute 2017-08-31 16:16:07 +02:00
Makefile Enable unwind info in libc-start.c and backtrace.c 2017-09-19 15:07:58 +01:00
math_private.h
math-tests.h
memcpy.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
memmove.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
memset.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
memusage.h
nptl-aeabi_unwind_cpp_pr1.c
preconfigure
preconfigure.ac
pt-arm-unwind-resume.S
rt-aeabi_unwind_cpp_pr1.c
rt-arm-unwind-resume.S
rtld-global-offsets.sym
s_fma.c
s_fmaf.c
setfpucw.c
setjmp.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
sfp-machine.h
sotruss-lib.c
stackinfo.h
start.S arm: Check PIC instead of SHARED in start.S 2017-09-29 16:20:39 -07:00
static-stubs.c
strlen.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
sub_n.S
submul_1.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
sysdep.h Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
test-fpucw.c
tls-macros.h
tlsdesc.c arm: Remove lazy tlsdesc initialization related code 2017-11-03 14:49:20 +00:00
tlsdesc.sym
tst-armtlsdescextlazy.c
tst-armtlsdescextlazymod.c
tst-armtlsdescextnow.c
tst-armtlsdescextnowmod.c
tst-armtlsdescloc.c
tst-armtlsdesclocmod.c
tst-audit.h
unwind-dw2-fde-glibc.c
unwind-pe.c
unwind-resume.h
unwind.h
Versions