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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
include/bits Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_atexit.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_errno_addr.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_lcsts.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_localeconv.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_math.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_mb_cur_max.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_memmove.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_memset.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_sighandlers.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
aeabi_unwind_cpp_pr1.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
arm-features.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
atomic-machine.h Optimize generic spinlock code and use C11 like atomic macros. 2017-06-06 09:41:56 +02:00
backtrace.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
bsd-_setjmp.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
bsd-setjmp.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
configure Remove configure test for ARM TLS descriptors support. 2015-10-27 23:56:50 +00:00
configure.ac Remove configure test for ARM TLS descriptors support. 2015-10-27 23:56:50 +00:00
crti.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
crtn.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-irel.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-tls.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
e_sqrt.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
e_sqrtf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fclrexcpt.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fedisblxcpt.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
feenablxcpt.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fegetenv.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fegetexcept.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fegetmode.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fegetround.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
feholdexcpt.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fenv_private.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fesetenv.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fesetexcept.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fesetmode.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fesetround.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
feupdateenv.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fgetexcptflg.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
find_exidx.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fix-fp-int-convert-overflow.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fpu_control.h Fix ARM fpu_control.h for assemblers requiring VFP insn names (bug 21047). 2017-01-19 00:05:34 +00:00
fraiseexcpt.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
frame.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
framestate.c
fsetexcptflg.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ftestexcept.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
gcc-compat.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
gccframe.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
get-rounding-mode.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
gmp-mparam.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Implies Remove sysdeps/arm/soft-fp directory. 2014-10-16 09:54:45 -07:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ldsodefs.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libc-aeabi_read_tp.S ARM: Move more aeabi routine magic out of Linux-specific directories 2014-06-26 15:08:29 -07:00
libc-tls.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libm-test-ulps Update ARM libm-test-ulps. 2017-10-05 22:17:30 +00:00
libm-test-ulps-name Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139). 2016-11-04 16:49:06 +00:00
linkmap.h Rename bits/linkmap.h to linkmap.h (bug 14912). 2015-09-04 19:44:27 +00:00
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: add LDBL_CLASSIFY_COMPAT support 2015-12-03 13:00:46 -05:00
math-tests.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nptl-aeabi_unwind_cpp_pr1.c ARM: Move more aeabi routine magic out of Linux-specific directories 2014-06-26 15:08:29 -07:00
preconfigure arm: drop EABI check 2014-11-22 19:34:49 -05:00
preconfigure.ac arm: drop EABI check 2014-11-22 19:34:49 -05:00
pt-arm-unwind-resume.S ARM: Consolidate with generic unwinder wrapper code 2015-01-05 15:42:16 -08:00
rt-aeabi_unwind_cpp_pr1.c ARM: Move more aeabi routine magic out of Linux-specific directories 2014-06-26 15:08:29 -07:00
rt-arm-unwind-resume.S ARM: Consolidate with generic unwinder wrapper code 2015-01-05 15:42:16 -08:00
rtld-global-offsets.sym
s_fma.c
s_fmaf.c
setfpucw.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
setjmp.S Remove sfi_* annotations from ARM assembly files. 2017-05-20 08:12:11 -04:00
sfp-machine.h Remove sysdeps/arm/soft-fp directory. 2014-10-16 09:54:45 -07:00
sotruss-lib.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stackinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
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 ARM: Rewrite sysdeps/arm/tls-macros.h 2015-03-13 10:10:09 -07:00
tlsdesc.c arm: Remove lazy tlsdesc initialization related code 2017-11-03 14:49:20 +00:00
tlsdesc.sym
tst-armtlsdescextlazy.c [BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC 2014-06-20 20:22:42 +01:00
tst-armtlsdescextlazymod.c [BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC 2014-06-20 20:22:42 +01:00
tst-armtlsdescextnow.c [BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC 2014-06-20 20:22:42 +01:00
tst-armtlsdescextnowmod.c [BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC 2014-06-20 20:22:42 +01:00
tst-armtlsdescloc.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-armtlsdesclocmod.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-audit.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
unwind-dw2-fde-glibc.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
unwind-pe.c
unwind-resume.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
unwind.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Versions Use -Werror=undef for assembly code. 2015-02-12 13:57:32 -08:00