about summary refs log tree commit diff
path: root/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-10-13 09:56:49 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-11-29 16:21:27 -0200
commit1cbd7bfe65e4fafdf77cccccf67950d2b5570d4a (patch)
tree49aca2fc8c969ae0d8ec99e9cd4e8aef44a4eb57 /sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S
parentaa1142c593447b433208a79bd5a95095cd5dd892 (diff)
downloadglibc-1cbd7bfe65e4fafdf77cccccf67950d2b5570d4a.tar.gz
glibc-1cbd7bfe65e4fafdf77cccccf67950d2b5570d4a.tar.xz
glibc-1cbd7bfe65e4fafdf77cccccf67950d2b5570d4a.zip
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>
Diffstat (limited to 'sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S')
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S20
1 files changed, 0 insertions, 20 deletions
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S
deleted file mode 100644
index b8ff64a547..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(signbit)
-
-/* On 64-bit the double version will also always work for
-   long-double-precision since in both cases the word with the
-   sign bit in it is passed always in register %f0.  */
-strong_alias (__signbit, __signbitl)
-hidden_def (__signbitl)
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef strong_alias
-# define strong_alias(a, b)
-# undef hidden_def
-# define hidden_def(a)
-
-#define __signbit __signbit_generic
-
-#include "../s_signbit.S"