1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-12-24 17:51:17 +03:00

sparc: refactor sparc64 signbit{f} selector to C

This patch refactors the sparc64 ifunc selector to a C implementation.
Also, the generic symbol is moved to its own implementation file
(s_signbit{f}-generic.S).

It also simplifies the multiarch Makefile by moving the common objects
from libm-sysdeps_routines and sysdeps_routines to a new sysdeps_call
rule and including it where required with the correct prefix.

Checked on sparc64-linux-gnu and sparcv9-linux-gnu.

	* sysdeps/sparc/sparc-ifunc.h (sparc_libm_ifunc_redirected): New
	macro.
	* sysdeps/sparc/sparc64/fpu/multiarch/Makefile (sysdep_calls): New
	rule.
	(sysdep_routines): Use sysdep_calls as base.
	(libm-sysdep_routines): Add generic rule for symbols shared with
	libc.  Add s_signbit-generic and s_signbitf-generic objects.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-generic.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-generic.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S: Remove file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S: Likewise.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
Adhemerval Zanella
2017-10-13 09:56:49 -03:00
parent aa1142c593
commit 1cbd7bfe65
9 changed files with 104 additions and 38 deletions

View File

@@ -158,6 +158,9 @@ END (__##name)
# define sparc_libc_ifunc(name, expr) sparc_libm_ifunc (name, expr)
# define sparc_libm_ifunc_redirected(redirected_name, name, expr) \
__ifunc (redirected_name, name, expr, int hwcap, libm_ifunc_init)
/* It essentially does libc_hidden_builtin_def (name) and redirect
the internal redirected symbol to ifunc implementation. */
# if defined SHARED