about summary refs log tree commit diff
path: root/sysdeps/sparc/sparc64
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
committerZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
commit5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch)
tree4470480d904b65cf14ca524f96f79eca818c3eaf /sysdeps/sparc/sparc64
parent199fc19d3aaaf57944ef036e15904febe877fc93 (diff)
downloadglibc-zack/build-layout-experiment.tar.gz
glibc-zack/build-layout-experiment.tar.xz
glibc-zack/build-layout-experiment.zip
Prepare for radical source tree reorganization. zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
Diffstat (limited to 'sysdeps/sparc/sparc64')
-rw-r--r--sysdeps/sparc/sparc64/Implies7
-rw-r--r--sysdeps/sparc/sparc64/Makefile21
-rw-r--r--sysdeps/sparc/sparc64/Versions14
-rw-r--r--sysdeps/sparc/sparc64/add_n.S57
-rw-r--r--sysdeps/sparc/sparc64/addmul_1.S83
-rw-r--r--sysdeps/sparc/sparc64/align-cpy.S84
-rw-r--r--sysdeps/sparc/sparc64/atomic-machine.h129
-rw-r--r--sysdeps/sparc/sparc64/backtrace.h7
-rw-r--r--sysdeps/sparc/sparc64/bits/wordsize.h11
-rw-r--r--sysdeps/sparc/sparc64/bzero.c1
-rw-r--r--sysdeps/sparc/sparc64/cpu_relax.S67
-rw-r--r--sysdeps/sparc/sparc64/dl-irel.h65
-rw-r--r--sysdeps/sparc/sparc64/dl-machine.h685
-rw-r--r--sysdeps/sparc/sparc64/dl-plt.h167
-rw-r--r--sysdeps/sparc/sparc64/dl-trampoline.S325
-rw-r--r--sysdeps/sparc/sparc64/fpu/e_sqrtl.c31
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/Makefile22
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c23
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c32
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c23
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c32
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S28
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S15
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S28
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S15
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c23
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c32
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c23
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c32
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S25
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c14
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S25
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c14
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S31
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S15
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S30
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S15
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S30
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S15
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S29
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S15
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S52
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S17
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S51
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S17
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S62
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S12
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S61
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S12
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S50
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S12
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S49
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S12
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S25
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S20
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S25
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S10
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c23
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c32
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c23
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c32
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_copysign.S30
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_copysignf.S30
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_fabs.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_fabsf.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_fabsl.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_finite.S31
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_finitef.S31
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_fma.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isinf.S34
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isinff.S33
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isnan.S33
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isnanf.S32
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_llrint.S1
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_llrintf.S1
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_lrint.S63
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_lrintf.S62
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_nearbyint.S64
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_nearbyintf.S63
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_rint.S57
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_rintf.S56
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_signbit.S32
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_signbitf.S26
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_signbitl.S1
-rw-r--r--sysdeps/sparc/sparc64/fpu/w_sqrt_compat.S48
-rw-r--r--sysdeps/sparc/sparc64/fpu/w_sqrtf_compat.S48
-rw-r--r--sysdeps/sparc/sparc64/hp-timing.h33
-rw-r--r--sysdeps/sparc/sparc64/jmpbuf-unwind.h37
-rw-r--r--sysdeps/sparc/sparc64/lshift.S95
-rw-r--r--sysdeps/sparc/sparc64/memchr.S260
-rw-r--r--sysdeps/sparc/sparc64/memcmp.S142
-rw-r--r--sysdeps/sparc/sparc64/memcpy.S580
-rw-r--r--sysdeps/sparc/sparc64/memset.S314
-rw-r--r--sysdeps/sparc/sparc64/mul_1.S82
-rw-r--r--sysdeps/sparc/sparc64/multiarch/Makefile21
-rw-r--r--sysdeps/sparc/sparc64/multiarch/add_n-vis3.S67
-rw-r--r--sysdeps/sparc/sparc64/multiarch/add_n.S56
-rw-r--r--sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S87
-rw-r--r--sysdeps/sparc/sparc64/multiarch/addmul_1.S56
-rw-r--r--sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c75
-rw-r--r--sysdeps/sparc/sparc64/multiarch/md5-block.c29
-rw-r--r--sysdeps/sparc/sparc64/multiarch/md5-crop.S110
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S347
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S498
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S332
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S325
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy.S167
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-niagara1.S177
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-niagara4.S124
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset.S124
-rw-r--r--sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S73
-rw-r--r--sysdeps/sparc/sparc64/multiarch/mul_1.S56
-rw-r--r--sysdeps/sparc/sparc64/multiarch/rtld-memcpy.c1
-rw-r--r--sysdeps/sparc/sparc64/multiarch/rtld-memset.c1
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sha256-block.c32
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sha256-crop.S101
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sha512-block.c32
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sha512-crop.S131
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S71
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sub_n.S56
-rw-r--r--sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S87
-rw-r--r--sysdeps/sparc/sparc64/multiarch/submul_1.S56
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_init.c1
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_lock.S31
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_trylock.S27
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_unlock.S28
-rw-r--r--sysdeps/sparc/sparc64/pthreaddef.h33
-rw-r--r--sysdeps/sparc/sparc64/rawmemchr.S178
-rw-r--r--sysdeps/sparc/sparc64/rshift.S92
-rw-r--r--sysdeps/sparc/sparc64/rtld-memcpy.c3
-rw-r--r--sysdeps/sparc/sparc64/rtld-memset.c1
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/Makefile33
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/Versions8
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/e_ilogbl.c79
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_add.c44
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_cmp.c48
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c49
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_div.c44
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c45
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_feq.c48
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_fge.c48
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_fgt.c48
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_fle.c48
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_flt.c48
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_fne.c49
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_itoq.c34
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_mul.c49
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_neg.S30
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_qtod.c48
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c46
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_qtos.c49
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c46
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c46
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_qtox.c46
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_sqrt.c41
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_stoq.c45
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_sub.c44
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_uitoq.c34
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_util.c60
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_uxtoq.c34
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/qp_xtoq.c34
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/s_frexpl.c51
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/s_scalblnl.c52
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/s_scalbnl.c52
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/sfp-machine.h147
-rw-r--r--sysdeps/sparc/sparc64/stackguard-macros.h7
-rw-r--r--sysdeps/sparc/sparc64/start.S100
-rw-r--r--sysdeps/sparc/sparc64/stpcpy.S274
-rw-r--r--sysdeps/sparc/sparc64/stpncpy.S424
-rw-r--r--sysdeps/sparc/sparc64/strcat.S339
-rw-r--r--sysdeps/sparc/sparc64/strchr.S482
-rw-r--r--sysdeps/sparc/sparc64/strcmp.S232
-rw-r--r--sysdeps/sparc/sparc64/strcpy.S244
-rw-r--r--sysdeps/sparc/sparc64/strcspn.S212
-rw-r--r--sysdeps/sparc/sparc64/strlen.S85
-rw-r--r--sysdeps/sparc/sparc64/strncmp.S363
-rw-r--r--sysdeps/sparc/sparc64/strncpy.S396
-rw-r--r--sysdeps/sparc/sparc64/strpbrk.S230
-rw-r--r--sysdeps/sparc/sparc64/strrchr.c1
-rw-r--r--sysdeps/sparc/sparc64/strspn.S212
-rw-r--r--sysdeps/sparc/sparc64/sub_n.S54
-rw-r--r--sysdeps/sparc/sparc64/submul_1.S82
-rw-r--r--sysdeps/sparc/sparc64/tls-macros.h65
-rw-r--r--sysdeps/sparc/sparc64/tst-audit.h25
184 files changed, 0 insertions, 14413 deletions
diff --git a/sysdeps/sparc/sparc64/Implies b/sysdeps/sparc/sparc64/Implies
deleted file mode 100644
index 7abc50efcc..0000000000
--- a/sysdeps/sparc/sparc64/Implies
+++ /dev/null
@@ -1,7 +0,0 @@
-wordsize-64
-# SPARC uses IEEE 754 floating point.
-ieee754/ldbl-128
-ieee754/dbl-64/wordsize-64
-ieee754/dbl-64
-ieee754/flt-32
-sparc/sparc64/soft-fp
diff --git a/sysdeps/sparc/sparc64/Makefile b/sysdeps/sparc/sparc64/Makefile
deleted file mode 100644
index a5e403630e..0000000000
--- a/sysdeps/sparc/sparc64/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-sysdep-CFLAGS += -Wa,-Av9a -mvis
-
-ifeq ($(subdir),string)
-sysdep_routines += align-cpy
-endif
-
-ifeq ($(have-as-vis3),yes)
-ASFLAGS-.o += -Wa,-Av9d
-ASFLAGS-.os += -Wa,-Av9d
-ASFLAGS-.op += -Wa,-Av9d
-ASFLAGS-.oS += -Wa,-Av9d
-endif
-
-# nscd uses atomic_spin_nop which in turn requires cpu_relax
-ifeq ($(subdir),nscd)
-routines += cpu_relax
-endif
-
-ifeq ($(subdir),nptl)
-libpthread-routines += cpu_relax
-endif
diff --git a/sysdeps/sparc/sparc64/Versions b/sysdeps/sparc/sparc64/Versions
deleted file mode 100644
index 4cef7bcc71..0000000000
--- a/sysdeps/sparc/sparc64/Versions
+++ /dev/null
@@ -1,14 +0,0 @@
-libc {
-  GLIBC_2.1.1 {
-    # SPARC v9 SYSV ABI helper functions
-    __align_cpy_1; __align_cpy_2; __align_cpy_4;
-    __align_cpy_8; __align_cpy_16;
-  }
-}
-libm {
-  GLIBC_2.1 {
-    # A generic bug got this omitted from other configurations' version
-    # sets, but we always had it.
-    exp2l;
-  }
-}
diff --git a/sysdeps/sparc/sparc64/add_n.S b/sysdeps/sparc/sparc64/add_n.S
deleted file mode 100644
index e7f7c46c42..0000000000
--- a/sysdeps/sparc/sparc64/add_n.S
+++ /dev/null
@@ -1,57 +0,0 @@
-/* SPARC v9 __mpn_add_n -- Add two limb vectors of the same length > 0 and
-   store sum in a third limb vector.
-
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
-
-   This file is part of the GNU MP Library.
-
-   The GNU MP Library is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 2.1 of the License, or (at your
-   option) any later version.
-
-   The GNU MP Library is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-   License for more details.
-
-   You should have received a copy of the GNU Lesser General Public License
-   along with the GNU MP Library; see the file COPYING.LIB.  If not,
-   see <http://www.gnu.org/licenses/>.  */
-
-
-#include <sysdep.h>
-
-
-/* INPUT PARAMETERS
-   res_ptr	%o0
-   s1_ptr	%o1
-   s2_ptr	%o2
-   size		%o3  */
-
-
-ENTRY(__mpn_add_n)
-
-	sub	%g0,%o3,%g5
-	sllx	%o3,3,%g1
-	add	%o1,%g1,%o1		! make s1_ptr point at end
-	add	%o2,%g1,%o2		! make s2_ptr point at end
-	add	%o0,%g1,%o0		! make res_ptr point at end
-	mov	0,%o4			! clear carry variable
-	sllx	%g5,3,%o5		! compute initial address index
-
-1:	ldx	[%o2+%o5],%g1		! load s2 limb
-	add	%g5,1,%g5		! increment loop count
-	ldx	[%o1+%o5],%o3		! load s1 limb
-	addcc	%g1,%o4,%g1		! add s2 limb and carry variable
-	movcc	%xcc,0,%o4		! if carry-out, o4 was 1; clear it
-	addcc	%g1,%o3,%g1		! add s1 limb to sum
-	stx	%g1,[%o0+%o5]		! store result
-	add	%o5,8,%o5		! increment address index
-	brnz,pt	%g5,1b
-	 movcs	%xcc,1,%o4		! if s1 add gave carry, record it
-
-	retl
-	 mov %o4,%o0
-
-END(__mpn_add_n)
diff --git a/sysdeps/sparc/sparc64/addmul_1.S b/sysdeps/sparc/sparc64/addmul_1.S
deleted file mode 100644
index 96450cc4c8..0000000000
--- a/sysdeps/sparc/sparc64/addmul_1.S
+++ /dev/null
@@ -1,83 +0,0 @@
-/* SPARC v9 __mpn_addmul_1 -- Multiply a limb vector with a single limb and
-   add the product to a second limb vector.
-
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
-
-   This file is part of the GNU MP Library.
-
-   The GNU MP Library is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 2.1 of the License, or (at your
-   option) any later version.
-
-   The GNU MP Library is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-   License for more details.
-
-   You should have received a copy of the GNU Lesser General Public License
-   along with the GNU MP Library; see the file COPYING.LIB.  If not,
-   see <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-
-/* INPUT PARAMETERS
-   res_ptr	o0
-   s1_ptr	o1
-   size		o2
-   s2_limb	o3  */
-
-
-ENTRY(__mpn_addmul_1)
-	save	%sp,-192,%sp
-
-	sub	%g0,%i2,%o7
-	mov	0,%o0			! zero cy_limb
-	sllx	%o7,3,%o7
-	sethi	%hi(0x80000000),%o2
-	srl	%i3,0,%o1		! extract low 32 bits of s2_limb
-	sub	%i1,%o7,%o3
-	srlx	%i3,32,%i3		! extract high 32 bits of s2_limb
-	sub	%i0,%o7,%o4
-	add	%o2,%o2,%o2		! o2 = 0x100000000
-
-	!   hi   !
-             !  mid-1 !
-             !  mid-2 !
-		 !   lo   !
-1:
-	ldx	[%o3+%o7],%g5
-	srl	%g5,0,%i0		! zero hi bits
-	ldx	[%o4+%o7],%l1
-	srlx	%g5,32,%g5
-	mulx	%o1,%i0,%i4		! lo product
-	mulx	%i3,%i0,%i1		! mid-1 product
-	mulx	%o1,%g5,%l2		! mid-2 product
-	mulx	%i3,%g5,%i5		! hi product
-	srlx	%i4,32,%i0		! extract high 32 bits of lo product...
-	add	%i1,%i0,%i1		! ...and add it to the mid-1 product
-	addcc	%i1,%l2,%i1		! add mid products
-	mov	0,%l0			! we need the carry from that add...
-	movcs	%xcc,%o2,%l0		! ...compute it and...
-	sllx	%i1,32,%i0		!  align low bits of mid product
-	add	%i5,%l0,%i5		! ...add to bit 32 of the hi product
-	srl	%i4,0,%g5		! zero high 32 bits of lo product
-	add	%i0,%g5,%i0		! combine into low 64 bits of result
-	srlx	%i1,32,%i1		! extract high bits of mid product...
-	addcc	%i0,%o0,%i0		!  add cy_limb to low 64 bits of result
-	add	%i5,%i1,%i1		! ...and add them to the high result
-	mov	0,%g5
-	movcs	%xcc,1,%g5
-	addcc	%l1,%i0,%i0
-	stx	%i0,[%o4+%o7]
-	add	%g5,1,%l1
-	movcs	%xcc,%l1,%g5
-	addcc	%o7,8,%o7
-	bne,pt	%xcc,1b
-	 add	%i1,%g5,%o0		! compute new cy_limb
-
-	jmpl	%i7+8, %g0
-	 restore %o0,%g0,%o0
-
-END(__mpn_addmul_1)
diff --git a/sysdeps/sparc/sparc64/align-cpy.S b/sysdeps/sparc/sparc64/align-cpy.S
deleted file mode 100644
index e36799a405..0000000000
--- a/sysdeps/sparc/sparc64/align-cpy.S
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Aligned copy routines specified by Sparc V9 ABI.
-   For 64-bit sparc.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@davemloft.net)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	.text
-	.align	8
-ENTRY(__align_cpy_8)
-10:	cmp	%o0, %o1
-	be,pn	%xcc, 9f
-	 mov	%o0, %o3
-	subcc	%o2, 0x08, %o2
-	be,pn	%xcc, 8f
-1:	 ldx	[%o1 + 0x00], %o5
-	ldx	[%o1 + 0x08], %o4
-	subcc	%o2, 0x10, %o2
-	add	%o1, 0x10, %o1
-	stx	%o5, [%o3 + 0x00]
-	stx	%o4, [%o3 + 0x08]
-	bg,pt	%xcc, 1b
-	 add	%o3, 0x10, %o3
-	bne,pn	%xcc, 9f
-	 nop
-	ldx	[%o1 + 0x00], %o5
-8:	stx	%o5, [%o3 + 0x00]
-9:	retl
-	 nop
-END(__align_cpy_8)
-
-	.align	8
-ENTRY(__align_cpy_4)
-20:	cmp	%o0, %o1
-	be,pn	%xcc, 9f
-	 mov	%o0, %o3
-	subcc	%o2, 0x04, %o2
-	be,pn	%xcc, 8f
-1:	 lduw	[%o1 + 0x00], %o5
-	lduw	[%o1 + 0x04], %o4
-	subcc	%o2, 0x08, %o2
-	add	%o1, 0x08, %o1
-	stw	%o5, [%o3 + 0x00]
-	stw	%o4, [%o3 + 0x04]
-	bg,pt	%xcc, 1b
-	 add	%o3, 0x08, %o3
-	bne,pn	%xcc, 9f
-	 nop
-	lduw	[%o1 + 0x00], %o5
-8:	stw	%o5, [%o3 + 0x00]
-9:	retl
-	 nop
-END(__align_cpy_4)
-
-	.align	8
-ENTRY(__align_cpy_2)
-	or	%o0, %o1, %o3
-	or	%o2, %o3, %o3
-	andcc	%o3, 0x7, %g0
-	be,pt	%xcc, 10b
-	 andcc	%o3, 0x3, %g0
-	be,pt	%xcc, 20b
-	 mov	%o7, %g1
-	call	HIDDEN_JUMPTARGET(memcpy)
-	 mov	%o7, %g1
-END(__align_cpy_2)
-
-weak_alias (__align_cpy_8, __align_cpy_16)
-weak_alias (__align_cpy_2, __align_cpy_1)
diff --git a/sysdeps/sparc/sparc64/atomic-machine.h b/sysdeps/sparc/sparc64/atomic-machine.h
deleted file mode 100644
index 72009329c3..0000000000
--- a/sysdeps/sparc/sparc64/atomic-machine.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Atomic operations.  sparc64 version.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdint.h>
-
-typedef int8_t atomic8_t;
-typedef uint8_t uatomic8_t;
-typedef int_fast8_t atomic_fast8_t;
-typedef uint_fast8_t uatomic_fast8_t;
-
-typedef int16_t atomic16_t;
-typedef uint16_t uatomic16_t;
-typedef int_fast16_t atomic_fast16_t;
-typedef uint_fast16_t uatomic_fast16_t;
-
-typedef int32_t atomic32_t;
-typedef uint32_t uatomic32_t;
-typedef int_fast32_t atomic_fast32_t;
-typedef uint_fast32_t uatomic_fast32_t;
-
-typedef int64_t atomic64_t;
-typedef uint64_t uatomic64_t;
-typedef int_fast64_t atomic_fast64_t;
-typedef uint_fast64_t uatomic_fast64_t;
-
-typedef intptr_t atomicptr_t;
-typedef uintptr_t uatomicptr_t;
-typedef intmax_t atomic_max_t;
-typedef uintmax_t uatomic_max_t;
-
-#define __HAVE_64B_ATOMICS 1
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-
-/* XXX Is this actually correct?  */
-#define ATOMIC_EXCHANGE_USES_CAS 1
-
-
-#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
-  (abort (), (__typeof (*mem)) 0)
-
-#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
-  (abort (), (__typeof (*mem)) 0)
-
-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
-({									      \
-  __typeof (*(mem)) __acev_tmp;						      \
-  __typeof (mem) __acev_mem = (mem);					      \
-  if (__builtin_constant_p (oldval) && (oldval) == 0)			      \
-    __asm __volatile ("cas [%3], %%g0, %0"				      \
-		      : "=r" (__acev_tmp), "=m" (*__acev_mem)		      \
-		      : "m" (*__acev_mem), "r" (__acev_mem),		      \
-		        "0" (newval) : "memory");			      \
-  else									      \
-    __asm __volatile ("cas [%4], %2, %0"				      \
-		      : "=r" (__acev_tmp), "=m" (*__acev_mem)		      \
-		      : "r" (oldval), "m" (*__acev_mem), "r" (__acev_mem),    \
-		        "0" (newval) : "memory");			      \
-  __acev_tmp; })
-
-#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
-({									      \
-  __typeof (*(mem)) __acev_tmp;						      \
-  __typeof (mem) __acev_mem = (mem);					      \
-  if (__builtin_constant_p (oldval) && (oldval) == 0)			      \
-    __asm __volatile ("casx [%3], %%g0, %0"				      \
-		      : "=r" (__acev_tmp), "=m" (*__acev_mem)		      \
-		      : "m" (*__acev_mem), "r" (__acev_mem),		      \
-		        "0" ((long) (newval)) : "memory");		      \
-  else									      \
-    __asm __volatile ("casx [%4], %2, %0"				      \
-		      : "=r" (__acev_tmp), "=m" (*__acev_mem)		      \
-		      : "r" ((long) (oldval)), "m" (*__acev_mem),	      \
-		        "r" (__acev_mem), "0" ((long) (newval)) : "memory");  \
-  __acev_tmp; })
-
-#define atomic_exchange_acq(mem, newvalue) \
-  ({ __typeof (*(mem)) __oldval, __val;					      \
-     __typeof (mem) __memp = (mem);					      \
-     __typeof (*(mem)) __value = (newvalue);				      \
-									      \
-     if (sizeof (*(mem)) == 4)						      \
-       __asm ("swap %0, %1"						      \
-	      : "=m" (*__memp), "=r" (__oldval)				      \
-	      : "m" (*__memp), "1" (__value) : "memory");		      \
-     else								      \
-       {								      \
-	 __val = *__memp;						      \
-	 do								      \
-	   {								      \
-	     __oldval = __val;						      \
-	     __val = atomic_compare_and_exchange_val_acq (__memp, __value,    \
-							  __oldval);	      \
-	   }								      \
-         while (__builtin_expect (__val != __oldval, 0));		      \
-       }								      \
-     __oldval; })
-
-#define atomic_compare_and_exchange_val_24_acq(mem, newval, oldval) \
-  atomic_compare_and_exchange_val_acq (mem, newval, oldval)
-
-#define atomic_exchange_24_rel(mem, newval) \
-  atomic_exchange_rel (mem, newval)
-
-#define atomic_full_barrier() \
-  __asm __volatile ("membar #LoadLoad | #LoadStore"			      \
-			  " | #StoreLoad | #StoreStore" : : : "memory")
-#define atomic_read_barrier() \
-  __asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory")
-#define atomic_write_barrier() \
-  __asm __volatile ("membar #LoadStore | #StoreStore" : : : "memory")
-
-extern void __cpu_relax (void);
-#define atomic_spin_nop() __cpu_relax ()
diff --git a/sysdeps/sparc/sparc64/backtrace.h b/sysdeps/sparc/sparc64/backtrace.h
deleted file mode 100644
index b9c95c51cf..0000000000
--- a/sysdeps/sparc/sparc64/backtrace.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Private macros for guiding the backtrace implementation, sparc64
-   version.  */
-
-#define backtrace_flush_register_windows() \
-	asm volatile ("flushw")
-
-#define BACKTRACE_STACK_BIAS	STACK_BIAS
diff --git a/sysdeps/sparc/sparc64/bits/wordsize.h b/sysdeps/sparc/sparc64/bits/wordsize.h
deleted file mode 100644
index 2f66f10d72..0000000000
--- a/sysdeps/sparc/sparc64/bits/wordsize.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Determine the wordsize from the preprocessor defines.  */
-
-#if defined __arch64__ || defined __sparcv9
-# define __WORDSIZE	64
-# define __WORDSIZE_TIME64_COMPAT32	1
-#else
-# define __WORDSIZE	32
-# define __WORDSIZE_TIME64_COMPAT32	0
-# define __WORDSIZE32_SIZE_ULONG	0
-# define __WORDSIZE32_PTRDIFF_LONG	0
-#endif
diff --git a/sysdeps/sparc/sparc64/bzero.c b/sysdeps/sparc/sparc64/bzero.c
deleted file mode 100644
index 37f0f6f993..0000000000
--- a/sysdeps/sparc/sparc64/bzero.c
+++ /dev/null
@@ -1 +0,0 @@
-/* bzero is in memset.S */
diff --git a/sysdeps/sparc/sparc64/cpu_relax.S b/sysdeps/sparc/sparc64/cpu_relax.S
deleted file mode 100644
index 5271164607..0000000000
--- a/sysdeps/sparc/sparc64/cpu_relax.S
+++ /dev/null
@@ -1,67 +0,0 @@
-/* CPU strand yielding for busy loops.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   Contributed by David S. Miller (davem@davemloft.net)
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	.text
-__cpu_relax_generic:
-	rd	%ccr, %g0
-	rd	%ccr, %g0
-	rd	%ccr, %g0
-	retl
-	 nop
-	.size	__cpu_relax_generic,.-__cpu_relax_generic
-
-__cpu_relax_pause:
-	wr	%g0, 128, %asr27
-	retl
-	 nop
-	.size	__cpu_relax_pause,.-__cpu_relax_pause
-
-ENTRY(__cpu_relax)
-	.type	__cpu_relax, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_PAUSE, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__cpu_relax_pause), %o1
-	xor	%o1, %gdop_lox10(__cpu_relax_pause), %o1
-# else
-	set	__cpu_relax_pause, %o1
-# endif
-	ba	10f
-	 nop
-1:
-# ifdef SHARED
-	sethi	%gdop_hix22(__cpu_relax_generic), %o1
-	xor	%o1, %gdop_lox10(__cpu_relax_generic), %o1
-# else
-	set	__cpu_relax_generic, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(__cpu_relax)
diff --git a/sysdeps/sparc/sparc64/dl-irel.h b/sysdeps/sparc/sparc64/dl-irel.h
deleted file mode 100644
index dfd4637557..0000000000
--- a/sysdeps/sparc/sparc64/dl-irel.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Machine-dependent ELF indirect relocation inline functions.
-   SPARC 64-bit version.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _DL_IREL_H
-#define _DL_IREL_H
-
-#include <stdio.h>
-#include <unistd.h>
-#include <dl-plt.h>
-#include <ldsodefs.h>
-
-#define ELF_MACHINE_IRELA	1
-
-static inline Elf64_Addr
-__attribute ((always_inline))
-elf_ifunc_invoke (Elf64_Addr addr)
-{
-  return ((Elf64_Addr (*) (int)) (addr)) (GLRO(dl_hwcap));
-}
-
-static inline void
-__attribute ((always_inline))
-elf_irela (const Elf64_Rela *reloc)
-{
-  unsigned int r_type = (reloc->r_info & 0xff);
-
-  if (__glibc_likely (r_type == R_SPARC_IRELATIVE))
-    {
-      Elf64_Addr *const reloc_addr = (void *) reloc->r_offset;
-      Elf64_Addr value = elf_ifunc_invoke(reloc->r_addend);
-      *reloc_addr = value;
-    }
-  else if (__glibc_likely (r_type == R_SPARC_JMP_IREL))
-    {
-      Elf64_Addr *const reloc_addr = (void *) reloc->r_offset;
-      Elf64_Addr value = elf_ifunc_invoke(reloc->r_addend);
-      struct link_map map = { .l_addr = 0 };
-
-      /* 'high' is always zero, for large PLT entries the linker
-	 emits an R_SPARC_IRELATIVE.  */
-      sparc64_fixup_plt (&map, reloc, reloc_addr, value, 0, 0);
-    }
-  else if (r_type == R_SPARC_NONE)
-    ;
-  else
-    __libc_fatal ("unexpected reloc type in static binary");
-}
-
-#endif /* dl-irel.h */
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
deleted file mode 100644
index 1b59d78a25..0000000000
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ /dev/null
@@ -1,685 +0,0 @@
-/* Machine-dependent ELF dynamic relocation inline functions.  Sparc64 version.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef dl_machine_h
-#define dl_machine_h
-
-#define ELF_MACHINE_NAME "sparc64"
-
-#include <string.h>
-#include <sys/param.h>
-#include <ldsodefs.h>
-#include <sysdep.h>
-#include <dl-plt.h>
-
-#define ELF64_R_TYPE_ID(info)	((info) & 0xff)
-#define ELF64_R_TYPE_DATA(info) ((info) >> 8)
-
-/* Return nonzero iff ELF header is compatible with the running host.  */
-static inline int
-elf_machine_matches_host (const Elf64_Ehdr *ehdr)
-{
-  return ehdr->e_machine == EM_SPARCV9;
-}
-
-/* We have to do this because elf_machine_{dynamic,load_address} can be
-   invoked from functions that have no GOT references, and thus the compiler
-   has no obligation to load the PIC register.  */
-#define LOAD_PIC_REG(PIC_REG)	\
-do {	Elf64_Addr tmp;		\
-	__asm("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t" \
-	      "rd %%pc, %0\n\t" \
-	      "add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t" \
-	      "add %0, %1, %0" \
-	      : "=r" (PIC_REG), "=r" (tmp)); \
-} while (0)
-
-/* Return the link-time address of _DYNAMIC.  Conveniently, this is the
-   first element of the GOT.  This must be inlined in a function which
-   uses global data.  */
-static inline Elf64_Addr
-elf_machine_dynamic (void)
-{
-  register Elf64_Addr *elf_pic_register __asm__("%l7");
-
-  LOAD_PIC_REG (elf_pic_register);
-
-  return *elf_pic_register;
-}
-
-/* Return the run-time load address of the shared object.  */
-static inline Elf64_Addr
-elf_machine_load_address (void)
-{
-  register Elf32_Addr *pc __asm ("%o7");
-  register Elf64_Addr *got __asm ("%l7");
-
-  __asm ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t"
-	 "call 1f\n\t"
-	 " add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t"
-	 "call _DYNAMIC\n\t"
-	 "call _GLOBAL_OFFSET_TABLE_\n"
-	 "1:\tadd %1, %0, %1\n\t" : "=r" (pc), "=r" (got));
-
-  /* got is now l_addr + _GLOBAL_OFFSET_TABLE_
-     *got is _DYNAMIC
-     pc[2]*4 is l_addr + _DYNAMIC - (long)pc - 8
-     pc[3]*4 is l_addr + _GLOBAL_OFFSET_TABLE_ - (long)pc - 12  */
-  return (Elf64_Addr) got - *got + (Elf32_Sword) ((pc[2] - pc[3]) * 4) - 4;
-}
-
-static inline Elf64_Addr __attribute__ ((always_inline))
-elf_machine_fixup_plt (struct link_map *map, lookup_t t,
-		       const Elf64_Rela *reloc,
-		       Elf64_Addr *reloc_addr, Elf64_Addr value)
-{
-  sparc64_fixup_plt (map, reloc, reloc_addr, value + reloc->r_addend,
-		     reloc->r_addend, 1);
-  return value;
-}
-
-/* Return the final value of a plt relocation.  */
-static inline Elf64_Addr
-elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
-		       Elf64_Addr value)
-{
-  /* Don't add addend here, but in elf_machine_fixup_plt instead.
-     value + reloc->r_addend is the value which should actually be
-     stored into .plt data slot.  */
-  return value;
-}
-
-/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
-   PLT entries should not be allowed to define the value.
-   ELF_RTYPE_CLASS_COPY iff TYPE should not be allowed to resolve to one
-   of the main executable's symbols, as for a COPY reloc.  */
-#define elf_machine_type_class(type) \
-  ((((type) == R_SPARC_JMP_SLOT						      \
-     || ((type) >= R_SPARC_TLS_GD_HI22 && (type) <= R_SPARC_TLS_TPOFF64))     \
-    * ELF_RTYPE_CLASS_PLT)						      \
-   | (((type) == R_SPARC_COPY) * ELF_RTYPE_CLASS_COPY))
-
-/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
-#define ELF_MACHINE_JMP_SLOT	R_SPARC_JMP_SLOT
-
-/* The SPARC never uses Elf64_Rel relocations.  */
-#define ELF_MACHINE_NO_REL 1
-#define ELF_MACHINE_NO_RELA 0
-
-/* Set up the loaded object described by L so its unrelocated PLT
-   entries will jump to the on-demand fixup code in dl-runtime.c.  */
-
-static inline int
-elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
-{
-  if (l->l_info[DT_JMPREL] && lazy)
-    {
-      extern void _dl_runtime_resolve_0 (void);
-      extern void _dl_runtime_resolve_1 (void);
-      extern void _dl_runtime_profile_0 (void);
-      extern void _dl_runtime_profile_1 (void);
-      Elf64_Addr res0_addr, res1_addr;
-      unsigned int *plt = (void *) D_PTR (l, l_info[DT_PLTGOT]);
-
-      if (__builtin_expect(profile, 0))
-	{
-	  res0_addr = (Elf64_Addr) &_dl_runtime_profile_0;
-	  res1_addr = (Elf64_Addr) &_dl_runtime_profile_1;
-
-	  if (GLRO(dl_profile) != NULL
-	      && _dl_name_match_p (GLRO(dl_profile), l))
-	    GL(dl_profile_map) = l;
-	}
-      else
-	{
-	  res0_addr = (Elf64_Addr) &_dl_runtime_resolve_0;
-	  res1_addr = (Elf64_Addr) &_dl_runtime_resolve_1;
-	}
-
-      /* PLT0 looks like:
-
-	 sethi	%uhi(_dl_runtime_{resolve,profile}_0), %g4
-	 sethi	%hi(_dl_runtime_{resolve,profile}_0), %g5
-	 or	%g4, %ulo(_dl_runtime_{resolve,profile}_0), %g4
-	 or	%g5, %lo(_dl_runtime_{resolve,profile}_0), %g5
-	 sllx	%g4, 32, %g4
-	 add	%g4, %g5, %g5
-	 jmpl	%g5, %g4
-	  nop
-       */
-
-      plt[0] = 0x09000000 | (res0_addr >> (64 - 22));
-      plt[1] = 0x0b000000 | ((res0_addr >> 10) & 0x003fffff);
-      plt[2] = 0x88112000 | ((res0_addr >> 32) & 0x3ff);
-      plt[3] = 0x8a116000 | (res0_addr & 0x3ff);
-      plt[4] = 0x89293020;
-      plt[5] = 0x8a010005;
-      plt[6] = 0x89c14000;
-      plt[7] = 0x01000000;
-
-      /* PLT1 looks like:
-
-	 sethi	%uhi(_dl_runtime_{resolve,profile}_1), %g4
-	 sethi	%hi(_dl_runtime_{resolve,profile}_1), %g5
-	 or	%g4, %ulo(_dl_runtime_{resolve,profile}_1), %g4
-	 or	%g5, %lo(_dl_runtime_{resolve,profile}_1), %g5
-	 sllx	%g4, 32, %g4
-	 add	%g4, %g5, %g5
-	 jmpl	%g5, %g4
-	  nop
-       */
-
-      plt[8] = 0x09000000 | (res1_addr >> (64 - 22));
-      plt[9] = 0x0b000000 | ((res1_addr >> 10) & 0x003fffff);
-      plt[10] = 0x88112000 | ((res1_addr >> 32) & 0x3ff);
-      plt[11] = 0x8a116000 | (res1_addr & 0x3ff);
-      plt[12] = 0x89293020;
-      plt[13] = 0x8a010005;
-      plt[14] = 0x89c14000;
-      plt[15] = 0x01000000;
-
-      /* Now put the magic cookie at the beginning of .PLT2
-	 Entry .PLT3 is unused by this implementation.  */
-      *((struct link_map **)(&plt[16])) = l;
-
-      if (__builtin_expect (l->l_info[VALIDX(DT_GNU_PRELINKED)] != NULL, 0)
-	  || __builtin_expect (l->l_info [VALIDX (DT_GNU_LIBLISTSZ)] != NULL, 0))
-	{
-	  /* Need to reinitialize .plt to undo prelinking.  */
-	  Elf64_Rela *rela = (Elf64_Rela *) D_PTR (l, l_info[DT_JMPREL]);
-	  Elf64_Rela *relaend
-	    = (Elf64_Rela *) ((char *) rela
-			      + l->l_info[DT_PLTRELSZ]->d_un.d_val);
-
-	  /* prelink must ensure there are no R_SPARC_NONE relocs left
-	     in .rela.plt.  */
-	  while (rela < relaend)
-	    {
-	      if (__builtin_expect (rela->r_addend, 0) != 0)
-		{
-		  Elf64_Addr slot = ((rela->r_offset + l->l_addr + 0x400
-				      - (Elf64_Addr) plt)
-				     / 0x1400) * 0x1400
-				    + (Elf64_Addr) plt - 0x400;
-		  /* ldx [%o7 + X], %g1  */
-		  unsigned int first_ldx = *(unsigned int *)(slot + 12);
-		  Elf64_Addr ptr = slot + (first_ldx & 0xfff) + 4;
-
-		  *(Elf64_Addr *) (rela->r_offset + l->l_addr)
-		    = (Elf64_Addr) plt
-		      - (slot + ((rela->r_offset + l->l_addr - ptr) / 8) * 24
-			 + 4);
-		  ++rela;
-		  continue;
-		}
-
-	      *(unsigned int *) (rela->r_offset + l->l_addr)
-		= 0x03000000 | (rela->r_offset + l->l_addr - (Elf64_Addr) plt);
-	      *(unsigned int *) (rela->r_offset + l->l_addr + 4)
-		= 0x30680000 | ((((Elf64_Addr) plt + 32 - rela->r_offset
-				  - l->l_addr - 4) >> 2) & 0x7ffff);
-	      __asm __volatile ("flush %0" : : "r" (rela->r_offset
-						    + l->l_addr));
-	      __asm __volatile ("flush %0+4" : : "r" (rela->r_offset
-						      + l->l_addr));
-	      ++rela;
-	    }
-	}
-    }
-
-  return lazy;
-}
-
-/* The PLT uses Elf64_Rela relocs.  */
-#define elf_machine_relplt elf_machine_rela
-
-/* Undo the sub %sp, 6*8, %sp; add %sp, STACK_BIAS + 22*8, %o0 below
-   (but w/o STACK_BIAS) to get at the value we want in __libc_stack_end.  */
-#define DL_STACK_END(cookie) \
-  ((void *) (((long) (cookie)) - (22 - 6) * 8))
-
-/* Initial entry point code for the dynamic linker.
-   The C function `_dl_start' is the real entry point;
-   its return value is the user program's entry point.  */
-
-#define RTLD_GOT_ADDRESS(pic_reg, reg, symbol)	\
-	"sethi	%gdop_hix22(" #symbol "), " #reg "\n\t" \
-	"xor	" #reg ", %gdop_lox10(" #symbol "), " #reg "\n\t" \
-	"ldx	[" #pic_reg " + " #reg "], " #reg ", %gdop(" #symbol ")\n"
-
-#define __S1(x)	#x
-#define __S(x)	__S1(x)
-
-#define RTLD_START __asm__ ( "\n"					\
-"	.text\n"							\
-"	.global	_start\n"						\
-"	.type	_start, @function\n"					\
-"	.align	32\n"							\
-"_start:\n"								\
-"   /* Make room for functions to drop their arguments on the stack.  */\n" \
-"	sub	%sp, 6*8, %sp\n"					\
-"   /* Pass pointer to argument block to _dl_start.  */\n"		\
-"	call	_dl_start\n"						\
-"	 add	 %sp," __S(STACK_BIAS) "+22*8,%o0\n"			\
-"	/* FALLTHRU */\n"						\
-"	.size _start, .-_start\n"					\
-"\n"									\
-"	.global	_dl_start_user\n"					\
-"	.type	_dl_start_user, @function\n"				\
-"_dl_start_user:\n"							\
-"   /* Load the GOT register.  */\n"					\
-"1:	call	11f\n"							\
-"	 sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n"		\
-"11:	or	%l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n"		\
-"	add	%l7, %o7, %l7\n"					\
-"   /* Save the user entry point address in %l0.  */\n"			\
-"	mov	%o0, %l0\n"						\
-"   /* See if we were run as a command with the executable file name as an\n" \
-"      extra leading argument.  If so, we must shift things around since we\n" \
-"      must keep the stack doubleword aligned.  */\n"			\
-	RTLD_GOT_ADDRESS(%l7, %g5, _dl_skip_args)			\
-"	ld	[%g5], %i0\n"						\
-"	brz,pt	%i0, 2f\n"						\
-"	 ldx	[%sp + " __S(STACK_BIAS) " + 22*8], %i5\n"		\
-"	/* Find out how far to shift.  */\n"				\
-"	sub	%i5, %i0, %i5\n"					\
-"	sllx	%i0, 3, %l6\n"						\
-	RTLD_GOT_ADDRESS(%l7, %l4, _dl_argv)				\
-"	stx	%i5, [%sp + " __S(STACK_BIAS) " + 22*8]\n"		\
-"	add	%sp, " __S(STACK_BIAS) " + 23*8, %i1\n"			\
-"	add	%i1, %l6, %i2\n"					\
-"	ldx	[%l4], %l5\n"						\
-"	/* Copy down argv.  */\n"					\
-"12:	ldx	[%i2], %i3\n"						\
-"	add	%i2, 8, %i2\n"						\
-"	stx	%i3, [%i1]\n"						\
-"	brnz,pt	%i3, 12b\n"						\
-"	 add	%i1, 8, %i1\n"						\
-"	sub	%l5, %l6, %l5\n"					\
-"	/* Copy down envp.  */\n"					\
-"13:	ldx	[%i2], %i3\n"						\
-"	add	%i2, 8, %i2\n"						\
-"	stx	%i3, [%i1]\n"						\
-"	brnz,pt	%i3, 13b\n"						\
-"	 add	%i1, 8, %i1\n"						\
-"	/* Copy down auxiliary table.  */\n"				\
-"14:	ldx	[%i2], %i3\n"						\
-"	ldx	[%i2 + 8], %i4\n"					\
-"	add	%i2, 16, %i2\n"						\
-"	stx	%i3, [%i1]\n"						\
-"	stx	%i4, [%i1 + 8]\n"					\
-"	brnz,pt	%i3, 14b\n"						\
-"	 add	%i1, 16, %i1\n"						\
-"	stx	%l5, [%l4]\n"						\
-"  /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp.  */\n"	\
-"2:\t"	RTLD_GOT_ADDRESS(%l7, %o0, _rtld_local)				\
-"	sllx	%i5, 3, %o3\n"						\
-"	add	%sp, " __S(STACK_BIAS) " + 23*8, %o2\n"			\
-"	add	%o3, 8, %o3\n"						\
-"	mov	%i5, %o1\n"						\
-"	add	%o2, %o3, %o3\n"					\
-"	call	_dl_init\n"						\
-"	 ldx	[%o0], %o0\n"						\
-"   /* Pass our finalizer function to the user in %g1.  */\n"		\
-       RTLD_GOT_ADDRESS(%l7, %g1, _dl_fini)				\
-"  /* Jump to the user's entry point and deallocate the extra stack we got.  */\n" \
-"	jmp	%l0\n"							\
-"	 add	%sp, 6*8, %sp\n"					\
-"	.size	_dl_start_user, . - _dl_start_user\n"			\
-"	.previous\n");
-
-#endif /* dl_machine_h */
-
-#define ARCH_LA_PLTENTER	sparc64_gnu_pltenter
-#define ARCH_LA_PLTEXIT		sparc64_gnu_pltexit
-
-#ifdef RESOLVE_MAP
-
-/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
-   MAP is the object containing the reloc.  */
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
-		  const Elf64_Sym *sym, const struct r_found_version *version,
-		  void *const reloc_addr_arg, int skip_ifunc)
-{
-  Elf64_Addr *const reloc_addr = reloc_addr_arg;
-#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
-  const Elf64_Sym *const refsym = sym;
-#endif
-  Elf64_Addr value;
-  const unsigned long int r_type = ELF64_R_TYPE_ID (reloc->r_info);
-#if !defined RESOLVE_CONFLICT_FIND_MAP
-  struct link_map *sym_map = NULL;
-#endif
-
-#if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC
-  /* This is defined in rtld.c, but nowhere in the static libc.a; make the
-     reference weak so static programs can still link.  This declaration
-     cannot be done when compiling rtld.c (i.e.  #ifdef RTLD_BOOTSTRAP)
-     because rtld.c contains the common defn for _dl_rtld_map, which is
-     incompatible with a weak decl in the same file.  */
-  weak_extern (_dl_rtld_map);
-#endif
-
-  if (__glibc_unlikely (r_type == R_SPARC_NONE))
-    return;
-
-  if (__glibc_unlikely (r_type == R_SPARC_SIZE64))
-    {
-      *reloc_addr = sym->st_size + reloc->r_addend;
-      return;
-    }
-
-#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC
-  if (__glibc_unlikely (r_type == R_SPARC_RELATIVE))
-    {
-# if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC
-      if (map != &_dl_rtld_map) /* Already done in rtld itself. */
-# endif
-	*reloc_addr += map->l_addr + reloc->r_addend;
-      return;
-    }
-#endif
-
-#ifndef RESOLVE_CONFLICT_FIND_MAP
-  if (__builtin_expect (ELF64_ST_BIND (sym->st_info) == STB_LOCAL, 0)
-      && sym->st_shndx != SHN_UNDEF)
-    {
-      value = map->l_addr;
-    }
-  else
-    {
-      sym_map = RESOLVE_MAP (&sym, version, r_type);
-      value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;
-    }
-#else
-  value = 0;
-#endif
-
-  value += reloc->r_addend;	/* Assume copy relocs have zero addend.  */
-
-  if (sym != NULL
-      && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)
-      && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
-      && __builtin_expect (!skip_ifunc, 1))
-    value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
-
-  switch (r_type)
-    {
-#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
-    case R_SPARC_COPY:
-      if (sym == NULL)
-	/* This can happen in trace mode if an object could not be
-	   found.  */
-	break;
-      if (sym->st_size > refsym->st_size
-	  || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
-	{
-	  const char *strtab;
-
-	  strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
-	  _dl_error_printf ("\
-%s: Symbol `%s' has different size in shared object, consider re-linking\n",
-			    RTLD_PROGNAME, strtab + refsym->st_name);
-	}
-      memcpy (reloc_addr_arg, (void *) value,
-	      MIN (sym->st_size, refsym->st_size));
-      break;
-#endif
-    case R_SPARC_64:
-    case R_SPARC_GLOB_DAT:
-      *reloc_addr = value;
-      break;
-    case R_SPARC_IRELATIVE:
-      value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
-      *reloc_addr = value;
-      break;
-    case R_SPARC_JMP_IREL:
-      value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
-      /* 'high' is always zero, for large PLT entries the linker
-	 emits an R_SPARC_IRELATIVE.  */
-#ifdef RESOLVE_CONFLICT_FIND_MAP
-      sparc64_fixup_plt (NULL, reloc, reloc_addr, value, 0, 0);
-#else
-      sparc64_fixup_plt (map, reloc, reloc_addr, value, 0, 0);
-#endif
-      break;
-    case R_SPARC_JMP_SLOT:
-#ifdef RESOLVE_CONFLICT_FIND_MAP
-      /* R_SPARC_JMP_SLOT conflicts against .plt[32768+]
-	 relocs should be turned into R_SPARC_64 relocs
-	 in .gnu.conflict section.
-	 r_addend non-zero does not mean it is a .plt[32768+]
-	 reloc, instead it is the actual address of the function
-	 to call.  */
-      sparc64_fixup_plt (NULL, reloc, reloc_addr, value, 0, 0);
-#else
-      sparc64_fixup_plt (map, reloc, reloc_addr, value, reloc->r_addend, 0);
-#endif
-      break;
-#ifndef RESOLVE_CONFLICT_FIND_MAP
-    case R_SPARC_TLS_DTPMOD64:
-      /* Get the information from the link map returned by the
-	 resolv function.  */
-      if (sym_map != NULL)
-	*reloc_addr = sym_map->l_tls_modid;
-      break;
-    case R_SPARC_TLS_DTPOFF64:
-      /* During relocation all TLS symbols are defined and used.
-	 Therefore the offset is already correct.  */
-      *reloc_addr = (sym == NULL ? 0 : sym->st_value) + reloc->r_addend;
-      break;
-    case R_SPARC_TLS_TPOFF64:
-      /* The offset is negative, forward from the thread pointer.  */
-      /* We know the offset of object the symbol is contained in.
-	 It is a negative value which will be added to the
-	 thread pointer.  */
-      if (sym != NULL)
-	{
-	  CHECK_STATIC_TLS (map, sym_map);
-	  *reloc_addr = sym->st_value - sym_map->l_tls_offset
-	    + reloc->r_addend;
-	}
-      break;
-# ifndef RTLD_BOOTSTRAP
-    case R_SPARC_TLS_LE_HIX22:
-    case R_SPARC_TLS_LE_LOX10:
-      if (sym != NULL)
-	{
-	  CHECK_STATIC_TLS (map, sym_map);
-	  value = sym->st_value - sym_map->l_tls_offset
-	    + reloc->r_addend;
-	  if (r_type == R_SPARC_TLS_LE_HIX22)
-	    *(unsigned int *)reloc_addr =
-	      ((*(unsigned int *)reloc_addr & 0xffc00000)
-	       | (((~value) >> 10) & 0x3fffff));
-	  else
-	    *(unsigned int *)reloc_addr =
-	      ((*(unsigned int *)reloc_addr & 0xffffe000) | (value & 0x3ff)
-	       | 0x1c00);
-	}
-      break;
-# endif
-#endif
-#ifndef RTLD_BOOTSTRAP
-    case R_SPARC_8:
-      *(char *) reloc_addr = value;
-      break;
-    case R_SPARC_16:
-      *(short *) reloc_addr = value;
-      break;
-    case R_SPARC_32:
-      *(unsigned int *) reloc_addr = value;
-      break;
-    case R_SPARC_DISP8:
-      *(char *) reloc_addr = (value - (Elf64_Addr) reloc_addr);
-      break;
-    case R_SPARC_DISP16:
-      *(short *) reloc_addr = (value - (Elf64_Addr) reloc_addr);
-      break;
-    case R_SPARC_DISP32:
-      *(unsigned int *) reloc_addr = (value - (Elf64_Addr) reloc_addr);
-      break;
-    case R_SPARC_DISP64:
-      *reloc_addr = (value - (Elf64_Addr) reloc_addr);
-      break;
-    case R_SPARC_REGISTER:
-      *reloc_addr = value;
-      break;
-    case R_SPARC_WDISP30:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & 0xc0000000) |
-	 (((value - (Elf64_Addr) reloc_addr) >> 2) & 0x3fffffff));
-      break;
-
-      /* MEDLOW code model relocs */
-    case R_SPARC_LO10:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & ~0x3ff) |
-	 (value & 0x3ff));
-      break;
-    case R_SPARC_HI22:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & 0xffc00000) |
-	 ((value >> 10) & 0x3fffff));
-      break;
-    case R_SPARC_OLO10:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & ~0x1fff) |
-	 (((value & 0x3ff) + ELF64_R_TYPE_DATA (reloc->r_info)) & 0x1fff));
-      break;
-
-      /* ABS34 code model reloc */
-    case R_SPARC_H34:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & 0xffc00000) |
-	 ((value >> 12) & 0x3fffff));
-
-      /* MEDMID code model relocs */
-    case R_SPARC_H44:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & 0xffc00000) |
-	 ((value >> 22) & 0x3fffff));
-      break;
-    case R_SPARC_M44:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & ~0x3ff) |
-	 ((value >> 12) & 0x3ff));
-      break;
-    case R_SPARC_L44:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & ~0xfff) |
-	 (value & 0xfff));
-      break;
-
-      /* MEDANY code model relocs */
-    case R_SPARC_HH22:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & 0xffc00000) |
-	 (value >> 42));
-      break;
-    case R_SPARC_HM10:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & ~0x3ff) |
-	 ((value >> 32) & 0x3ff));
-      break;
-    case R_SPARC_LM22:
-      *(unsigned int *) reloc_addr =
-	((*(unsigned int *)reloc_addr & 0xffc00000) |
-	 ((value >> 10) & 0x003fffff));
-      break;
-    case R_SPARC_UA16:
-      ((unsigned char *) reloc_addr_arg) [0] = value >> 8;
-      ((unsigned char *) reloc_addr_arg) [1] = value;
-      break;
-    case R_SPARC_UA32:
-      ((unsigned char *) reloc_addr_arg) [0] = value >> 24;
-      ((unsigned char *) reloc_addr_arg) [1] = value >> 16;
-      ((unsigned char *) reloc_addr_arg) [2] = value >> 8;
-      ((unsigned char *) reloc_addr_arg) [3] = value;
-      break;
-    case R_SPARC_UA64:
-      if (! ((long) reloc_addr_arg & 3))
-	{
-	  /* Common in .eh_frame */
-	  ((unsigned int *) reloc_addr_arg) [0] = value >> 32;
-	  ((unsigned int *) reloc_addr_arg) [1] = value;
-	  break;
-	}
-      ((unsigned char *) reloc_addr_arg) [0] = value >> 56;
-      ((unsigned char *) reloc_addr_arg) [1] = value >> 48;
-      ((unsigned char *) reloc_addr_arg) [2] = value >> 40;
-      ((unsigned char *) reloc_addr_arg) [3] = value >> 32;
-      ((unsigned char *) reloc_addr_arg) [4] = value >> 24;
-      ((unsigned char *) reloc_addr_arg) [5] = value >> 16;
-      ((unsigned char *) reloc_addr_arg) [6] = value >> 8;
-      ((unsigned char *) reloc_addr_arg) [7] = value;
-      break;
-#endif
-#if !defined RTLD_BOOTSTRAP || defined _NDEBUG
-    default:
-      _dl_reloc_bad_type (map, r_type, 0);
-      break;
-#endif
-    }
-}
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
-			   void *const reloc_addr_arg)
-{
-  Elf64_Addr *const reloc_addr = reloc_addr_arg;
-  *reloc_addr = l_addr + reloc->r_addend;
-}
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_lazy_rel (struct link_map *map,
-		      Elf64_Addr l_addr, const Elf64_Rela *reloc,
-		      int skip_ifunc)
-{
-  Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
-  const unsigned int r_type = ELF64_R_TYPE (reloc->r_info);
-
-  if (__glibc_likely (r_type == R_SPARC_JMP_SLOT))
-    ;
-  else if (r_type == R_SPARC_JMP_IREL
-	   || r_type == R_SPARC_IRELATIVE)
-    {
-      Elf64_Addr value = map->l_addr + reloc->r_addend;
-      if (__glibc_likely (!skip_ifunc))
-	value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
-      if (r_type == R_SPARC_JMP_IREL)
-	{
-	  /* 'high' is always zero, for large PLT entries the linker
-	     emits an R_SPARC_IRELATIVE.  */
-	  sparc64_fixup_plt (map, reloc, reloc_addr, value, 0, 1);
-	}
-      else
-	*reloc_addr = value;
-    }
-  else if (r_type == R_SPARC_NONE)
-    ;
-  else
-    _dl_reloc_bad_type (map, r_type, 1);
-}
-
-#endif	/* RESOLVE_MAP */
diff --git a/sysdeps/sparc/sparc64/dl-plt.h b/sysdeps/sparc/sparc64/dl-plt.h
deleted file mode 100644
index daad1063b3..0000000000
--- a/sysdeps/sparc/sparc64/dl-plt.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* PLT fixups.  Sparc 64-bit version.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _DL_PLT_H
-#define _DL_PLT_H
-
-/* We have 4 cases to handle.  And we code different code sequences
-   for each one.  I love V9 code models...  */
-static inline void __attribute__ ((always_inline))
-sparc64_fixup_plt (struct link_map *map, const Elf64_Rela *reloc,
-		   Elf64_Addr *reloc_addr, Elf64_Addr value,
-		   Elf64_Addr high, int t)
-{
-  unsigned int *insns = (unsigned int *) reloc_addr;
-  Elf64_Addr plt_vaddr = (Elf64_Addr) reloc_addr;
-  Elf64_Sxword disp = value - plt_vaddr;
-
-  /* 't' is '0' if we are resolving this PLT entry for RTLD bootstrap,
-     in which case we'll be resolving all PLT entries and thus can
-     optimize by overwriting instructions starting at the first PLT entry
-     instruction and we need not be mindful of thread safety.
-
-     Otherwise, 't' is '1'.
-
-     Now move plt_vaddr up to the call instruction.  */
-  plt_vaddr += ((t + 1) * 4);
-
-  /* PLT entries .PLT32768 and above look always the same.  */
-  if (__builtin_expect (high, 0) != 0)
-    {
-      *reloc_addr = value - map->l_addr;
-    }
-  /* Near destination.  */
-  else if (disp >= -0x800000 && disp < 0x800000)
-    {
-      unsigned int insn;
-
-      /* ba,a */
-      insn = 0x30800000 | ((disp >> 2) & 0x3fffff);
-
-      if (disp >= -0x100000 && disp < 0x100000)
-	{
-	  /* ba,a,pt %icc */
-	  insn = 0x30480000  | ((disp >> 2) & 0x07ffff);
-	}
-
-      /* As this is just one instruction, it is thread safe and so we
-	 can avoid the unnecessary sethi FOO, %g1.  Each 64-bit PLT
-	 entry is 8 instructions long, so we can't run into the 'jmp'
-	 delay slot problems 32-bit PLTs can.  */
-      insns[0] = insn;
-      __asm __volatile ("flush %0" : : "r" (insns));
-    }
-  /* 32-bit Sparc style, the target is in the lower 32-bits of
-     address space.  */
-  else if (insns += t, (value >> 32) == 0)
-    {
-      /* sethi	%hi(target), %g1
-	 jmpl	%g1 + %lo(target), %g0  */
-
-      insns[1] = 0x81c06000 | (value & 0x3ff);
-      __asm __volatile ("flush %0 + 4" : : "r" (insns));
-
-      insns[0] = 0x03000000 | ((unsigned int)(value >> 10));
-      __asm __volatile ("flush %0" : : "r" (insns));
-    }
-  /* We can also get somewhat simple sequences if the distance between
-     the target and the PLT entry is within +/- 2GB.  */
-  else if ((plt_vaddr > value
-	    && ((plt_vaddr - value) >> 31) == 0)
-	   || (value > plt_vaddr
-	       && ((value - plt_vaddr) >> 31) == 0))
-    {
-      unsigned int displacement;
-
-      if (plt_vaddr > value)
-	displacement = (0 - (plt_vaddr - value));
-      else
-	displacement = value - plt_vaddr;
-
-      /* mov	%o7, %g1
-	 call	displacement
-	  mov	%g1, %o7  */
-
-      insns[2] = 0x9e100001;
-      __asm __volatile ("flush %0 + 8" : : "r" (insns));
-
-      insns[1] = 0x40000000 | (displacement >> 2);
-      __asm __volatile ("flush %0 + 4" : : "r" (insns));
-
-      insns[0] = 0x8210000f;
-      __asm __volatile ("flush %0" : : "r" (insns));
-    }
-  /* Worst case, ho hum...  */
-  else
-    {
-      unsigned int high32 = (value >> 32);
-      unsigned int low32 = (unsigned int) value;
-
-      /* ??? Some tricks can be stolen from the sparc64 egcs backend
-	     constant formation code I wrote.  -DaveM  */
-
-      if (__glibc_unlikely (high32 & 0x3ff))
-	{
-	  /* sethi	%hh(value), %g1
-	     sethi	%lm(value), %g5
-	     or		%g1, %hm(value), %g1
-	     or		%g5, %lo(value), %g5
-	     sllx	%g1, 32, %g1
-	     jmpl	%g1 + %g5, %g0
-	      nop  */
-
-	  insns[5] = 0x81c04005;
-	  __asm __volatile ("flush %0 + 20" : : "r" (insns));
-
-	  insns[4] = 0x83287020;
-	  __asm __volatile ("flush %0 + 16" : : "r" (insns));
-
-	  insns[3] = 0x8a116000 | (low32 & 0x3ff);
-	  __asm __volatile ("flush %0 + 12" : : "r" (insns));
-
-	  insns[2] = 0x82106000 | (high32 & 0x3ff);
-	}
-      else
-	{
-	  /* sethi	%hh(value), %g1
-	     sethi	%lm(value), %g5
-	     sllx	%g1, 32, %g1
-	     or		%g5, %lo(value), %g5
-	     jmpl	%g1 + %g5, %g0
-	      nop  */
-
-	  insns[4] = 0x81c04005;
-	  __asm __volatile ("flush %0 + 16" : : "r" (insns));
-
-	  insns[3] = 0x8a116000 | (low32 & 0x3ff);
-	  __asm __volatile ("flush %0 + 12" : : "r" (insns));
-
-	  insns[2] = 0x83287020;
-	}
-
-      __asm __volatile ("flush %0 + 8" : : "r" (insns));
-
-      insns[1] = 0x0b000000 | (low32 >> 10);
-      __asm __volatile ("flush %0 + 4" : : "r" (insns));
-
-      insns[0] = 0x03000000 | (high32 >> 10);
-      __asm __volatile ("flush %0" : : "r" (insns));
-    }
-}
-
-#endif /* dl-plt.h */
diff --git a/sysdeps/sparc/sparc64/dl-trampoline.S b/sysdeps/sparc/sparc64/dl-trampoline.S
deleted file mode 100644
index 8e1a6efb13..0000000000
--- a/sysdeps/sparc/sparc64/dl-trampoline.S
+++ /dev/null
@@ -1,325 +0,0 @@
-/* PLT trampolines.  Sparc 64-bit version.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	.text
-	.align	32
-
-	/* %g1:	PLT offset loaded by PLT entry
-	 * %g4: callers PC, which is PLT0 + 24, therefore we
-	 *      add (32 + 8) to get the address of PLT2 which
-	 *      is where the magic cookie is stored
-	 */
-	.globl	_dl_runtime_resolve_0
-	.type	_dl_runtime_resolve_0, @function
-_dl_runtime_resolve_0:
-	cfi_startproc
-
-	save	%sp, -192, %sp
-	cfi_def_cfa_register(%fp)
-	cfi_window_save
-	cfi_register(%o7, %i7)
-
-	sethi   %hi(1047552), %l2
-	ldx	[%g4 + 32 + 8], %o0
-	sub     %g1, %g4, %l0
-	xor     %l2, -1016, %l2
-	sethi   %hi(5120), %l3	/* 160 * 32 */
-	add     %l0, %l2, %l0
-	sethi   %hi(32768), %l4
-	udivx   %l0, %l3, %l3
-	sllx    %l3, 2, %l1
-	add     %l1, %l3, %l1
-	sllx    %l1, 10, %l2
-	sub	%l4, 4, %l4
-	sllx    %l1, 5, %l1
-	sub     %l0, %l2, %l0
-	udivx   %l0, 24, %l0
-	add     %l0, %l4, %l0
-	add     %l1, %l0, %l1
-	add     %l1, %l1, %l0
-	add     %l0, %l1, %l0
-	call	_dl_fixup
-	 sllx    %l0, 3, %o1
-	jmp	%o0
-	 restore
-
-	cfi_endproc
-
-	.size	_dl_runtime_resolve_0, .-_dl_runtime_resolve_0
-
-	/* %g1:	PLT offset loaded by PLT entry
-	 * %g4: callers PC, which is PLT1 + 24, therefore we
-	 *      add 8 to get the address of PLT2 which
-	 *      is where the magic cookie is stored
-	 */
-	.globl	_dl_runtime_resolve_1
-	.type	_dl_runtime_resolve_1, @function
-_dl_runtime_resolve_1:
-	cfi_startproc
-
-	save	%sp, -192, %sp
-	cfi_def_cfa_register(%fp)
-	cfi_window_save
-	cfi_register(%o7, %i7)
-
-	srlx	%g1, 12, %o1
-	ldx	[%g4 + 8], %o0
-	add	%o1, %o1, %o3
-	sub	%o1, 96, %o1
-	call	_dl_fixup
-	 add	%o1, %o3, %o1
-	jmp	%o0
-	 restore
-
-	cfi_endproc
-
-	.size	_dl_runtime_resolve_1, .-_dl_runtime_resolve_1
-
-	/* For the profiling cases we pass in our stack frame
-	 * as the base of the La_sparc64_regs, so it looks
-	 * like:
-	 *	%l0			%sp
-	 *	...
-	 *	%l7			%sp + (7 * 8)
-	 *	%i0			%sp + (8 * 8)
-	 *	...
-	 *	%i7			%sp + (15 * 8)
-	 *	%f0			%sp + (16 * 8)
-	 *	%f16			%sp + (31 * 8)
-	 *	framesize		%sp + (32 * 8)
-	 */
-
-	.globl	_dl_profile_save_regs
-	.type	_dl_profile_save_regs, @function
-_dl_profile_save_regs:
-	cfi_startproc
-
-	stx	%l0, [%sp + STACK_BIAS + ( 0 * 8)]
-	stx	%l1, [%sp + STACK_BIAS + ( 1 * 8)]
-	stx	%l2, [%sp + STACK_BIAS + ( 2 * 8)]
-	stx	%l3, [%sp + STACK_BIAS + ( 3 * 8)]
-	stx	%l4, [%sp + STACK_BIAS + ( 4 * 8)]
-	stx	%l5, [%sp + STACK_BIAS + ( 5 * 8)]
-	stx	%l6, [%sp + STACK_BIAS + ( 6 * 8)]
-	stx	%l7, [%sp + STACK_BIAS + ( 7 * 8)]
-	stx	%i0, [%sp + STACK_BIAS + ( 8 * 8)]
-	stx	%i1, [%sp + STACK_BIAS + ( 9 * 8)]
-	stx	%i2, [%sp + STACK_BIAS + (10 * 8)]
-	stx	%i3, [%sp + STACK_BIAS + (11 * 8)]
-	stx	%i4, [%sp + STACK_BIAS + (12 * 8)]
-	stx	%i5, [%sp + STACK_BIAS + (13 * 8)]
-	stx	%i6, [%sp + STACK_BIAS + (14 * 8)]
-	stx	%i7, [%sp + STACK_BIAS + (15 * 8)]
-	std	%f0, [%sp + STACK_BIAS + (16 * 8)]
-	std	%f2, [%sp + STACK_BIAS + (17 * 8)]
-	std	%f4, [%sp + STACK_BIAS + (18 * 8)]
-	std	%f6, [%sp + STACK_BIAS + (19 * 8)]
-	std	%f8, [%sp + STACK_BIAS + (20 * 8)]
-	std	%f10, [%sp + STACK_BIAS + (21 * 8)]
-	std	%f12, [%sp + STACK_BIAS + (22 * 8)]
-	std	%f14, [%sp + STACK_BIAS + (23 * 8)]
-	std	%f16, [%sp + STACK_BIAS + (24 * 8)]
-	std	%f18, [%sp + STACK_BIAS + (25 * 8)]
-	std	%f20, [%sp + STACK_BIAS + (26 * 8)]
-	std	%f22, [%sp + STACK_BIAS + (27 * 8)]
-	std	%f24, [%sp + STACK_BIAS + (28 * 8)]
-	std	%f26, [%sp + STACK_BIAS + (29 * 8)]
-	std	%f28, [%sp + STACK_BIAS + (30 * 8)]
-	retl
-	 std	%f30, [%sp + STACK_BIAS + (31 * 8)]
-
-	cfi_endproc
-
-	.size	_dl_profile_save_regs, .-_dl_profile_save_regs
-
-	/* If we are going to call pltexit, then we must replicate
-	 * the caller's stack frame.
-	 * %o0: PLT resolved function address
-	 */
-	.globl	_dl_profile_invoke
-	.type	_dl_profile_invoke, @function
-_dl_profile_invoke:
-	cfi_startproc
-
-	add	%l0, 7, %l0
-	andn	%l0, 7, %l0
-	add	%l0, (8 * 8), %g1
-
-	sub	%sp, %g1, %sp
-	srlx	%l0, 3, %l7
-	mov	%o0, %l1
-	mov	%i0, %o0
-	mov	%i1, %o1
-	mov	%i2, %o2
-	mov	%i3, %o3
-	mov	%i4, %o4
-	mov	%i5, %o5
-	add	%fp, STACK_BIAS, %l2
-	brz	%l0, 2f
-	 add	%sp, STACK_BIAS, %l3
-1:	ldx	[%l2], %l4
-	add	%l2, 0x8, %l2
-	subcc	%l7, 1, %l7
-	stx	%l4, [%l3]
-	bne,pt	%xcc, 1b
-	 add	%l3, 0x8, %l3
-
-2:	jmpl	%l1, %o7
-	 nop
-
-	stx	%o0, [%sp + STACK_BIAS + (16 * 8)]
-	stx	%o1, [%sp + STACK_BIAS + (17 * 8)]
-	stx	%o2, [%sp + STACK_BIAS + (18 * 8)]
-	stx	%o3, [%sp + STACK_BIAS + (19 * 8)]
-	std	%f0, [%sp + STACK_BIAS + (20 * 8)]
-	std	%f2, [%sp + STACK_BIAS + (21 * 8)]
-	std	%f4, [%sp + STACK_BIAS + (22 * 8)]
-	std	%f8, [%sp + STACK_BIAS + (23 * 8)]
-
-	mov	%l5, %o0
-	mov	%l6, %o1
-	add	%sp, STACK_BIAS + (24 * 8), %o2
-	call	_dl_call_pltexit
-	 add	%sp, STACK_BIAS + (16 * 8), %o3
-
-	ldx	[%sp + STACK_BIAS + (16 * 8)], %i0
-	ldx	[%sp + STACK_BIAS + (17 * 8)], %i1
-	ldx	[%sp + STACK_BIAS + (18 * 8)], %i2
-	ldx	[%sp + STACK_BIAS + (19 * 8)], %i3
-	ldd	[%sp + STACK_BIAS + (20 * 8)], %f0
-	ldd	[%sp + STACK_BIAS + (21 * 8)], %f2
-	ldd	[%sp + STACK_BIAS + (22 * 8)], %f4
-	ldd	[%sp + STACK_BIAS + (23 * 8)], %f8
-
-	jmpl	%i7 + 8, %g0
-	 restore
-
-	cfi_endproc
-
-	.size	_dl_profile_invoke, .-_dl_profile_invoke
-
-	/* %g1:	PLT offset loaded by PLT entry
-	 * %g4: callers PC, which is PLT0 + 24, therefore we
-	 *      add (32 + 8) to get the address of PLT2 which
-	 *      is where the magic cookie is stored
-	 */
-	.align	32
-	.globl	_dl_runtime_profile_0
-	.type	_dl_runtime_profile_0, @function
-_dl_runtime_profile_0:
-	cfi_startproc
-
-	save	%sp, -336, %sp
-	cfi_def_cfa_register(%fp)
-	cfi_window_save
-	cfi_register(%o7, %i7)
-
-	sethi   %hi(1047552), %l2
-	ldx	[%g4 + 32 + 8], %o0
-	sub     %g1, %g4, %l0
-	xor     %l2, -1016, %l2
-	sethi   %hi(5120), %l3	/* 160 * 32 */
-	add     %l0, %l2, %l0
-	sethi   %hi(32768), %l4
-	udivx   %l0, %l3, %l3
-	sllx    %l3, 2, %l1
-	add     %l1, %l3, %l1
-	sllx    %l1, 10, %l2
-	sub	%l4, 4, %l4
-	sllx    %l1, 5, %l1
-	sub     %l0, %l2, %l0
-	udivx   %l0, 24, %l0
-	add     %l0, %l4, %l0
-	add     %l1, %l0, %l1
-	add     %l1, %l1, %l0
-	add     %l0, %l1, %l0
-
-	mov	%i7, %o2
-	sllx    %l0, 3, %o1
-
-	mov	%o0, %l5
-	mov	%o1, %l6
-
-	call	_dl_profile_save_regs
-	 nop
-
-	add	%sp, STACK_BIAS, %o3
-	call	_dl_profile_fixup
-	 add	%sp, (STACK_BIAS + (32 * 8)), %o4
-
-	ldx	[%sp + STACK_BIAS + (32 * 8)], %l0
-	brlz,pt %l0, 1f
-	 nop
-
-	call	_dl_profile_invoke
-	 nop
-
-1:	jmp	%o0
-	 restore
-
-	cfi_endproc
-
-	.size	_dl_runtime_profile_0, .-_dl_runtime_profile_0
-
-	/* %g1:	PLT offset loaded by PLT entry
-	 * %g4: callers PC, which is PLT1 + 24, therefore we
-	 *      add 8 to get the address of PLT2 which
-	 *      is where the magic cookie is stored
-	 */
-	.globl	_dl_runtime_profile_1
-	.type	_dl_runtime_profile_1, @function
-_dl_runtime_profile_1:
-	cfi_startproc
-
-	save	%sp, -336, %sp
-	cfi_def_cfa_register(%fp)
-	cfi_window_save
-	cfi_register(%o7, %i7)
-
-	srlx	%g1, 12, %o1
-	ldx	[%g4 + 8], %o0
-	add	%o1, %o1, %o3
-	sub	%o1, 96, %o1
-	mov	%i7, %o2
-	add	%o1, %o3, %o1
-
-	mov	%o0, %l5
-	mov	%o1, %l6
-
-	call	_dl_profile_save_regs
-	 nop
-
-	add	%sp, STACK_BIAS, %o3
-	call	_dl_profile_fixup
-	 add	%sp, (STACK_BIAS + (32 * 8)), %o4
-
-	ldx	[%sp + STACK_BIAS + (32 * 8)], %l0
-	brlz,pt %l0, 1f
-	 nop
-
-	call	_dl_profile_invoke
-	 nop
-
-1:	jmp	%o0
-	 restore
-
-	cfi_endproc
-
-	.size	_dl_runtime_resolve_1, .-_dl_runtime_resolve_1
diff --git a/sysdeps/sparc/sparc64/fpu/e_sqrtl.c b/sysdeps/sparc/sparc64/fpu/e_sqrtl.c
deleted file mode 100644
index c540d05841..0000000000
--- a/sysdeps/sparc/sparc64/fpu/e_sqrtl.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Long double square root, sparc64 version.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2000.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-
-extern void _Qp_sqrt(long double *, const long double *);
-
-long double
-__ieee754_sqrtl (long double x)
-{
-  long double ret;
-  _Qp_sqrt (&ret, &x);
-  return ret;
-}
-strong_alias (__ieee754_sqrtl, __sqrtl_finite)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/Makefile b/sysdeps/sparc/sparc64/fpu/multiarch/Makefile
deleted file mode 100644
index 03a271dfa4..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-ifeq ($(subdir),math)
-ifeq ($(have-as-vis3),yes)
-libm-sysdep_routines += m_signbitf-vis3 m_signbit-vis3 m_finitef-vis3 \
-			m_finite-vis3 m_isinff-vis3 m_isinf-vis3 \
-			m_isnanf-vis3 m_isnan-vis3 s_lrintf-vis3 \
-			s_lrint-vis3 s_rintf-vis3 s_rint-vis3 \
-			s_fmaf-vis3 s_fma-vis3 \
-			s_nearbyint-vis3 s_nearbyintf-vis3 \
-			s_ceilf-vis3 s_ceil-vis3 s_floorf-vis3 \
-			s_floor-vis3 s_truncf-vis3 s_trunc-vis3
-sysdep_routines += s_signbitf-vis3 s_signbit-vis3 s_finitef-vis3 \
-		   s_finite-vis3 s_isinff-vis3 s_isinf-vis3 \
-		   s_isnanf-vis3 s_isnan-vis3
-
-CFLAGS-s_ceilf-vis3.c += -Wa,-Av9d -mvis3
-CFLAGS-s_ceil-vis3.c += -Wa,-Av9d -mvis3
-CFLAGS-s_floorf-vis3.c += -Wa,-Av9d -mvis3
-CFLAGS-s_floor-vis3.c += -Wa,-Av9d -mvis3
-CFLAGS-s_truncf-vis3.c += -Wa,-Av9d -mvis3
-CFLAGS-s_trunc-vis3.c += -Wa,-Av9d -mvis3
-endif
-endif
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c
deleted file mode 100644
index fa9c5d33ea..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* ceil function, sparc64 vis3 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-
-#define __ceil __ceil_vis3
-
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c
deleted file mode 100644
index efa05e94df..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* ceil function, sparc64 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifdef HAVE_AS_VIS3_SUPPORT
-# include <sparc-ifunc.h>
-# include <math.h>
-
-extern double __ceil_vis3 (double);
-extern double __ceil_generic (double);
-
-sparc_libm_ifunc(__ceil, hwcap & HWCAP_SPARC_VIS3 ? __ceil_vis3 : __ceil_generic);
-weak_alias (__ceil, ceil)
-
-# define __ceil __ceil_generic
-#endif
-
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c
deleted file mode 100644
index 1d918de7af..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Float ceil function, sparc64 vis3 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-
-#define __ceilf __ceilf_vis3
-
-#include <sysdeps/ieee754/flt-32/s_ceilf.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c
deleted file mode 100644
index 62ada7fd2a..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Float ceil function, sparc64 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifdef HAVE_AS_VIS3_SUPPORT
-# include <sparc-ifunc.h>
-# include <math.h>
-
-extern float __ceilf_vis3 (float);
-extern float __ceilf_generic (float);
-
-sparc_libm_ifunc(__ceilf, hwcap & HWCAP_SPARC_VIS3 ? __ceilf_vis3 : __ceilf_generic);
-weak_alias (__ceilf, ceilf)
-
-# define __ceilf __ceilf_generic
-#endif
-
-#include <sysdeps/ieee754/flt-32/s_ceilf.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S
deleted file mode 100644
index 0e2b5f6b00..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* finite().  sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__finite_vis3)
-	fabsd	%f0, %f0
-	movstouw %f0, %o0
-	sethi	%hi(0x7ff00000), %o2
-	sub	%o0, %o2, %o0
-	retl
-	 srl	%o0, 31, %o0
-END (__finite_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S
deleted file mode 100644
index 78406a62b1..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(finite)
-
-hidden_def (__finite)
-weak_alias (__finite, finite)
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef hidden_def
-# define hidden_def(a)
-
-#define __finite __finite_generic
-
-#include "../s_finite.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S
deleted file mode 100644
index 59e17bc75c..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* finitef().  sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__finitef_vis3)
-	fabss	%f1, %f0
-	movstouw %f0, %o0
-	sethi	%hi(0x7f800000), %o2
-	sub	%o0, %o2, %o0
-	retl
-	 srl	%o0, 31, %o0
-END (__finitef_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S
deleted file mode 100644
index cafd41fd92..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(finitef)
-
-hidden_def (__finitef)
-weak_alias (__finitef, finitef)
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef hidden_def
-# define hidden_def(a)
-
-#define __finitef __finitef_generic
-
-#include "../s_finitef.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c
deleted file mode 100644
index 04f6183664..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* floor function, sparc64 vis3 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-
-#define __floor __floor_vis3
-
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c
deleted file mode 100644
index d097f68866..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* floor function, sparc64 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifdef HAVE_AS_VIS3_SUPPORT
-# include <sparc-ifunc.h>
-# include <math.h>
-
-extern double __floor_vis3 (double);
-extern double __floor_generic (double);
-
-sparc_libm_ifunc(__floor, hwcap & HWCAP_SPARC_VIS3 ? __floor_vis3 : __floor_generic);
-weak_alias (__floor, floor)
-
-# define __floor __floor_generic
-#endif
-
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c
deleted file mode 100644
index 0ff49e6802..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Float floor function, sparc64 vis3 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-
-#define __floorf __floorf_vis3
-
-#include <sysdeps/ieee754/flt-32/s_floorf.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c
deleted file mode 100644
index 2a6c710349..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Float floor function, sparc64 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifdef HAVE_AS_VIS3_SUPPORT
-# include <sparc-ifunc.h>
-# include <math.h>
-
-extern float __floorf_vis3 (float);
-extern float __floorf_generic (float);
-
-sparc_libm_ifunc(__floorf, hwcap & HWCAP_SPARC_VIS3 ? __floorf_vis3 : __floorf_generic);
-weak_alias (__floorf, floorf)
-
-# define __floorf __floorf_generic
-#endif
-
-#include <sysdeps/ieee754/flt-32/s_floorf.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S
deleted file mode 100644
index 343ce37de9..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S
+++ /dev/null
@@ -1,25 +0,0 @@
-/* fma function, sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__fma_vis3)
-	retl
-	 fmaddd	%f0, %f2, %f4, %f0
-END (__fma_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c
deleted file mode 100644
index 3f2f1622c8..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifdef HAVE_AS_VIS3_SUPPORT
-# include <sparc-ifunc.h>
-# include <math.h>
-
-extern double __fma_vis3 (double, double, double);
-extern double __fma_generic (double, double, double);
-
-sparc_libm_ifunc(__fma, hwcap & HWCAP_SPARC_FMAF ? __fma_vis3 : __fma_generic);
-weak_alias (__fma, fma)
-
-# define __fma __fma_generic
-#endif
-
-#include <sysdeps/ieee754/dbl-64/s_fma.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S
deleted file mode 100644
index c2fa72a211..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S
+++ /dev/null
@@ -1,25 +0,0 @@
-/* fmaf function, sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__fmaf_vis3)
-	retl
-	 fmadds	%f1, %f3, %f5, %f0
-END (__fmaf_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c
deleted file mode 100644
index 7a273a3b13..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifdef HAVE_AS_VIS3_SUPPORT
-# include <sparc-ifunc.h>
-# include <math.h>
-
-extern float __fmaf_vis3 (float, float, float);
-extern float __fmaf_generic (float, float, float);
-
-sparc_libm_ifunc(__fmaf, hwcap & HWCAP_SPARC_FMAF ? __fmaf_vis3 : __fmaf_generic);
-weak_alias (__fmaf, fmaf)
-
-# define __fmaf __fmaf_generic
-#endif
-
-#include <sysdeps/ieee754/dbl-64/s_fmaf.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S
deleted file mode 100644
index 54ff556eb8..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* isinf().  sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__isinf_vis3)
-	movdtox	%f0, %g1
-	sethi	%hi(0x7ff00000), %o2
-	sllx	%o2, 32, %o2
-	sllx	%g1, 1, %o4
-	srlx	%o4, 1, %o5
-	srax	%g1, 62, %o0
-	xor	%o5, %o2, %o3
-	retl
-	 movrne	%o3, %g0, %o0
-END (__isinf_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S
deleted file mode 100644
index ed9b62640d..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(isinf)
-
-hidden_def (__isinf)
-weak_alias (__isinf, isinf)
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef hidden_def
-# define hidden_def(a)
-
-#define __isinf __isinf_generic
-
-#include "../s_isinf.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S
deleted file mode 100644
index 853bfc64e4..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* isinff().  sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__isinff_vis3)
-	movstouw %f1, %g1
-	sethi	%hi(0x7f800000), %o2
-	sll	%g1, 1, %o4
-	srl	%o4, 1, %o5
-	sra	%g1, 30, %o0
-	xor	%o5, %o2, %o3
-	retl
-	 movrne	%o3, %g0, %o0
-END (__isinff_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S
deleted file mode 100644
index 04517398f8..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(isinff)
-
-hidden_def (__isinff)
-weak_alias (__isinff, isinff)
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef hidden_def
-# define hidden_def(a)
-
-#define __isinff __isinff_generic
-
-#include "../s_isinff.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S
deleted file mode 100644
index 6dbb8dee2c..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* isnan().  sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__isnan_vis3)
-	movdtox	%f0, %o0
-	sethi	%hi(0x7ff00000), %g1
-	sllx	%g1, 32, %g1
-	sllx	%o0, 1, %o0
-	srlx	%o0, 1, %o0
-	sub	%g1, %o0, %o0
-	retl
-	 srlx	%o0, 63, %o0
-END (__isnan_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S
deleted file mode 100644
index 40e985a5d4..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef hidden_def
-# define hidden_def(a)
-
-#define __isnan __isnan_generic
-
-#include "../s_isnan.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S
deleted file mode 100644
index 46fbf6de9f..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* isnanf().  sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__isnanf_vis3)
-	movstouw %f1, %o0
-	sethi	%hi(0x7f800000), %g1
-	sll	%o0, 1, %o0
-	srl	%o0, 1, %o0
-	sub	%g1, %o0, %o0
-	retl
-	 srl	%o0, 31, %o0
-END (__isnanf_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S
deleted file mode 100644
index 6b53b69d2e..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(isnanf)
-
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef hidden_def
-# define hidden_def(a)
-
-#define __isnanf __isnanf_generic
-
-#include "../s_isnanf.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S
deleted file mode 100644
index 87895371dd..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S
+++ /dev/null
@@ -1,52 +0,0 @@
-/* lrint(), sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_FIFTYTWO	0x43300000		/* 2**52 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__lrint_vis3)
-	sethi	%hi(TWO_FIFTYTWO), %o2
-	sllx	%o2, 32, %o2
-	fzero	ZERO
-
-	fnegd	ZERO, SIGN_BIT
-	movxtod	%o2, %f16
-	fabsd	%f0, %f14
-
-	fcmpd	%fcc3, %f14, %f16
-
-	fmovduge %fcc3, ZERO, %f16
-	fand	%f0, SIGN_BIT, SIGN_BIT
-
-	for	%f16, SIGN_BIT, %f16
-	faddd	%f0, %f16, %f6
-	fsubd	%f6, %f16, %f0
-	fabsd	%f0, %f0
-	for	%f0, SIGN_BIT, %f0
-	fdtox	%f0, %f4
-	retl
-	 movdtox %f4, %o0
-END (__lrint_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S
deleted file mode 100644
index 94af8f028c..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(lrint)
-
-weak_alias (__lrint, lrint)
-
-strong_alias (__lrint, __llrint)
-weak_alias (__llrint, llrint)
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef strong_alias
-# define strong_alias(a, b)
-
-#define __lrint __lrint_generic
-
-#include "../s_lrint.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S
deleted file mode 100644
index 3ef005d433..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S
+++ /dev/null
@@ -1,51 +0,0 @@
-/* lrintf(), sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_TWENTYTHREE	0x4b000000		/* 2**23 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__lrintf_vis3)
-	sethi	%hi(TWO_TWENTYTHREE), %o2
-	fzeros	ZERO
-
-	fnegs	ZERO, SIGN_BIT
-	movwtos	%o2, %f16
-	fabss	%f1, %f14
-
-	fcmps	%fcc3, %f14, %f16
-
-	fmovsuge %fcc3, ZERO, %f16
-	fands	%f1, SIGN_BIT, SIGN_BIT
-
-	fors	%f16, SIGN_BIT, %f16
-	fadds	%f1, %f16, %f5
-	fsubs	%f5, %f16, %f0
-	fabss	%f0, %f0
-	fors	%f0, SIGN_BIT, %f0
-	fstox	%f0, %f4
-	retl
-	 movdtox %f4, %o0
-END (__lrintf_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S
deleted file mode 100644
index e6ea4061c3..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(lrintf)
-
-weak_alias (__lrintf, lrintf)
-
-strong_alias (__lrintf, __llrintf)
-weak_alias (__llrintf, llrintf)
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef strong_alias
-# define strong_alias(a, b)
-
-#define __lrintf __lrintf_generic
-
-#include "../s_lrintf.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S
deleted file mode 100644
index 67e570a800..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Round float to int floating-point values without generating
-   an inexact exception, sparc64 vis3 version.
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2013.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* We pop constants into the FPU registers using the incoming
-	   argument stack slots, since this avoid having to use any PIC
-	   references.  We also thus avoid having to allocate a register
-	   window.
-
-	   VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_FIFTYTWO	0x43300000		/* 2**52 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__nearbyint_vis3)
-	fcmpd	%fcc3, %f0, %f0			/* Check for sNaN */
-	stx	%fsr, [%sp + STACK_BIAS + 144]
-	sethi	%hi(TWO_FIFTYTWO), %o2
-	sllx	%o2, 32, %o2
-	ldx	[%sp + STACK_BIAS + 144], %o4
-	sethi	%hi(0xf8003e0), %o5
-	fzero	ZERO
-	or	%o5, %lo(0xf8003e0), %o5
-	fnegd	ZERO, SIGN_BIT
-	andn	%o4, %o5, %o4
-	movxtod	%o2, %f16
-	stx	%o4, [%sp + STACK_BIAS + 136]
-	ldx	[%sp + STACK_BIAS + 136], %fsr
-	fabsd	%f0, %f14
-	fcmpd	%fcc3, %f14, %f16
-	fmovduge %fcc3, ZERO, %f16
-	fand	%f0, SIGN_BIT, SIGN_BIT
-	for	%f16, SIGN_BIT, %f16
-	faddd	%f0, %f16, %f6
-	fsubd	%f6, %f16, %f0
-	fabsd	%f0, %f0
-	for	%f0, SIGN_BIT, %f0
-	retl
-	 ldx	[%sp + STACK_BIAS + 144], %fsr
-END (__nearbyint_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S
deleted file mode 100644
index bb75ab3606..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(nearbyint)
-
-weak_alias (__nearbyint, nearbyint)
-
-# undef weak_alias
-# define weak_alias(a, b)
-
-#define __nearbyint __nearbyint_generic
-
-#include "../s_nearbyint.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S
deleted file mode 100644
index 208af37d0d..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Round float to int floating-point values without generating
-   an inexact exception, sparc64 vis3 version.
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2013.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* We pop constants into the FPU registers using the incoming
-	   argument stack slots, since this avoid having to use any PIC
-	   references.  We also thus avoid having to allocate a register
-	   window.
-
-	   VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_TWENTYTHREE	0x4b000000		/* 2**23 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__nearbyintf_vis3)
-	fcmps	%fcc3, %f1, %f1			/* Check for sNaN */
-	stx	%fsr, [%sp + STACK_BIAS + 144]
-	sethi	%hi(0xf8003e0), %o5
-	sethi	%hi(TWO_TWENTYTHREE), %o2
-	ldx	[%sp + STACK_BIAS + 144], %o4
-	or	%o5, %lo(0xf8003e0), %o5
-	fzeros	ZERO
-	andn	%o4, %o5, %o4
-	fnegs	ZERO, SIGN_BIT
-	movwtos	%o2, %f16
-	stx	%o4, [%sp + STACK_BIAS + 136]
-	ldx	[%sp + STACK_BIAS + 136], %fsr
-	fabss	%f1, %f14
-	fcmps	%fcc3, %f14, %f16
-	fmovsuge %fcc3, ZERO, %f16
-	fands	%f1, SIGN_BIT, SIGN_BIT
-	fors	%f16, SIGN_BIT, %f16
-	fadds	%f1, %f16, %f5
-	fsubs	%f5, %f16, %f0
-	fabss	%f0, %f0
-	fors	%f0, SIGN_BIT, %f0
-	retl
-	 ldx	[%sp + STACK_BIAS + 144], %fsr
-END (__nearbyintf_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S
deleted file mode 100644
index 95100c1bfc..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(nearbyintf)
-
-weak_alias (__nearbyintf, nearbyintf)
-
-# undef weak_alias
-# define weak_alias(a, b)
-
-#define __nearbyintf __nearbyintf_generic
-
-#include "../s_nearbyintf.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S
deleted file mode 100644
index 495a02222e..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Round float to int floating-point values, sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_FIFTYTWO	0x43300000		/* 2**52 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__rint_vis3)
-	sethi	%hi(TWO_FIFTYTWO), %o2
-	sllx	%o2, 32, %o2
-	fzero	ZERO
-
-	fnegd	ZERO, SIGN_BIT
-	movxtod	%o2, %f16
-	fabsd	%f0, %f14
-
-	fcmpd	%fcc3, %f14, %f16
-
-	fmovduge %fcc3, ZERO, %f16
-	fand	%f0, SIGN_BIT, SIGN_BIT
-
-	for	%f16, SIGN_BIT, %f16
-	faddd	%f0, %f16, %f6
-	fsubd	%f6, %f16, %f0
-	fabsd	%f0, %f0
-	retl
-	 for	%f0, SIGN_BIT, %f0
-END (__rint_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S
deleted file mode 100644
index cc980eb8c7..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(rint)
-
-weak_alias (__rint, rint)
-
-# undef weak_alias
-# define weak_alias(a, b)
-
-#define __rint __rint_generic
-
-#include "../s_rint.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S
deleted file mode 100644
index 521c0b21ec..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Round float to int floating-point values, sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_TWENTYTHREE	0x4b000000		/* 2**23 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__rintf_vis3)
-	sethi	%hi(TWO_TWENTYTHREE), %o2
-	fzeros	ZERO
-
-	fnegs	ZERO, SIGN_BIT
-	movwtos	%o2, %f16
-	fabss	%f1, %f14
-
-	fcmps	%fcc3, %f14, %f16
-
-	fmovsuge %fcc3, ZERO, %f16
-	fands	%f1, SIGN_BIT, SIGN_BIT
-
-	fors	%f16, SIGN_BIT, %f16
-	fadds	%f1, %f16, %f5
-	fsubs	%f5, %f16, %f0
-	fabss	%f0, %f0
-	retl
-	 fors	%f0, SIGN_BIT, %f0
-END (__rintf_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S
deleted file mode 100644
index 38fd936086..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(rintf)
-
-weak_alias (__rintf, rintf)
-
-# undef weak_alias
-# define weak_alias(a, b)
-
-#define __rintf __rintf_generic
-
-#include "../s_rintf.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S
deleted file mode 100644
index bce7c9795a..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S
+++ /dev/null
@@ -1,25 +0,0 @@
-/* signbit().  sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__signbit_vis3)
-	movdtox	%f0, %o0
-	retl
-	 srlx	%o0, 63, %o0
-END (__signbit_vis3)
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"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S
deleted file mode 100644
index 7833e725e6..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S
+++ /dev/null
@@ -1,25 +0,0 @@
-/* signbitf().  sparc64 vis3 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__signbitf_vis3)
-	movstouw %f1, %o0
-	retl
-	 srl	%o0, 31, %o0
-END (__signbitf_vis3)
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S
deleted file mode 100644
index d57e999b90..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(signbitf)
-
-# undef weak_alias
-# define weak_alias(a, b)
-
-#define __signbitf __signbitf_generic
-
-#include "../s_signbitf.S"
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c
deleted file mode 100644
index 38ee29a8d3..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* trunc function, sparc64 vis3 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-
-#define __trunc __trunc_vis3
-
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c
deleted file mode 100644
index dc67f423f1..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* trunc function, sparc64 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifdef HAVE_AS_VIS3_SUPPORT
-# include <sparc-ifunc.h>
-# include <math.h>
-
-extern double __trunc_vis3 (double);
-extern double __trunc_generic (double);
-
-sparc_libm_ifunc(__trunc, hwcap & HWCAP_SPARC_VIS3 ? __trunc_vis3 : __trunc_generic);
-weak_alias (__trunc, trunc)
-
-# define __trunc __trunc_generic
-#endif
-
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c
deleted file mode 100644
index 302aa56047..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Float trunc function, sparc64 vis3 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-
-#define __truncf __truncf_vis3
-
-#include <sysdeps/ieee754/flt-32/s_truncf.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c
deleted file mode 100644
index 980a313ae1..0000000000
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Float trunc function, sparc64 version.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifdef HAVE_AS_VIS3_SUPPORT
-# include <sparc-ifunc.h>
-# include <math.h>
-
-extern float __truncf_vis3 (float);
-extern float __truncf_generic (float);
-
-sparc_libm_ifunc(__truncf, hwcap & HWCAP_SPARC_VIS3 ? __truncf_vis3 : __truncf_generic);
-weak_alias (__truncf, truncf)
-
-# define __truncf __truncf_generic
-#endif
-
-#include <sysdeps/ieee754/flt-32/s_truncf.c>
diff --git a/sysdeps/sparc/sparc64/fpu/s_copysign.S b/sysdeps/sparc/sparc64/fpu/s_copysign.S
deleted file mode 100644
index e50d8cd246..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_copysign.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* copysign function, sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__copysign)
-	fzeros	%f7
-	fnegs	%f7, %f7
-	fands	%f2, %f7, %f9
-	fandnot2s %f0, %f7, %f0
-	retl
-	 fors	%f0, %f9, %f0
-END (__copysign)
-weak_alias (__copysign, copysign)
\ No newline at end of file
diff --git a/sysdeps/sparc/sparc64/fpu/s_copysignf.S b/sysdeps/sparc/sparc64/fpu/s_copysignf.S
deleted file mode 100644
index 2f24217274..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_copysignf.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* float copysign function, sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__copysignf)
-	fzeros	%f7
-	fnegs	%f7, %f7
-	fands	%f3, %f7, %f9
-	fandnot2s %f1, %f7, %f1
-	retl
-	 fors	%f1, %f9, %f0
-END (__copysignf)
-weak_alias (__copysignf, copysignf)
\ No newline at end of file
diff --git a/sysdeps/sparc/sparc64/fpu/s_fabs.c b/sysdeps/sparc/sparc64/fpu/s_fabs.c
deleted file mode 100644
index db5ecf2162..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_fabs.c
+++ /dev/null
@@ -1,5 +0,0 @@
-double __fabs (double x)
-{
-  return __builtin_fabs (x);
-}
-weak_alias (__fabs, fabs)
diff --git a/sysdeps/sparc/sparc64/fpu/s_fabsf.c b/sysdeps/sparc/sparc64/fpu/s_fabsf.c
deleted file mode 100644
index 8a218e4942..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_fabsf.c
+++ /dev/null
@@ -1,5 +0,0 @@
-float __fabsf (float x)
-{
-  return __builtin_fabsf (x);
-}
-weak_alias (__fabsf, fabsf)
diff --git a/sysdeps/sparc/sparc64/fpu/s_fabsl.c b/sysdeps/sparc/sparc64/fpu/s_fabsl.c
deleted file mode 100644
index 67e9f47071..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_fabsl.c
+++ /dev/null
@@ -1,5 +0,0 @@
-long double __fabsl (long double x)
-{
-  return __builtin_fabsl (x);
-}
-weak_alias (__fabsl, fabsl)
diff --git a/sysdeps/sparc/sparc64/fpu/s_finite.S b/sysdeps/sparc/sparc64/fpu/s_finite.S
deleted file mode 100644
index 28ee074c1d..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_finite.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* finite().  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__finite)
-	fabsd	%f0, %f0
-	st	%f0, [%sp + STACK_BIAS + 128]
-	sethi	%hi(0x7ff00000), %o2
-	ld	[%sp + STACK_BIAS + 128], %o0
-	sub	%o0, %o2, %o0
-	retl
-	 srl	%o0, 31, %o0
-END (__finite)
-hidden_def (__finite)
-weak_alias (__finite, finite)
diff --git a/sysdeps/sparc/sparc64/fpu/s_finitef.S b/sysdeps/sparc/sparc64/fpu/s_finitef.S
deleted file mode 100644
index f3edca3c57..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_finitef.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* finitef().  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__finitef)
-	fabss	%f1, %f0
-	st	%f0, [%sp + STACK_BIAS + 128]
-	sethi	%hi(0x7f800000), %o2
-	ld	[%sp + STACK_BIAS + 128], %o0
-	sub	%o0, %o2, %o0
-	retl
-	 srl	%o0, 31, %o0
-END (__finitef)
-hidden_def (__finitef)
-weak_alias (__finitef, finitef)
diff --git a/sysdeps/sparc/sparc64/fpu/s_fma.c b/sysdeps/sparc/sparc64/fpu/s_fma.c
deleted file mode 100644
index 8f62605870..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_fma.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Always use dbl-64 version because long double is emulated in software.  */
-#include <sysdeps/ieee754/dbl-64/s_fma.c>
diff --git a/sysdeps/sparc/sparc64/fpu/s_isinf.S b/sysdeps/sparc/sparc64/fpu/s_isinf.S
deleted file mode 100644
index b333a99f54..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_isinf.S
+++ /dev/null
@@ -1,34 +0,0 @@
-/* isinf().  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__isinf)
-	std	%f0, [%sp + STACK_BIAS + 128]
-	sethi	%hi(0x7ff00000), %o2
-	ldx	[%sp + STACK_BIAS + 128], %g1
-	sllx	%o2, 32, %o2
-	sllx	%g1, 1, %o4
-	srlx	%o4, 1, %o5
-	srax	%g1, 62, %o0
-	xor	%o5, %o2, %o3
-	retl
-	 movrne	%o3, %g0, %o0
-END (__isinf)
-hidden_def (__isinf)
-weak_alias (__isinf, isinf)
diff --git a/sysdeps/sparc/sparc64/fpu/s_isinff.S b/sysdeps/sparc/sparc64/fpu/s_isinff.S
deleted file mode 100644
index a5ecf15a9f..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_isinff.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* isinff().  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__isinff)
-	st	%f1, [%sp + STACK_BIAS + 128]
-	sethi	%hi(0x7f800000), %o2
-	lduw	[%sp + STACK_BIAS + 128], %g1
-	sll	%g1, 1, %o4
-	srl	%o4, 1, %o5
-	sra	%g1, 30, %o0
-	xor	%o5, %o2, %o3
-	retl
-	 movrne	%o3, %g0, %o0
-END (__isinff)
-hidden_def (__isinff)
-weak_alias (__isinff, isinff)
diff --git a/sysdeps/sparc/sparc64/fpu/s_isnan.S b/sysdeps/sparc/sparc64/fpu/s_isnan.S
deleted file mode 100644
index 21084ce379..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_isnan.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* isnan().  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__isnan)
-	std	%f0, [%sp + STACK_BIAS + 128]
-	sethi	%hi(0x7ff00000), %g1
-	ldx	[%sp + STACK_BIAS + 128], %o0
-	sllx	%g1, 32, %g1
-	sllx	%o0, 1, %o0
-	srlx	%o0, 1, %o0
-	sub	%g1, %o0, %o0
-	retl
-	 srlx	%o0, 63, %o0
-END (__isnan)
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
diff --git a/sysdeps/sparc/sparc64/fpu/s_isnanf.S b/sysdeps/sparc/sparc64/fpu/s_isnanf.S
deleted file mode 100644
index a012f42746..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_isnanf.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isnanf().  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__isnanf)
-	st	%f1, [%sp + STACK_BIAS + 128]
-	sethi	%hi(0x7f800000), %g1
-	lduw	[%sp + STACK_BIAS + 128], %o0
-	sll	%o0, 1, %o0
-	srl	%o0, 1, %o0
-	sub	%g1, %o0, %o0
-	retl
-	 srl	%o0, 31, %o0
-END (__isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
diff --git a/sysdeps/sparc/sparc64/fpu/s_llrint.S b/sysdeps/sparc/sparc64/fpu/s_llrint.S
deleted file mode 100644
index 7c8e941b77..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_llrint.S
+++ /dev/null
@@ -1 +0,0 @@
-/* llrint is implemented in s_lrint.S */
diff --git a/sysdeps/sparc/sparc64/fpu/s_llrintf.S b/sysdeps/sparc/sparc64/fpu/s_llrintf.S
deleted file mode 100644
index abab3b9a2b..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_llrintf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* llrintf is implemented in s_lrint.S */
diff --git a/sysdeps/sparc/sparc64/fpu/s_lrint.S b/sysdeps/sparc/sparc64/fpu/s_lrint.S
deleted file mode 100644
index 0a3162f947..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_lrint.S
+++ /dev/null
@@ -1,63 +0,0 @@
-/* lrint(), sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* We pop constants into the FPU registers using the incoming
-	   argument stack slots, since this avoid having to use any PIC
-	   references.  We also thus avoid having to allocate a register
-	   window.
-
-	   VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_FIFTYTWO	0x43300000		/* 2**52 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__lrint)
-	sethi	%hi(TWO_FIFTYTWO), %o2
-	sllx	%o2, 32, %o2
-	fzero	ZERO
-
-	fnegd	ZERO, SIGN_BIT
-	stx	%o2, [%sp + STACK_BIAS + 128]
-	fabsd	%f0, %f14
-
-	ldd	[%sp + STACK_BIAS + 128], %f16
-	fcmpd	%fcc3, %f14, %f16
-
-	fmovduge %fcc3, ZERO, %f16
-	fand	%f0, SIGN_BIT, SIGN_BIT
-
-	for	%f16, SIGN_BIT, %f16
-	faddd	%f0, %f16, %f6
-	fsubd	%f6, %f16, %f0
-	fabsd	%f0, %f0
-	for	%f0, SIGN_BIT, %f0
-	fdtox	%f0, %f4
-	std	%f4, [%sp + STACK_BIAS + 128]
-	retl
-	 ldx	[%sp + STACK_BIAS + 128], %o0
-END (__lrint)
-weak_alias (__lrint, lrint)
-
-strong_alias (__lrint, __llrint)
-weak_alias (__llrint, llrint)
diff --git a/sysdeps/sparc/sparc64/fpu/s_lrintf.S b/sysdeps/sparc/sparc64/fpu/s_lrintf.S
deleted file mode 100644
index 5f2405ad9e..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_lrintf.S
+++ /dev/null
@@ -1,62 +0,0 @@
-/* lrintf(), sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* We pop constants into the FPU registers using the incoming
-	   argument stack slots, since this avoid having to use any PIC
-	   references.  We also thus avoid having to allocate a register
-	   window.
-
-	   VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_TWENTYTHREE	0x4b000000		/* 2**23 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__lrintf)
-	sethi	%hi(TWO_TWENTYTHREE), %o2
-	fzeros	ZERO
-
-	fnegs	ZERO, SIGN_BIT
-	st	%o2, [%sp + STACK_BIAS + 128]
-	fabss	%f1, %f14
-
-	ld	[%sp + STACK_BIAS + 128], %f16
-	fcmps	%fcc3, %f14, %f16
-
-	fmovsuge %fcc3, ZERO, %f16
-	fands	%f1, SIGN_BIT, SIGN_BIT
-
-	fors	%f16, SIGN_BIT, %f16
-	fadds	%f1, %f16, %f5
-	fsubs	%f5, %f16, %f0
-	fabss	%f0, %f0
-	fors	%f0, SIGN_BIT, %f0
-	fstox	%f0, %f4
-	std	%f4, [%sp + STACK_BIAS + 128]
-	retl
-	 ldx	[%sp + STACK_BIAS + 128], %o0
-END (__lrintf)
-weak_alias (__lrintf, lrintf)
-
-strong_alias (__lrintf, __llrintf)
-weak_alias (__llrintf, llrintf)
diff --git a/sysdeps/sparc/sparc64/fpu/s_nearbyint.S b/sysdeps/sparc/sparc64/fpu/s_nearbyint.S
deleted file mode 100644
index 05ed2bce40..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_nearbyint.S
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Round float to int floating-point values without generating
-   an inexact exception, sparc64 version.
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2013.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* We pop constants into the FPU registers using the incoming
-	   argument stack slots, since this avoid having to use any PIC
-	   references.  We also thus avoid having to allocate a register
-	   window.
-
-	   VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_FIFTYTWO	0x43300000		/* 2**52 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__nearbyint)
-	fcmpd	%fcc3, %f0, %f0			/* Check for sNaN */
-	stx	%fsr, [%sp + STACK_BIAS + 144]
-	sethi	%hi(TWO_FIFTYTWO), %o2
-	sllx	%o2, 32, %o2
-	ldx	[%sp + STACK_BIAS + 144], %o4
-	sethi	%hi(0xf8003e0), %o5
-	fzero	ZERO
-	or	%o5, %lo(0xf8003e0), %o5
-	fnegd	ZERO, SIGN_BIT
-	andn	%o4, %o5, %o4
-	stx	%o2, [%sp + STACK_BIAS + 128]
-	stx	%o4, [%sp + STACK_BIAS + 136]
-	ldx	[%sp + STACK_BIAS + 136], %fsr
-	fabsd	%f0, %f14
-	ldd	[%sp + STACK_BIAS + 128], %f16
-	fcmpd	%fcc3, %f14, %f16
-	fmovduge %fcc3, ZERO, %f16
-	fand	%f0, SIGN_BIT, SIGN_BIT
-	for	%f16, SIGN_BIT, %f16
-	faddd	%f0, %f16, %f6
-	fsubd	%f6, %f16, %f0
-	fabsd	%f0, %f0
-	for	%f0, SIGN_BIT, %f0
-	retl
-	 ldx	[%sp + STACK_BIAS + 144], %fsr
-END (__nearbyint)
-weak_alias (__nearbyint, nearbyint)
diff --git a/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S b/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S
deleted file mode 100644
index 55e3639a87..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Round float to int floating-point values without generating
-   an inexact exception, sparc64 version.
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2013.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* We pop constants into the FPU registers using the incoming
-	   argument stack slots, since this avoid having to use any PIC
-	   references.  We also thus avoid having to allocate a register
-	   window.
-
-	   VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_TWENTYTHREE	0x4b000000		/* 2**23 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__nearbyintf)
-	fcmps	%fcc3, %f1, %f1			/* Check for sNaN */
-	stx	%fsr, [%sp + STACK_BIAS + 144]
-	sethi	%hi(0xf8003e0), %o5
-	sethi	%hi(TWO_TWENTYTHREE), %o2
-	ldx	[%sp + STACK_BIAS + 144], %o4
-	or	%o5, %lo(0xf8003e0), %o5
-	fzeros	ZERO
-	andn	%o4, %o5, %o4
-	fnegs	ZERO, SIGN_BIT
-	st	%o2, [%sp + STACK_BIAS + 128]
-	stx	%o4, [%sp + STACK_BIAS + 136]
-	ldx	[%sp + STACK_BIAS + 136], %fsr
-	fabss	%f1, %f14
-	ld	[%sp + STACK_BIAS + 128], %f16
-	fcmps	%fcc3, %f14, %f16
-	fmovsuge %fcc3, ZERO, %f16
-	fands	%f1, SIGN_BIT, SIGN_BIT
-	fors	%f16, SIGN_BIT, %f16
-	fadds	%f1, %f16, %f5
-	fsubs	%f5, %f16, %f0
-	fabss	%f0, %f0
-	fors	%f0, SIGN_BIT, %f0
-	retl
-	 ldx	[%sp + STACK_BIAS + 144], %fsr
-END (__nearbyintf)
-weak_alias (__nearbyintf, nearbyintf)
diff --git a/sysdeps/sparc/sparc64/fpu/s_rint.S b/sysdeps/sparc/sparc64/fpu/s_rint.S
deleted file mode 100644
index 8d0134c90c..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_rint.S
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Round float to int floating-point values, sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* We pop constants into the FPU registers using the incoming
-	   argument stack slots, since this avoid having to use any PIC
-	   references.  We also thus avoid having to allocate a register
-	   window.
-
-	   VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_FIFTYTWO	0x43300000		/* 2**52 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__rint)
-	sethi	%hi(TWO_FIFTYTWO), %o2
-	sllx	%o2, 32, %o2
-	fzero	ZERO
-
-	fnegd	ZERO, SIGN_BIT
-	stx	%o2, [%sp + STACK_BIAS + 128]
-	fabsd	%f0, %f14
-
-	ldd	[%sp + STACK_BIAS + 128], %f16
-	fcmpd	%fcc3, %f14, %f16
-
-	fmovduge %fcc3, ZERO, %f16
-	fand	%f0, SIGN_BIT, SIGN_BIT
-
-	for	%f16, SIGN_BIT, %f16
-	faddd	%f0, %f16, %f6
-	fsubd	%f6, %f16, %f0
-	fabsd	%f0, %f0
-	retl
-	 for	%f0, SIGN_BIT, %f0
-END (__rint)
-weak_alias (__rint, rint)
diff --git a/sysdeps/sparc/sparc64/fpu/s_rintf.S b/sysdeps/sparc/sparc64/fpu/s_rintf.S
deleted file mode 100644
index a2f9261382..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_rintf.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Round float to int floating-point values, sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2012.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	/* We pop constants into the FPU registers using the incoming
-	   argument stack slots, since this avoid having to use any PIC
-	   references.  We also thus avoid having to allocate a register
-	   window.
-
-	   VIS instructions are used to facilitate the formation of
-	   easier constants, and the propagation of the sign bit.  */
-
-#define TWO_TWENTYTHREE	0x4b000000		/* 2**23 */
-
-#define ZERO		%f10			/* 0.0 */
-#define SIGN_BIT	%f12			/* -0.0 */
-
-ENTRY (__rintf)
-	sethi	%hi(TWO_TWENTYTHREE), %o2
-	fzeros	ZERO
-
-	fnegs	ZERO, SIGN_BIT
-	st	%o2, [%sp + STACK_BIAS + 128]
-	fabss	%f1, %f14
-
-	ld	[%sp + STACK_BIAS + 128], %f16
-	fcmps	%fcc3, %f14, %f16
-
-	fmovsuge %fcc3, ZERO, %f16
-	fands	%f1, SIGN_BIT, SIGN_BIT
-
-	fors	%f16, SIGN_BIT, %f16
-	fadds	%f1, %f16, %f5
-	fsubs	%f5, %f16, %f0
-	fabss	%f0, %f0
-	retl
-	 fors	%f0, SIGN_BIT, %f0
-END (__rintf)
-weak_alias (__rintf, rintf)
diff --git a/sysdeps/sparc/sparc64/fpu/s_signbit.S b/sysdeps/sparc/sparc64/fpu/s_signbit.S
deleted file mode 100644
index 979917b5d0..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_signbit.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* signbit().  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__signbit)
-	st	%f0, [%sp + STACK_BIAS + 128]
-	ld	[%sp + STACK_BIAS + 128], %o0
-	retl
-	 srl	%o0, 31, %o0
-END (__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)
diff --git a/sysdeps/sparc/sparc64/fpu/s_signbitf.S b/sysdeps/sparc/sparc64/fpu/s_signbitf.S
deleted file mode 100644
index cb96983868..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_signbitf.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* signbitf().  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__signbitf)
-	st	%f1, [%sp + STACK_BIAS + 128]
-	ld	[%sp + STACK_BIAS + 128], %o0
-	retl
-	 srl	%o0, 31, %o0
-END (__signbitf)
diff --git a/sysdeps/sparc/sparc64/fpu/s_signbitl.S b/sysdeps/sparc/sparc64/fpu/s_signbitl.S
deleted file mode 100644
index f5e5fb9253..0000000000
--- a/sysdeps/sparc/sparc64/fpu/s_signbitl.S
+++ /dev/null
@@ -1 +0,0 @@
-/* signbitl is implemented in s_signbit.S */
diff --git a/sysdeps/sparc/sparc64/fpu/w_sqrt_compat.S b/sysdeps/sparc/sparc64/fpu/w_sqrt_compat.S
deleted file mode 100644
index de95e52e8e..0000000000
--- a/sysdeps/sparc/sparc64/fpu/w_sqrt_compat.S
+++ /dev/null
@@ -1,48 +0,0 @@
-/* sqrt function.  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__sqrt)
-	fzero	%f8
-	fcmpd	%fcc2, %f0, %f8
-	fbl,pn	%fcc2, 1f
-	 nop
-8:	retl
-	 fsqrtd	%f0, %f0
-1:
-#ifdef SHARED
-	SETUP_PIC_REG_LEAF(o5, g1)
-	sethi	%gdop_hix22(_LIB_VERSION), %g1
-	xor	%g1, %gdop_lox10(_LIB_VERSION), %g1
-	ldx	[%o5 + %g1], %g1, %gdop(_LIB_VERSION)
-#else
-	sethi	%hi(_LIB_VERSION), %g1
-	or	%g1, %lo(_LIB_VERSION), %g1
-#endif
-	ld	[%g1], %g1
-	cmp	%g1, -1
-	be,pt	%icc, 8b
-	 fmovd	%f0, %f2
-	mov	26, %o2
-	mov	%o7, %g1
-	call	__kernel_standard
-	 mov	%g1, %o7
-END (__sqrt)
-
-weak_alias (__sqrt, sqrt)
diff --git a/sysdeps/sparc/sparc64/fpu/w_sqrtf_compat.S b/sysdeps/sparc/sparc64/fpu/w_sqrtf_compat.S
deleted file mode 100644
index 0c253fe43a..0000000000
--- a/sysdeps/sparc/sparc64/fpu/w_sqrtf_compat.S
+++ /dev/null
@@ -1,48 +0,0 @@
-/* sqrtf function.  sparc64 version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY (__sqrtf)
-	fzeros	%f8
-	fcmps	%fcc2, %f1, %f8
-	fbl,pn	%fcc2, 1f
-	 nop
-8:	retl
-	 fsqrts	%f1, %f0
-1:
-#ifdef SHARED
-	SETUP_PIC_REG_LEAF(o5, g1)
-	sethi	%gdop_hix22(_LIB_VERSION), %g1
-	xor	%g1, %gdop_lox10(_LIB_VERSION), %g1
-	ldx	[%o5 + %g1], %g1, %gdop(_LIB_VERSION)
-#else
-	sethi	%hi(_LIB_VERSION), %g1
-	or	%g1, %lo(_LIB_VERSION), %g1
-#endif
-	ld	[%g1], %g1
-	cmp	%g1, -1
-	be,pt	%icc, 8b
-	 fmovs	%f1, %f3
-	mov	126, %o2
-	mov	%o7, %g1
-	call	__kernel_standard_f
-	 mov	%g1, %o7
-END (__sqrtf)
-
-weak_alias (__sqrtf, sqrtf)
diff --git a/sysdeps/sparc/sparc64/hp-timing.h b/sysdeps/sparc/sparc64/hp-timing.h
deleted file mode 100644
index 433dd28d06..0000000000
--- a/sysdeps/sparc/sparc64/hp-timing.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* High precision, low overhead timing functions.  sparc64 version.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@redhat.com>, 2001.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _HP_TIMING_H
-#define _HP_TIMING_H	1
-
-#define HP_TIMING_AVAIL		(1)
-#define HP_SMALL_TIMING_AVAIL	(1)
-#define HP_TIMING_INLINE	(1)
-
-typedef unsigned long int hp_timing_t;
-
-#define HP_TIMING_NOW(Var) __asm__ __volatile__ ("rd %%tick, %0" : "=r" (Var))
-
-#include <hp-timing-common.h>
-
-#endif	/* hp-timing.h */
diff --git a/sysdeps/sparc/sparc64/jmpbuf-unwind.h b/sysdeps/sparc/sparc64/jmpbuf-unwind.h
deleted file mode 100644
index eb2e2e2fb4..0000000000
--- a/sysdeps/sparc/sparc64/jmpbuf-unwind.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <setjmp.h>
-#include <stdint.h>
-#include <unwind.h>
-
-/* Test if longjmp to JMPBUF would unwind the frame
-   containing a local variable at ADDRESS.  */
-#define _JMPBUF_UNWINDS(jmpbuf, address, demangle)	\
-  ((unsigned long int) (address)			\
-   < (jmpbuf)->__uc_mcontext.__mc_gregs[MC_O6] + 2047)
-
-#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-  _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-
-#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
-  ((uintptr_t) (_address) - (_adj) \
-   < (uintptr_t) (_jmpbuf)[0].__uc_mcontext.__mc_gregs[MC_O6] + 2047 - (_adj))
-
-/* We use the normal lobngjmp for unwinding.  */
-#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
diff --git a/sysdeps/sparc/sparc64/lshift.S b/sysdeps/sparc/sparc64/lshift.S
deleted file mode 100644
index 74ce43bb01..0000000000
--- a/sysdeps/sparc/sparc64/lshift.S
+++ /dev/null
@@ -1,95 +0,0 @@
-/* SPARC v9 __mpn_lshift --
-
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
-
-   This file is part of the GNU MP Library.
-
-   The GNU MP Library is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 2.1 of the License, or (at your
-   option) any later version.
-
-   The GNU MP Library is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-   License for more details.
-
-   You should have received a copy of the GNU Lesser General Public License
-   along with the GNU MP Library; see the file COPYING.LIB.  If not,
-   see <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-/* INPUT PARAMETERS
-   res_ptr	%o0
-   src_ptr	%o1
-   size		%o2
-   cnt		%o3  */
-
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-
-ENTRY(__mpn_lshift)
-	sllx	%o2,3,%g1
-	add	%o1,%g1,%o1	! make %o1 point at end of src
-	ldx	[%o1-8],%g2	! load first limb
-	sub	%g0,%o3,%o5	! negate shift count
-	add	%o0,%g1,%o0	! make %o0 point at end of res
-	add	%o2,-1,%o2
-	andcc	%o2,4-1,%g4	! number of limbs in first loop
-	srlx	%g2,%o5,%g1	! compute function result
-	be,pn	%xcc,.L0	! if multiple of 4 limbs, skip first loop
-	 mov	%g1,%g5
-
-	sub	%o2,%g4,%o2	! adjust count for main loop
-
-.Loop0:	ldx	[%o1-16],%g3
-	add	%o0,-8,%o0
-	add	%o1,-8,%o1
-	sllx	%g2,%o3,%o4
-	addcc	%g4,-1,%g4
-	srlx	%g3,%o5,%g1
-	mov	%g3,%g2
-	or	%o4,%g1,%o4
-	bne,pt	%xcc,.Loop0
-	 stx	%o4,[%o0+0]
-
-.L0:	brz,pn	%o2,.Lend
-	 nop
-
-.Loop:	ldx	[%o1-16],%g3
-	add	%o0,-32,%o0
-	sllx	%g2,%o3,%o4
-	addcc	%o2,-4,%o2
-	srlx	%g3,%o5,%g1
-
-	ldx	[%o1-24],%g2
-	sllx	%g3,%o3,%g4
-	or	%o4,%g1,%o4
-	stx	%o4,[%o0+24]
-	srlx	%g2,%o5,%g1
-
-	ldx	[%o1-32],%g3
-	sllx	%g2,%o3,%o4
-	or	%g4,%g1,%g4
-	stx	%g4,[%o0+16]
-	srlx	%g3,%o5,%g1
-
-	ldx	[%o1-40],%g2
-	sllx	%g3,%o3,%g4
-	or	%o4,%g1,%o4
-	stx	%o4,[%o0+8]
-	srlx	%g2,%o5,%g1
-
-	add	%o1,-32,%o1
-	or	%g4,%g1,%g4
-	bne,pt	%xcc,.Loop
-	 stx	%g4,[%o0+0]
-
-.Lend:	sllx	%g2,%o3,%g2
-	stx	%g2,[%o0-8]
-
-	jmpl	%o7+8, %g0
-	 mov	%g5,%o0
-
-END(__mpn_lshift)
diff --git a/sysdeps/sparc/sparc64/memchr.S b/sysdeps/sparc/sparc64/memchr.S
deleted file mode 100644
index e82075510b..0000000000
--- a/sysdeps/sparc/sparc64/memchr.S
+++ /dev/null
@@ -1,260 +0,0 @@
-/* memchr (str, ch, n) -- Return pointer to first occurrence of CH in STR less
-   than N.
-   For SPARC v9.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
-                  Jakub Jelinek <jj@ultra.linux.cz>.
-   This version is developed using the same algorithm as the fast C
-   version which carries the following introduction:
-   Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
-   with help from Dan Sahlin (dan@sics.se) and
-   commentary by Jim Blandy (jimb@ai.mit.edu);
-   adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
-   and implemented by Roland McGrath (roland@ai.mit.edu).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define USE_BPR
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-#endif
-
-	/* Normally, this uses
-	   ((xword - 0x0101010101010101) & 0x8080808080808080) test
-	   to find out if any byte in xword could be zero. This is fast, but
-	   also gives false alarm for any byte in range 0x81-0xff. It does
-	   not matter for correctness, as if this test tells us there could
-	   be some zero byte, we check it byte by byte, but if bytes with
-	   high bits set are common in the strings, then this will give poor
-	   performance. You can #define EIGHTBIT_NOT_RARE and the algorithm
-	   will use one tick slower, but more precise test
-	   ((xword - 0x0101010101010101) & (~xword) & 0x8080808080808080),
-	   which does not give any false alarms (but if some bits are set,
-	   one cannot assume from it which bytes are zero and which are not).
-	   It is yet to be measured, what is the correct default for glibc
-	   in these days for an average user.
-	 */
-
-	.text
-	.align		32
-ENTRY(__memchr)
-	and		%o1, 0xff, %o1			/* IEU0		Group		*/
-#ifdef USE_BPR
-	brz,pn		%o2, 12f			/* CTI+IEU1			*/
-#else
-	tst		%o2				/* IEU1				*/
-	be,pn		%XCC, 12f			/* CTI				*/
-#endif
-	 sll		%o1, 8, %g3			/* IEU0		Group		*/
-	addcc		%o0, %o2, %o2			/* IEU1				*/
-	movcs		%XCC, -1, %o2			/* IEU0		Group		*/
-
-	sethi		%hi(0x01010101), %g1		/* IEU0		Group		*/
-	or		%g3, %o1, %g3			/* IEU1				*/
-	ldub		[%o0], %o3			/* Load				*/
-	sllx		%g3, 16, %g5			/* IEU0		Group		*/
-
-	or		%g1, %lo(0x01010101), %g1	/* IEU1				*/
-	sllx		%g1, 32, %g2			/* IEU0		Group		*/
-	or		%g3, %g5, %g3			/* IEU1				*/
-	sllx		%g3, 32, %g5			/* IEU0		Group		*/
-
-	cmp		%o3, %o1			/* IEU1				*/
-	be,pn		%xcc, 13f			/* CTI				*/
-	 or		%g1, %g2, %g1			/* IEU0		Group		*/
-	andcc		%o0, 7, %g0			/* IEU1				*/
-
-	bne,a,pn	%icc, 21f			/* CTI				*/
-	 add		%o0, 1, %o0			/* IEU0		Group		*/
-	ldx		[%o0], %o3			/* Load		Group		*/
-	sllx		%g1, 7, %g2			/* IEU0				*/
-
-	or		%g3, %g5, %g3			/* IEU1				*/
-1:	add		%o0, 8, %o0			/* IEU0		Group		*/
-	xor		%o3, %g3, %o4			/* IEU1				*/
-							/* %g1 = 0101010101010101	*
-							 * %g2 = 8080088080808080	*
-							 * %g3 =  c c c c c c c c	*
-							 * %o3 =      value		*
-							 * %o4 =   value XOR c		*/
-2:	cmp		%o0, %o2			/* IEU1		Group		*/
-
-	bgu,pn		%XCC, 11f			/* CTI				*/
-	 ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	sub		%o4, %g1, %o5			/* IEU0		Group		*/
-	add		%o0, 8, %o0			/* IEU1				*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o5, %o4, %o5			/* IEU0		Group		*/
-#endif
-
-	andcc		%o5, %g2, %g0			/* IEU1		Group		*/
-	be,a,pt		%xcc, 2b			/* CTI				*/
-	 xor		%o3, %g3, %o4			/* IEU0				*/
-	srlx		%o4, 56, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 3f			/* CTI				*/
-	 srlx		%o4, 48, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 4f			/* CTI				*/
-	 srlx		%o4, 40, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-
-	 srlx		%o4, 32, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 6f			/* CTI				*/
-	 srlx		%o4, 24, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 7f			/* CTI				*/
-	 srlx		%o4, 16, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 8f			/* CTI				*/
-	 srlx		%o4, 8, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 9f			/* CTI				*/
-
-	 andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	bne,pt		%icc, 2b			/* CTI				*/
-	 xor		%o3, %g3, %o4			/* IEU0				*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 add		%o0, -9, %o0			/* IEU0				*/
-
-	.align		16
-3:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -16, %o0			/* IEU0				*/
-4:   	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -15, %o0			/* IEU0				*/
-
-5:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -14, %o0			/* IEU0				*/
-6:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -13, %o0			/* IEU0				*/
-
-7:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -12, %o0			/* IEU0				*/
-8:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -11, %o0			/* IEU0				*/
-
-9:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -10, %o0			/* IEU0				*/
-11:	sub		%o4, %g1, %o5			/* IEU0		Group		*/
-	sub		%o0, 8, %o0			/* IEU1				*/
-
-	andcc		%o5, %g2, %g0			/* IEU1		Group		*/
-	be,pt		%xcc, 12f			/* CTI				*/
-	 sub		%o2, %o0, %o2			/* IEU0				*/
-	tst		%o2				/* IEU1		Group		*/
-
-	be,pn		%XCC, 12f			/* CTI				*/
-	 srlx		%o4, 56, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 13f			/* CTI				*/
-
-	 cmp		%o2, 1				/* IEU0				*/
-	be,pn		%XCC, 12f			/* CTI		Group		*/
-	 srlx		%o4, 48, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 14f			/* CTI				*/
-	 cmp		%o2, 2				/* IEU1		Group		*/
-	be,pn		%XCC, 12f			/* CTI				*/
-	 srlx		%o4, 40, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 15f			/* CTI				*/
-	 cmp		%o2, 3				/* IEU1		Group		*/
-	be,pn		%XCC, 12f			/* CTI				*/
-
-	 srlx		%o4, 32, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 16f			/* CTI				*/
-	 cmp		%o2, 4				/* IEU1		Group		*/
-
-	be,pn		%XCC, 12f			/* CTI				*/
-	 srlx		%o4, 24, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 17f			/* CTI				*/
-
-	 cmp		%o2, 5				/* IEU1		Group		*/
-	be,pn		%XCC, 12f			/* CTI				*/
-	 srlx		%o4, 16, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 18f			/* CTI				*/
-	 cmp		%o2, 6				/* IEU1		Group		*/
-	be,pn		%XCC, 12f			/* CTI				*/
-	 srlx		%o4, 8, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 19f			/* CTI				*/
-	 nop						/* IEU0				*/
-12:	retl						/* CTI+IEU1	Group		*/
-
-	 clr		%o0				/* IEU0				*/
-	nop						/* Stub				*/
-13:	retl						/* CTI+IEU1	Group		*/
-	 nop						/* IEU0				*/
-
-14:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, 1, %o0			/* IEU0				*/
-15:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, 2, %o0			/* IEU0				*/
-
-16:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, 3, %o0			/* IEU0				*/
-17:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, 4, %o0			/* IEU0				*/
-
-18:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, 5, %o0			/* IEU0				*/
-19:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, 6, %o0			/* IEU0				*/
-
-21:	cmp		%o0, %o2			/* IEU1				*/
-	be,pn		%XCC, 12b			/* CTI				*/
-	 sllx		%g1, 7, %g2			/* IEU0		Group		*/
-	ldub		[%o0], %o3			/* Load				*/
-
-	or		%g3, %g5, %g3			/* IEU1				*/
-22:	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	be,a,pn		%icc, 1b			/* CTI				*/
-	 ldx		[%o0], %o3			/* Load				*/
-
-	cmp		%o3, %o1			/* IEU1		Group		*/
-	be,pn		%xcc, 23f			/* CTI				*/
-	 add		%o0, 1, %o0			/* IEU0				*/
-	cmp		%o0, %o2			/* IEU1		Group		*/
-
-	bne,a,pt	%XCC, 22b			/* CTI				*/
-	 ldub		[%o0], %o3			/* Load				*/
-	retl						/* CTI+IEU1	Group		*/
-	 clr		%o0				/* IEU0				*/
-
-23:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -1, %o0			/* IEU0				*/
-END(__memchr)
-
-weak_alias (__memchr, memchr)
-libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/sparc/sparc64/memcmp.S b/sysdeps/sparc/sparc64/memcmp.S
deleted file mode 100644
index 00ff2eec6b..0000000000
--- a/sysdeps/sparc/sparc64/memcmp.S
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Compare two memory blocks for differences in the first COUNT bytes.
-   For SPARC v9.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
-                  Jakub Jelinek <jj@ultra.linux.cz>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define USE_BPR
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-#endif
-
-	.text
-	.align		32
-ENTRY(memcmp)
-#ifdef USE_BPR
-	brz,pn		%o2, 3f				/* CTI+IEU1	Group		*/
-#else
-	tst		%o2				/* IEU1		Group		*/
-	be,pn		%XCC, 3f			/* CTI				*/
-#endif
-	 andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	bne,pn		%icc, 8f			/* CTI				*/
-1:	 andcc		%o1, 7, %g1			/* IEU1		Group		*/
-
-	bne,pn		%icc, 10f			/* CTI				*/
-	 mov		64, %g3				/* IEU0				*/
-	ldx		[%o0], %g1			/* Load		Group		*/
-	sub		%o1, %o0, %o1			/* IEU0				*/
-
-	ldx		[%o0 + %o1], %g2		/* Load		Group		*/
-	add		%o0, 8, %o0			/* IEU0				*/
-2:	mov		%g1, %o3			/* IEU0		Group		*/
-	subcc		%o2, 8, %o2			/* IEU1				*/
-
-	bcs,pn		%XCC, 5f			/* CTI				*/
-	 ldxa		[%o0] ASI_PNF, %g1		/* Load		Group		*/
-	mov		%g2, %o4			/* IEU0				*/
-	ldxa		[%o0 + %o1] ASI_PNF, %g2	/* Load		Group		*/
-
-	cmp		%o3, %o4			/* IEU1				*/
-	be,pt		%xcc, 2b			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU0				*/
-7:	mov		-1, %o0				/* IEU1				*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 movgu		%xcc, 1, %o0			/* Single	Group		*/
-3:	retl						/* CTI+IEU1	Group		*/
-	 clr		%o0				/* IEU0				*/
-
-	.align		16
-5:	mov		%g2, %o4			/* IEU0				*/
-6:	cmp		%o2, -8				/* IEU1				*/
-	be,pn		%XCC, 3b			/* CTI				*/
-	 sub		%g0, %o2, %o2			/* IEU0		Group		*/
-
-	sllx		%o2, 3, %o2			/* IEU0		Group		*/
-	srlx		%o3, %o2, %o3			/* IEU0		Group		*/
-	srlx		%o4, %o2, %o4			/* IEU0		Group		*/
-	clr		%o0				/* IEU1				*/
-
-	cmp		%o3, %o4			/* IEU1		Group		*/
-	movgu		%xcc, 1, %o0			/* Single	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 movlu		%xcc, -1, %o0			/* Single	Group		*/
-
-8:	ldub		[%o0], %o3			/* Load				*/
-	add		%o0, 1, %o0			/* IEU0				*/
-	ldub		[%o1], %o4			/* Load		Group		*/
-	add		%o1, 1, %o1			/* IEU0				*/
-
-9:	cmp		%o3, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 12f			/* CTI				*/
-	 subcc		%o2, 1, %o2			/* IEU1		Group		*/
-	be,pn		%XCC, 3b			/* CTI				*/
-
-	 lduba		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 1b			/* CTI				*/
-	 lduba		[%o1] ASI_PNF, %o4		/* Load				*/
-
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	ba,pt		%xcc, 9b			/* CTI				*/
-	 add		%o1, 1, %o1			/* IEU1				*/
-
-	.align		16
-12:	mov		-1, %o0				/* IEU0		Group		*/
-	cmp		%o3, %o4			/* IEU1				*/
-	retl						/* CTI+IEU1	Group		*/
-	 movgu		%xcc, 1, %o0			/* Single	Group		*/
-
-	.align		16
-	nop						/* Stub				*/
-10:	sllx		%g1, 3, %g2			/* IEU0		Group		*/
-	sub		%o1, %g1, %o1			/* IEU1				*/
-	sub		%g3, %g2, %g3			/* IEU0		Group		*/
-
-	ldxa		[%o0] ASI_PNF, %g5		/* Load				*/
-	sub		%o1, %o0, %o1			/* IEU1				*/
-	ldxa		[%o0 + %o1] ASI_PNF, %g4	/* Load		Group		*/
-	add		%o0, 8, %o0			/* IEU0				*/
-
-11:	sllx		%g4, %g2, %o4			/* IEU0		Group		*/
-	ldxa		[%o0 + %o1] ASI_PNF, %g4	/* Load				*/
-	srlx		%g4, %g3, %o5			/* IEU0		Group		*/
-	mov		%g5, %o3			/* IEU1				*/
-
-	ldxa		[%o0] ASI_PNF, %g5		/* Load				*/
-	subcc		%o2, 8, %o2			/* IEU1		Group		*/
-	bcs,pn		%XCC, 6b			/* CTI				*/
-	 or		%o4, %o5, %o4			/* IEU0				*/
-
-	cmp		%o3, %o4			/* IEU1		Group		*/
-	be,pt		%xcc, 11b			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU0				*/
-	mov		-1, %o0				/* IEU0				*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 movgu		%xcc, 1, %o0			/* Single	Group		*/
-END(memcmp)
-
-#undef bcmp
-weak_alias (memcmp, bcmp)
-libc_hidden_builtin_def (memcmp)
diff --git a/sysdeps/sparc/sparc64/memcpy.S b/sysdeps/sparc/sparc64/memcpy.S
deleted file mode 100644
index c1c0bf64d1..0000000000
--- a/sysdeps/sparc/sparc64/memcpy.S
+++ /dev/null
@@ -1,580 +0,0 @@
-/* Copy SIZE bytes from SRC to DEST.
-   For UltraSPARC.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@caip.rutgers.edu) and
-		  Jakub Jelinek (jakub@redhat.com).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define USE_BPR
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-	.register	%g6, #scratch
-#define XCC	xcc
-#endif
-#define FPRS_FEF	4
-
-#define FREG_FROB(f1, f2, f3, f4, f5, f6, f7, f8, f9)		\
-	faligndata	%f1, %f2, %f48;				\
-	faligndata	%f2, %f3, %f50;				\
-	faligndata	%f3, %f4, %f52;				\
-	faligndata	%f4, %f5, %f54;				\
-	faligndata	%f5, %f6, %f56;				\
-	faligndata	%f6, %f7, %f58;				\
-	faligndata	%f7, %f8, %f60;				\
-	faligndata	%f8, %f9, %f62;
-
-#define MAIN_LOOP_CHUNK(src, dest, fdest, fsrc, len, jmptgt)	\
-	ldda		[%src] %asi, %fdest;			\
-	add		%src, 0x40, %src;			\
-	add		%dest, 0x40, %dest;			\
-	subcc		%len, 0x40, %len;			\
-	be,pn		%xcc, jmptgt;				\
-	 stda		%fsrc, [%dest - 0x40] %asi;
-
-#define LOOP_CHUNK1(src, dest, len, branch_dest)		\
-	MAIN_LOOP_CHUNK(src, dest, f0,  f48, len, branch_dest)
-#define LOOP_CHUNK2(src, dest, len, branch_dest)		\
-	MAIN_LOOP_CHUNK(src, dest, f16, f48, len, branch_dest)
-#define LOOP_CHUNK3(src, dest, len, branch_dest)		\
-	MAIN_LOOP_CHUNK(src, dest, f32, f48, len, branch_dest)
-
-#define STORE_SYNC(dest, fsrc)					\
-	stda		%fsrc, [%dest] %asi;			\
-	add		%dest, 0x40, %dest;
-
-#define STORE_JUMP(dest, fsrc, target)				\
-	stda		%fsrc, [%dest] %asi;			\
-	add		%dest, 0x40, %dest;			\
-	ba,pt		%xcc, target;
-
-#define VISLOOP_PAD nop; nop; nop; nop; 			\
-		    nop; nop; nop; nop; 			\
-		    nop; nop; nop; nop; 			\
-		    nop; nop; nop;
-
-#define FINISH_VISCHUNK(dest, f0, f1, left)			\
-	subcc		%left, 8, %left;			\
-	bl,pn		%xcc, 205f;				\
-	 faligndata	%f0, %f1, %f48;				\
-	std		%f48, [%dest];				\
-	add		%dest, 8, %dest;
-
-#define UNEVEN_VISCHUNK(dest, f0, f1, left)			\
-	subcc		%left, 8, %left;			\
-	bl,pn		%xcc, 205f;				\
-	 fsrc2		%f0, %f1;				\
-	ba,a,pt		%xcc, 204f;
-
-	/* Macros for non-VIS memcpy code. */
-#define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3)		\
-	ldx		[%src + offset + 0x00], %t0; 		\
-	ldx		[%src + offset + 0x08], %t1; 		\
-	ldx		[%src + offset + 0x10], %t2; 		\
-	ldx		[%src + offset + 0x18], %t3; 		\
-	stw		%t0, [%dst + offset + 0x04]; 		\
-	srlx		%t0, 32, %t0;				\
-	stw		%t0, [%dst + offset + 0x00]; 		\
-	stw		%t1, [%dst + offset + 0x0c]; 		\
-	srlx		%t1, 32, %t1;				\
-	stw		%t1, [%dst + offset + 0x08]; 		\
-	stw		%t2, [%dst + offset + 0x14]; 		\
-	srlx		%t2, 32, %t2;				\
-	stw		%t2, [%dst + offset + 0x10]; 		\
-	stw		%t3, [%dst + offset + 0x1c];		\
-	srlx		%t3, 32, %t3;				\
-	stw		%t3, [%dst + offset + 0x18];
-
-#define MOVE_BIGALIGNCHUNK(src, dst, offset, t0, t1, t2, t3)	\
-	ldx		[%src + offset + 0x00], %t0; 		\
-	ldx		[%src + offset + 0x08], %t1; 		\
-	ldx		[%src + offset + 0x10], %t2; 		\
-	ldx		[%src + offset + 0x18], %t3; 		\
-	stx		%t0, [%dst + offset + 0x00]; 		\
-	stx		%t1, [%dst + offset + 0x08]; 		\
-	stx		%t2, [%dst + offset + 0x10]; 		\
-	stx		%t3, [%dst + offset + 0x18]; 		\
-	ldx		[%src + offset + 0x20], %t0; 		\
-	ldx		[%src + offset + 0x28], %t1; 		\
-	ldx		[%src + offset + 0x30], %t2; 		\
-	ldx		[%src + offset + 0x38], %t3; 		\
-	stx		%t0, [%dst + offset + 0x20]; 		\
-	stx		%t1, [%dst + offset + 0x28]; 		\
-	stx		%t2, [%dst + offset + 0x30]; 		\
-	stx		%t3, [%dst + offset + 0x38];
-
-#define MOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3)	\
-	ldx		[%src - offset - 0x10], %t0;		\
-	ldx		[%src - offset - 0x08], %t1; 		\
-	stw		%t0, [%dst - offset - 0x0c]; 		\
-	srlx		%t0, 32, %t2;				\
-	stw		%t2, [%dst - offset - 0x10]; 		\
-	stw		%t1, [%dst - offset - 0x04]; 		\
-	srlx		%t1, 32, %t3;				\
-	stw		%t3, [%dst - offset - 0x08];
-
-#define MOVE_LASTALIGNCHUNK(src, dst, offset, t0, t1)		\
-	ldx		[%src - offset - 0x10], %t0; 		\
-	ldx		[%src - offset - 0x08], %t1; 		\
-	stx		%t0, [%dst - offset - 0x10]; 		\
-	stx		%t1, [%dst - offset - 0x08];
-
-	.text
-	.align		32
-ENTRY(__memcpy_large)
-200:	be,pt		%xcc, 201f			/* CTI				*/
-	 andcc		%o0, 0x38, %g5			/* IEU1		Group		*/
-	mov		8, %g1				/* IEU0				*/
-	sub		%g1, %g2, %g2			/* IEU0		Group		*/
-	andcc		%o0, 1, %g0			/* IEU1				*/
-	be,pt		%icc, 2f			/* CTI				*/
-	 sub		%o2, %g2, %o2			/* IEU0		Group		*/
-1:	ldub		[%o1], %o5			/* Load		Group		*/
-	add		%o1, 1, %o1			/* IEU0				*/
-	add		%o0, 1, %o0			/* IEU1				*/
-	subcc		%g2, 1, %g2			/* IEU1		Group		*/
-	be,pn		%xcc, 3f			/* CTI				*/
-	 stb		%o5, [%o0 - 1]			/* Store			*/
-2:	ldub		[%o1], %o5			/* Load		Group		*/
-	add		%o0, 2, %o0			/* IEU0				*/
-	ldub		[%o1 + 1], %g3			/* Load		Group		*/
-	subcc		%g2, 2, %g2			/* IEU1		Group		*/
-	stb		%o5, [%o0 - 2]			/* Store			*/
-	add		%o1, 2, %o1			/* IEU0				*/
-	bne,pt		%xcc, 2b			/* CTI		Group		*/
-	 stb		%g3, [%o0 - 1]			/* Store			*/
-3:	andcc		%o0, 0x38, %g5			/* IEU1		Group		*/
-201:	be,pt		%icc, 202f			/* CTI				*/
-	 mov		64, %g1				/* IEU0				*/
-	fsrc2		%f0, %f2			/* FPU				*/
-	sub		%g1, %g5, %g5			/* IEU0		Group		*/
-	alignaddr	%o1, %g0, %g1			/* GRU		Group		*/
-	ldd		[%g1], %f4			/* Load		Group		*/
-	sub		%o2, %g5, %o2			/* IEU0				*/
-1:	ldd		[%g1 + 0x8], %f6		/* Load		Group		*/
-	add		%g1, 0x8, %g1			/* IEU0		Group		*/
-	subcc		%g5, 8, %g5			/* IEU1				*/
-	faligndata	%f4, %f6, %f0			/* GRU		Group		*/
-	std		%f0, [%o0]			/* Store			*/
-	add		%o1, 8, %o1			/* IEU0		Group		*/
-	be,pn		%xcc, 202f			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU1				*/
-	ldd		[%g1 + 0x8], %f4		/* Load		Group		*/
-	add		%g1, 8, %g1			/* IEU0				*/
-	subcc		%g5, 8, %g5			/* IEU1				*/
-	faligndata	%f6, %f4, %f0			/* GRU		Group		*/
-	std		%f0, [%o0]			/* Store			*/
-	add		%o1, 8, %o1			/* IEU0				*/
-	bne,pt		%xcc, 1b			/* CTI		Group		*/
-	 add		%o0, 8, %o0			/* IEU0				*/
-202:	membar	  #LoadStore | #StoreStore | #StoreLoad	/* LSU		Group		*/
-	wr		%g0, ASI_BLK_P, %asi		/* LSU		Group		*/
-	subcc		%o2, 0x40, %g6			/* IEU1		Group		*/
-	mov		%o1, %g1			/* IEU0				*/
-	andncc		%g6, (0x40 - 1), %g6		/* IEU1		Group		*/
-	srl		%g1, 3, %g2			/* IEU0				*/
-	sub		%o2, %g6, %g3			/* IEU0		Group		*/
-	andn		%o1, (0x40 - 1), %o1		/* IEU1				*/
-	and		%g2, 7, %g2			/* IEU0		Group		*/
-	andncc		%g3, 0x7, %g3			/* IEU1				*/
-	fsrc2		%f0, %f2			/* FPU				*/
-	sub		%g3, 0x10, %g3			/* IEU0		Group		*/
-	sub		%o2, %g6, %o2			/* IEU1				*/
-	alignaddr	%g1, %g0, %g0			/* GRU		Group		*/
-	add		%g1, %g6, %g1			/* IEU0		Group		*/
-	subcc		%o2, %g3, %o2			/* IEU1				*/
-	ldda		[%o1 + 0x00] %asi, %f0		/* LSU		Group		*/
-	add		%g1, %g3, %g1			/* IEU0				*/
-	ldda		[%o1 + 0x40] %asi, %f16		/* LSU		Group		*/
-	sub		%g6, 0x80, %g6			/* IEU0				*/
-	ldda		[%o1 + 0x80] %asi, %f32		/* LSU		Group		*/
-							/* Clk1		Group 8-(	*/
-							/* Clk2		Group 8-(	*/
-							/* Clk3		Group 8-(	*/
-							/* Clk4		Group 8-(	*/
-203:	rd		%pc, %g5			/* PDU		Group 8-(	*/
-	addcc		%g5, %lo(300f - 203b), %g5	/* IEU1		Group		*/
-	sll		%g2, 9, %g2			/* IEU0				*/
-	jmpl		%g5 + %g2, %g0			/* CTI		Group brk forced*/
-	 addcc		%o1, 0xc0, %o1			/* IEU1		Group		*/
-
-	.align		512		/* OK, here comes the fun part... */
-300:	FREG_FROB(f0, f2, f4, f6, f8, f10,f12,f14,f16)	LOOP_CHUNK1(o1, o0, g6, 301f)
-	FREG_FROB(f16,f18,f20,f22,f24,f26,f28,f30,f32)	LOOP_CHUNK2(o1, o0, g6, 302f)
-	FREG_FROB(f32,f34,f36,f38,f40,f42,f44,f46,f0)	LOOP_CHUNK3(o1, o0, g6, 303f)
-	b,pt		%xcc, 300b+4; faligndata %f0, %f2, %f48
-301:	FREG_FROB(f16,f18,f20,f22,f24,f26,f28,f30,f32)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f32,f34,f36,f38,f40,f42,f44,f46,f0)	STORE_JUMP(o0, f48, 400f) membar #Sync
-302:	FREG_FROB(f32,f34,f36,f38,f40,f42,f44,f46,f0)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f0, f2, f4, f6, f8, f10,f12,f14,f16)	STORE_JUMP(o0, f48, 416f) membar #Sync
-303:	FREG_FROB(f0, f2, f4, f6, f8, f10,f12,f14,f16)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f16,f18,f20,f22,f24,f26,f28,f30,f32)	STORE_JUMP(o0, f48, 432f) membar #Sync
-	VISLOOP_PAD
-310:	FREG_FROB(f2, f4, f6, f8, f10,f12,f14,f16,f18)	LOOP_CHUNK1(o1, o0, g6, 311f)
-	FREG_FROB(f18,f20,f22,f24,f26,f28,f30,f32,f34)	LOOP_CHUNK2(o1, o0, g6, 312f)
-	FREG_FROB(f34,f36,f38,f40,f42,f44,f46,f0, f2)	LOOP_CHUNK3(o1, o0, g6, 313f)
-	b,pt		%xcc, 310b+4; faligndata %f2, %f4, %f48
-311:	FREG_FROB(f18,f20,f22,f24,f26,f28,f30,f32,f34)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f34,f36,f38,f40,f42,f44,f46,f0, f2)	STORE_JUMP(o0, f48, 402f) membar #Sync
-312:	FREG_FROB(f34,f36,f38,f40,f42,f44,f46,f0, f2)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f2, f4, f6, f8, f10,f12,f14,f16,f18)	STORE_JUMP(o0, f48, 418f) membar #Sync
-313:	FREG_FROB(f2, f4, f6, f8, f10,f12,f14,f16,f18)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f18,f20,f22,f24,f26,f28,f30,f32,f34)	STORE_JUMP(o0, f48, 434f) membar #Sync
-	VISLOOP_PAD
-320:	FREG_FROB(f4, f6, f8, f10,f12,f14,f16,f18,f20)	LOOP_CHUNK1(o1, o0, g6, 321f)
-	FREG_FROB(f20,f22,f24,f26,f28,f30,f32,f34,f36)	LOOP_CHUNK2(o1, o0, g6, 322f)
-	FREG_FROB(f36,f38,f40,f42,f44,f46,f0, f2, f4)	LOOP_CHUNK3(o1, o0, g6, 323f)
-	b,pt		%xcc, 320b+4; faligndata %f4, %f6, %f48
-321:	FREG_FROB(f20,f22,f24,f26,f28,f30,f32,f34,f36)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f36,f38,f40,f42,f44,f46,f0, f2, f4)	STORE_JUMP(o0, f48, 404f) membar #Sync
-322:	FREG_FROB(f36,f38,f40,f42,f44,f46,f0, f2, f4)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f4, f6, f8, f10,f12,f14,f16,f18,f20)	STORE_JUMP(o0, f48, 420f) membar #Sync
-323:	FREG_FROB(f4, f6, f8, f10,f12,f14,f16,f18,f20)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f20,f22,f24,f26,f28,f30,f32,f34,f36)	STORE_JUMP(o0, f48, 436f) membar #Sync
-	VISLOOP_PAD
-330:	FREG_FROB(f6, f8, f10,f12,f14,f16,f18,f20,f22)	LOOP_CHUNK1(o1, o0, g6, 331f)
-	FREG_FROB(f22,f24,f26,f28,f30,f32,f34,f36,f38)	LOOP_CHUNK2(o1, o0, g6, 332f)
-	FREG_FROB(f38,f40,f42,f44,f46,f0, f2, f4, f6)	LOOP_CHUNK3(o1, o0, g6, 333f)
-	b,pt		%xcc, 330b+4; faligndata %f6, %f8, %f48
-331:	FREG_FROB(f22,f24,f26,f28,f30,f32,f34,f36,f38)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f38,f40,f42,f44,f46,f0, f2, f4, f6)	STORE_JUMP(o0, f48, 406f) membar #Sync
-332:	FREG_FROB(f38,f40,f42,f44,f46,f0, f2, f4, f6)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f6, f8, f10,f12,f14,f16,f18,f20,f22)	STORE_JUMP(o0, f48, 422f) membar #Sync
-333:	FREG_FROB(f6, f8, f10,f12,f14,f16,f18,f20,f22)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f22,f24,f26,f28,f30,f32,f34,f36,f38)	STORE_JUMP(o0, f48, 438f) membar #Sync
-	VISLOOP_PAD
-340:	FREG_FROB(f8, f10,f12,f14,f16,f18,f20,f22,f24)	LOOP_CHUNK1(o1, o0, g6, 341f)
-	FREG_FROB(f24,f26,f28,f30,f32,f34,f36,f38,f40)	LOOP_CHUNK2(o1, o0, g6, 342f)
-	FREG_FROB(f40,f42,f44,f46,f0, f2, f4, f6, f8)	LOOP_CHUNK3(o1, o0, g6, 343f)
-	b,pt		%xcc, 340b+4; faligndata %f8, %f10, %f48
-341:	FREG_FROB(f24,f26,f28,f30,f32,f34,f36,f38,f40)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f40,f42,f44,f46,f0, f2, f4, f6, f8)	STORE_JUMP(o0, f48, 408f) membar #Sync
-342:	FREG_FROB(f40,f42,f44,f46,f0, f2, f4, f6, f8)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f8, f10,f12,f14,f16,f18,f20,f22,f24)	STORE_JUMP(o0, f48, 424f) membar #Sync
-343:	FREG_FROB(f8, f10,f12,f14,f16,f18,f20,f22,f24)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f24,f26,f28,f30,f32,f34,f36,f38,f40)	STORE_JUMP(o0, f48, 440f) membar #Sync
-	VISLOOP_PAD
-350:	FREG_FROB(f10,f12,f14,f16,f18,f20,f22,f24,f26)	LOOP_CHUNK1(o1, o0, g6, 351f)
-	FREG_FROB(f26,f28,f30,f32,f34,f36,f38,f40,f42)	LOOP_CHUNK2(o1, o0, g6, 352f)
-	FREG_FROB(f42,f44,f46,f0, f2, f4, f6, f8, f10)	LOOP_CHUNK3(o1, o0, g6, 353f)
-	b,pt		%xcc, 350b+4; faligndata %f10, %f12, %f48
-351:	FREG_FROB(f26,f28,f30,f32,f34,f36,f38,f40,f42)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f42,f44,f46,f0, f2, f4, f6, f8, f10)	STORE_JUMP(o0, f48, 410f) membar #Sync
-352:	FREG_FROB(f42,f44,f46,f0, f2, f4, f6, f8, f10)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f10,f12,f14,f16,f18,f20,f22,f24,f26)	STORE_JUMP(o0, f48, 426f) membar #Sync
-353:	FREG_FROB(f10,f12,f14,f16,f18,f20,f22,f24,f26)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f26,f28,f30,f32,f34,f36,f38,f40,f42)	STORE_JUMP(o0, f48, 442f) membar #Sync
-	VISLOOP_PAD
-360:	FREG_FROB(f12,f14,f16,f18,f20,f22,f24,f26,f28)	LOOP_CHUNK1(o1, o0, g6, 361f)
-	FREG_FROB(f28,f30,f32,f34,f36,f38,f40,f42,f44)	LOOP_CHUNK2(o1, o0, g6, 362f)
-	FREG_FROB(f44,f46,f0, f2, f4, f6, f8, f10,f12)	LOOP_CHUNK3(o1, o0, g6, 363f)
-	b,pt		%xcc, 360b+4; faligndata %f12, %f14, %f48
-361:	FREG_FROB(f28,f30,f32,f34,f36,f38,f40,f42,f44)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f44,f46,f0, f2, f4, f6, f8, f10,f12)	STORE_JUMP(o0, f48, 412f) membar #Sync
-362:	FREG_FROB(f44,f46,f0, f2, f4, f6, f8, f10,f12)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f12,f14,f16,f18,f20,f22,f24,f26,f28)	STORE_JUMP(o0, f48, 428f) membar #Sync
-363:	FREG_FROB(f12,f14,f16,f18,f20,f22,f24,f26,f28)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f28,f30,f32,f34,f36,f38,f40,f42,f44)	STORE_JUMP(o0, f48, 444f) membar #Sync
-	VISLOOP_PAD
-370:	FREG_FROB(f14,f16,f18,f20,f22,f24,f26,f28,f30)	LOOP_CHUNK1(o1, o0, g6, 371f)
-	FREG_FROB(f30,f32,f34,f36,f38,f40,f42,f44,f46)	LOOP_CHUNK2(o1, o0, g6, 372f)
-	FREG_FROB(f46,f0, f2, f4, f6, f8, f10,f12,f14)	LOOP_CHUNK3(o1, o0, g6, 373f)
-	b,pt		%xcc, 370b+4; faligndata %f14, %f16, %f48
-371:	FREG_FROB(f30,f32,f34,f36,f38,f40,f42,f44,f46)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f46,f0, f2, f4, f6, f8, f10,f12,f14)	STORE_JUMP(o0, f48, 414f) membar #Sync
-372:	FREG_FROB(f46,f0, f2, f4, f6, f8, f10,f12,f14)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f14,f16,f18,f20,f22,f24,f26,f28,f30)	STORE_JUMP(o0, f48, 430f) membar #Sync
-373:	FREG_FROB(f14,f16,f18,f20,f22,f24,f26,f28,f30)	STORE_SYNC(o0, f48) membar #Sync
-	FREG_FROB(f30,f32,f34,f36,f38,f40,f42,f44,f46)	STORE_JUMP(o0, f48, 446f) membar #Sync
-	VISLOOP_PAD
-400:	FINISH_VISCHUNK(o0, f0,  f2,  g3)
-402:	FINISH_VISCHUNK(o0, f2,  f4,  g3)
-404:	FINISH_VISCHUNK(o0, f4,  f6,  g3)
-406:	FINISH_VISCHUNK(o0, f6,  f8,  g3)
-408:	FINISH_VISCHUNK(o0, f8,  f10, g3)
-410:	FINISH_VISCHUNK(o0, f10, f12, g3)
-412:	FINISH_VISCHUNK(o0, f12, f14, g3)
-414:	UNEVEN_VISCHUNK(o0, f14, f0,  g3)
-416:	FINISH_VISCHUNK(o0, f16, f18, g3)
-418:	FINISH_VISCHUNK(o0, f18, f20, g3)
-420:	FINISH_VISCHUNK(o0, f20, f22, g3)
-422:	FINISH_VISCHUNK(o0, f22, f24, g3)
-424:	FINISH_VISCHUNK(o0, f24, f26, g3)
-426:	FINISH_VISCHUNK(o0, f26, f28, g3)
-428:	FINISH_VISCHUNK(o0, f28, f30, g3)
-430:	UNEVEN_VISCHUNK(o0, f30, f0,  g3)
-432:	FINISH_VISCHUNK(o0, f32, f34, g3)
-434:	FINISH_VISCHUNK(o0, f34, f36, g3)
-436:	FINISH_VISCHUNK(o0, f36, f38, g3)
-438:	FINISH_VISCHUNK(o0, f38, f40, g3)
-440:	FINISH_VISCHUNK(o0, f40, f42, g3)
-442:	FINISH_VISCHUNK(o0, f42, f44, g3)
-444:	FINISH_VISCHUNK(o0, f44, f46, g3)
-446:	UNEVEN_VISCHUNK(o0, f46, f0,  g3)
-204:	ldd		[%o1], %f2			/* Load		Group		*/
-	add		%o1, 8, %o1			/* IEU0				*/
-	subcc		%g3, 8, %g3			/* IEU1				*/
-	faligndata	%f0, %f2, %f8			/* GRU		Group		*/
-	std		%f8, [%o0]			/* Store			*/
-	bl,pn		%xcc, 205f			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU0		Group		*/
-	ldd		[%o1], %f0			/* Load		Group		*/
-	add		%o1, 8, %o1			/* IEU0				*/
-	subcc		%g3, 8, %g3			/* IEU1				*/
-	faligndata	%f2, %f0, %f8			/* GRU		Group		*/
-	std		%f8, [%o0]			/* Store			*/
-	bge,pt		%xcc, 204b			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU0		Group		*/
-205:	brz,pt		%o2, 207f			/* CTI		Group		*/
-	 mov		%g1, %o1			/* IEU0				*/
-206:	ldub		[%o1], %g5			/* LOAD				*/
-	add		%o1, 1, %o1			/* IEU0				*/
-	add		%o0, 1, %o0			/* IEU1				*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	bne,pt		%xcc, 206b			/* CTI				*/
-	 stb		%g5, [%o0 - 1]			/* Store	Group		*/
-207:	membar		#StoreLoad | #StoreStore	/* LSU		Group		*/
-	wr		%g0, FPRS_FEF, %fprs
-	retl
-	 mov		%g4, %o0
-
-208:	andcc		%o2, 1, %g0			/* IEU1		Group		*/
-	be,pt		%icc, 2f+4			/* CTI				*/
-1:	 ldub		[%o1], %g5			/* LOAD		Group		*/
-	add		%o1, 1, %o1			/* IEU0				*/
-	add		%o0, 1, %o0			/* IEU1				*/
-	subcc		%o2, 1, %o2			/* IEU1		Group		*/
-	be,pn		%xcc, 209f			/* CTI				*/
-	 stb		%g5, [%o0 - 1]			/* Store			*/
-2:	ldub		[%o1], %g5			/* LOAD		Group		*/
-	add		%o0, 2, %o0			/* IEU0				*/
-	ldub		[%o1 + 1], %o5			/* LOAD		Group		*/
-	add		%o1, 2, %o1			/* IEU0				*/
-	subcc		%o2, 2, %o2			/* IEU1		Group		*/
-	stb		%g5, [%o0 - 2]			/* Store			*/
-	bne,pt		%xcc, 2b			/* CTI				*/
-	 stb		%o5, [%o0 - 1]			/* Store			*/
-209:	retl
-	 mov		%g4, %o0
-END(__memcpy_large)
-
-ENTRY(__mempcpy)
-	ba,pt		%xcc, 210f
-	 add		%o0, %o2, %g4
-END(__mempcpy)
-
-	.align		32
-ENTRY(memcpy)
-	 mov		%o0, %g4			/* IEU0		Group		*/
-210:
-#ifndef USE_BPR
-	srl		%o2, 0, %o2			/* IEU1				*/
-#endif
-	brz,pn		%o2, 209b			/* CTI		Group		*/
-218:	 cmp		%o2, 15				/* IEU1				*/
-	bleu,pn		%xcc, 208b			/* CTI		Group		*/
-	 cmp		%o2, (64 * 6)			/* IEU1				*/
-	bgeu,pn		%xcc, 200b			/* CTI		Group		*/
-	 andcc		%o0, 7, %g2			/* IEU1				*/
-	sub		%o0, %o1, %g5			/* IEU0				*/
-	andcc		%g5, 3, %o5			/* IEU1		Group		*/
-	bne,pn		%xcc, 212f			/* CTI				*/
-	 andcc		%o1, 3, %g0			/* IEU1		Group		*/
-	be,a,pt		%xcc, 216f			/* CTI				*/
-	 andcc		%o1, 4, %g0			/* IEU1		Group		*/
-	andcc		%o1, 1, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 4f			/* CTI				*/
-	 andcc		%o1, 2, %g0			/* IEU1		Group		*/
-	ldub		[%o1], %g2			/* Load		Group		*/
-	add		%o1, 1, %o1			/* IEU0				*/
-	add		%o0, 1, %o0			/* IEU1				*/
-	sub		%o2, 1, %o2			/* IEU0		Group		*/
-	bne,pn		%xcc, 5f			/* CTI		Group		*/
-	 stb		%g2, [%o0 - 1]			/* Store			*/
-4:	lduh		[%o1], %g2			/* Load		Group		*/
-	add		%o1, 2, %o1			/* IEU0				*/
-	add		%o0, 2, %o0			/* IEU1				*/
-	sub		%o2, 2, %o2			/* IEU0				*/
-	sth		%g2, [%o0 - 2]			/* Store	Group + bubble	*/
-5:	andcc		%o1, 4, %g0			/* IEU1				*/
-216:	be,a,pn		%xcc, 2f			/* CTI				*/
-	 andcc		%o2, -128, %g6			/* IEU1		Group		*/
-	lduw		[%o1], %g5			/* Load		Group		*/
-	add		%o1, 4, %o1			/* IEU0				*/
-	add		%o0, 4, %o0			/* IEU1				*/
-	sub		%o2, 4, %o2			/* IEU0		Group		*/
-	stw		%g5, [%o0 - 4]			/* Store			*/
-	andcc		%o2, -128, %g6			/* IEU1		Group		*/
-2:	be,pn		%xcc, 215f			/* CTI				*/
-	 andcc		%o0, 4, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 82f + 4			/* CTI		Group		*/
-5:	MOVE_BIGCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-	MOVE_BIGCHUNK(o1, o0, 0x20, g1, g3, g5, o5)
-	MOVE_BIGCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-	MOVE_BIGCHUNK(o1, o0, 0x60, g1, g3, g5, o5)
-35:	subcc		%g6, 128, %g6			/* IEU1		Group		*/
-	add		%o1, 128, %o1			/* IEU0				*/
-	bne,pt		%xcc, 5b			/* CTI				*/
-	 add		%o0, 128, %o0			/* IEU0		Group		*/
-215:	andcc		%o2, 0x70, %g6			/* IEU1		Group		*/
-41:	be,pn		%xcc, 80f			/* CTI				*/
-	 andcc		%o2, 8, %g0			/* IEU1		Group		*/
-							/* Clk1 8-(			*/
-							/* Clk2 8-(			*/
-							/* Clk3 8-(			*/
-							/* Clk4 8-(			*/
-79:	rd		%pc, %o5			/* PDU		Group		*/
-	sll		%g6, 1, %g5			/* IEU0		Group		*/
-	add		%o1, %g6, %o1			/* IEU1				*/
-	sub		%o5, %g5, %o5			/* IEU0  	Group		*/
-	jmpl		%o5 + %lo(80f - 79b), %g0	/* CTI		Group brk forced*/
-	 add		%o0, %g6, %o0			/* IEU0		Group		*/
-36:	MOVE_LASTCHUNK(o1, o0, 0x60, g2, g3, g5, o5)
-	MOVE_LASTCHUNK(o1, o0, 0x50, g2, g3, g5, o5)
-	MOVE_LASTCHUNK(o1, o0, 0x40, g2, g3, g5, o5)
-	MOVE_LASTCHUNK(o1, o0, 0x30, g2, g3, g5, o5)
-	MOVE_LASTCHUNK(o1, o0, 0x20, g2, g3, g5, o5)
-	MOVE_LASTCHUNK(o1, o0, 0x10, g2, g3, g5, o5)
-	MOVE_LASTCHUNK(o1, o0, 0x00, g2, g3, g5, o5)
-80:	be,pt		%xcc, 81f			/* CTI				*/
-	 andcc		%o2, 4, %g0			/* IEU1				*/
-	ldx		[%o1], %g2			/* Load		Group		*/
-	add		%o0, 8, %o0			/* IEU0				*/
-	stw		%g2, [%o0 - 0x4]		/* Store	Group		*/
-	add		%o1, 8, %o1			/* IEU1				*/
-	srlx		%g2, 32, %g2			/* IEU0		Group		*/
-	stw		%g2, [%o0 - 0x8]		/* Store			*/
-81:	be,pt		%xcc, 1f			/* CTI				*/
-	 andcc		%o2, 2, %g0			/* IEU1		Group		*/
-	lduw		[%o1], %g2			/* Load		Group		*/
-	add		%o1, 4, %o1			/* IEU0				*/
-	stw		%g2, [%o0]			/* Store	Group		*/
-	add		%o0, 4, %o0			/* IEU0				*/
-1:	be,pt		%xcc, 1f			/* CTI				*/
-	 andcc		%o2, 1, %g0			/* IEU1		Group		*/
-	lduh		[%o1], %g2			/* Load		Group		*/
-	add		%o1, 2, %o1			/* IEU0				*/
-	sth		%g2, [%o0]			/* Store	Group		*/
-	add		%o0, 2, %o0			/* IEU0				*/
-1:	be,pt		%xcc, 211f			/* CTI				*/
-	 nop						/* IEU1				*/
-	ldub		[%o1], %g2			/* Load		Group		*/
-	stb		%g2, [%o0]			/* Store	Group + bubble	*/
-211:	retl
-	 mov		%g4, %o0
-
-82:	MOVE_BIGALIGNCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-	MOVE_BIGALIGNCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-37:	subcc		%g6, 128, %g6			/* IEU1		Group		*/
-	add		%o1, 128, %o1			/* IEU0				*/
-	bne,pt		%xcc, 82b			/* CTI				*/
-	 add		%o0, 128, %o0			/* IEU0		Group		*/
-	andcc		%o2, 0x70, %g6			/* IEU1				*/
-	be,pn		%xcc, 84f			/* CTI				*/
-	 andcc		%o2, 8, %g0			/* IEU1		Group		*/
-							/* Clk1 8-(			*/
-							/* Clk2 8-(			*/
-							/* Clk3 8-(			*/
-							/* Clk4 8-(			*/
-83:	rd		%pc, %o5			/* PDU		Group		*/
-	add		%o1, %g6, %o1			/* IEU0		Group		*/
-	sub		%o5, %g6, %o5			/* IEU1				*/
-	jmpl		%o5 + %lo(84f - 83b), %g0	/* CTI		Group brk forced*/
-	 add		%o0, %g6, %o0			/* IEU0		Group		*/
-38:	MOVE_LASTALIGNCHUNK(o1, o0, 0x60, g2, g3)
-	MOVE_LASTALIGNCHUNK(o1, o0, 0x50, g2, g3)
-	MOVE_LASTALIGNCHUNK(o1, o0, 0x40, g2, g3)
-	MOVE_LASTALIGNCHUNK(o1, o0, 0x30, g2, g3)
-	MOVE_LASTALIGNCHUNK(o1, o0, 0x20, g2, g3)
-	MOVE_LASTALIGNCHUNK(o1, o0, 0x10, g2, g3)
-	MOVE_LASTALIGNCHUNK(o1, o0, 0x00, g2, g3)
-84:	be,pt		%xcc, 85f			/* CTI		Group		*/
-	 andcc		%o2, 4, %g0			/* IEU1				*/
-	ldx		[%o1], %g2			/* Load		Group		*/
-	add		%o0, 8, %o0			/* IEU0				*/
-	add		%o1, 8, %o1			/* IEU0		Group		*/
-	stx		%g2, [%o0 - 0x8]		/* Store			*/
-85:	be,pt		%xcc, 1f			/* CTI				*/
-	 andcc		%o2, 2, %g0			/* IEU1		Group		*/
-	lduw		[%o1], %g2			/* Load		Group		*/
-	add		%o0, 4, %o0			/* IEU0				*/
-	add		%o1, 4, %o1			/* IEU0		Group		*/
-	stw		%g2, [%o0 - 0x4]		/* Store			*/
-1:	be,pt		%xcc, 1f			/* CTI				*/
-	 andcc		%o2, 1, %g0			/* IEU1		Group		*/
-	lduh		[%o1], %g2			/* Load		Group		*/
-	add		%o0, 2, %o0			/* IEU0				*/
-	add		%o1, 2, %o1			/* IEU0		Group		*/
-	sth		%g2, [%o0 - 0x2]		/* Store			*/
-1:	be,pt		%xcc, 1f			/* CTI				*/
-	 nop						/* IEU0		Group		*/
-	ldub		[%o1], %g2			/* Load		Group		*/
-	stb		%g2, [%o0]			/* Store	Group + bubble	*/
-1:	retl
-	 mov		%g4, %o0
-
-212:	brz,pt		%g2, 2f				/* CTI		Group		*/
-	 mov		8, %g1				/* IEU0				*/
-	sub		%g1, %g2, %g2			/* IEU0		Group		*/
-	sub		%o2, %g2, %o2			/* IEU0		Group		*/
-1:	ldub		[%o1], %g5			/* Load		Group		*/
-	add		%o1, 1, %o1			/* IEU0				*/
-	add		%o0, 1, %o0			/* IEU1				*/
-	subcc		%g2, 1, %g2			/* IEU1		Group		*/
-	bne,pt		%xcc, 1b			/* CTI				*/
-	 stb		%g5, [%o0 - 1]			/* Store			*/
-2:	andn		%o2, 7, %g5 			/* IEU0		Group		*/
-	and		%o2, 7, %o2			/* IEU1				*/
-	fsrc2		%f0, %f2			/* FPU				*/
-	alignaddr	%o1, %g0, %g1			/* GRU		Group		*/
-	ldd		[%g1], %f4			/* Load		Group		*/
-1:	ldd		[%g1 + 0x8], %f6		/* Load		Group		*/
-	add		%g1, 0x8, %g1			/* IEU0		Group		*/
-	subcc		%g5, 8, %g5			/* IEU1				*/
-	faligndata	%f4, %f6, %f0			/* GRU		Group		*/
-	std		%f0, [%o0]			/* Store			*/
-	add		%o1, 8, %o1			/* IEU0		Group		*/
-	be,pn		%xcc, 213f			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU1				*/
-	ldd		[%g1 + 0x8], %f4		/* Load		Group		*/
-	add		%g1, 8, %g1			/* IEU0				*/
-	subcc		%g5, 8, %g5			/* IEU1				*/
-	faligndata	%f6, %f4, %f0			/* GRU		Group		*/
-	std		%f0, [%o0]			/* Store			*/
-	add		%o1, 8, %o1			/* IEU0				*/
-	bne,pn		%xcc, 1b			/* CTI		Group		*/
-	 add		%o0, 8, %o0			/* IEU0				*/
-213:	brz,pn		%o2, 214f			/* CTI		Group		*/
-	 nop						/* IEU0				*/
-	ldub		[%o1], %g5			/* LOAD				*/
-	add		%o1, 1, %o1			/* IEU0				*/
-	add		%o0, 1, %o0			/* IEU1				*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	bne,pt		%xcc, 206b			/* CTI				*/
-	 stb		%g5, [%o0 - 1]			/* Store	Group		*/
-214:	wr		%g0, FPRS_FEF, %fprs
-	retl
-	 mov		%g4, %o0
-END(memcpy)
-
-libc_hidden_builtin_def (memcpy)
-
-libc_hidden_def (__mempcpy)
-weak_alias (__mempcpy, mempcpy)
-libc_hidden_builtin_def (mempcpy)
diff --git a/sysdeps/sparc/sparc64/memset.S b/sysdeps/sparc/sparc64/memset.S
deleted file mode 100644
index 5664436a51..0000000000
--- a/sysdeps/sparc/sparc64/memset.S
+++ /dev/null
@@ -1,314 +0,0 @@
-/* Set a block of memory to some byte value.
-   For UltraSPARC.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@caip.rutgers.edu) and
-                  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define USE_BPR
-#endif
-#define FPRS_FEF	4
-
-#define SET_BLOCKS(base, offset, source)		\
-	stx		source, [base - offset - 0x18];	\
-	stx		source, [base - offset - 0x10];	\
-	stx		source, [base - offset - 0x08];	\
-	stx		source, [base - offset - 0x00];
-
-	/* Well, memset is a lot easier to get right than bcopy... */
-	.text
-	.align		32
-ENTRY(memset)
-	andcc		%o1, 0xff, %o1
-	mov		%o0, %o5
-	be,a,pt		%icc, 50f
-#ifndef USE_BPR
-	 srl		%o2, 0, %o1
-#else
-	 mov		%o2, %o1
-#endif
-	cmp		%o2, 7
-#ifndef USE_BPR
-	srl		%o2, 0, %o2
-#endif
-	bleu,pn		%XCC, 17f
-	 andcc		%o0, 3, %g5
-	be,pt		%xcc, 4f
-	 and		%o1, 0xff, %o1
-	cmp		%g5, 3
-	be,pn		%xcc, 2f
-	 stb		%o1, [%o0 + 0x00]
-	cmp		%g5, 2
-	be,pt		%xcc, 2f
-	 stb		%o1, [%o0 + 0x01]
-	stb		%o1, [%o0 + 0x02]
-2:	sub		%g5, 4, %g5
-	sub		%o0, %g5, %o0
-	add		%o2, %g5, %o2
-4:	sllx		%o1, 8, %g1
-	andcc		%o0, 4, %g0
-	or		%o1, %g1, %o1
-	sllx		%o1, 16, %g1
-	or		%o1, %g1, %o1
-	be,pt		%xcc, 2f
-	 sllx		%o1, 32, %g1
-	stw		%o1, [%o0]
-	sub		%o2, 4, %o2
-	add		%o0, 4, %o0
-2:	cmp		%o2, 128
-	or		%o1, %g1, %o1
-	blu,pn		%xcc, 9f
-	 andcc		%o0, 0x38, %g5
-	be,pn		%icc, 6f
-	 mov		64, %o4
-	andcc		%o0, 8, %g0
-	be,pn		%icc, 1f
-	 sub		%o4, %g5, %o4
-	stx		%o1, [%o0]
-	add		%o0, 8, %o0
-1:	andcc		%o4, 16, %g0
-	be,pn		%icc, 1f
-	 sub		%o2, %o4, %o2
-	stx		%o1, [%o0]
-	stx		%o1, [%o0 + 8]
-	add		%o0, 16, %o0
-1:	andcc		%o4, 32, %g0
-	be,pn		%icc, 7f
-	 andncc		%o2, 0x3f, %o3
-	stw		%o1, [%o0]
-	stw		%o1, [%o0 + 4]
-	stw		%o1, [%o0 + 8]
-	stw		%o1, [%o0 + 12]
-	stw		%o1, [%o0 + 16]
-	stw		%o1, [%o0 + 20]
-	stw		%o1, [%o0 + 24]
-	stw		%o1, [%o0 + 28]
-	add		%o0, 32, %o0
-7:	be,pn		%xcc, 9f
-	 nop
-	ldd		[%o0 - 8], %f0
-18:	wr		%g0, ASI_BLK_P, %asi
-	membar		#StoreStore | #LoadStore
-	andcc		%o3, 0xc0, %g5
-	and		%o2, 0x3f, %o2
-	fsrc2		%f0, %f2
-	fsrc2		%f0, %f4
-	andn		%o3, 0xff, %o3
-	fsrc2		%f0, %f6
-	cmp		%g5, 64
-	fsrc2		%f0, %f8
-	fsrc2		%f0, %f10
-	fsrc2		%f0, %f12
-	brz,pn		%g5, 10f
-	 fsrc2		%f0, %f14
-	be,pn		%icc, 2f
-	 stda		%f0, [%o0 + 0x00] %asi
-	cmp		%g5, 128
-	be,pn		%icc, 2f
-	 stda		%f0, [%o0 + 0x40] %asi
-	stda		%f0, [%o0 + 0x80] %asi
-2:	brz,pn		%o3, 12f
-	 add		%o0, %g5, %o0
-10:	stda		%f0, [%o0 + 0x00] %asi
-	stda		%f0, [%o0 + 0x40] %asi
-	stda		%f0, [%o0 + 0x80] %asi
-	stda		%f0, [%o0 + 0xc0] %asi
-11:	subcc		%o3, 256, %o3
-	bne,pt		%xcc, 10b
-	 add		%o0, 256, %o0
-12:	wr		%g0, FPRS_FEF, %fprs
-	membar		#StoreLoad | #StoreStore
-9:	andcc		%o2, 0x78, %g5
-	be,pn		%xcc, 13f
-	 andcc		%o2, 7, %o2
-14:	rd		%pc, %o4
-	srl		%g5, 1, %o3
-	sub		%o4, %o3, %o4
-	jmpl		%o4 + (13f - 14b), %g0
-	 add		%o0, %g5, %o0
-12:	SET_BLOCKS	(%o0, 0x68, %o1)
-	SET_BLOCKS	(%o0, 0x48, %o1)
-	SET_BLOCKS	(%o0, 0x28, %o1)
-	SET_BLOCKS	(%o0, 0x08, %o1)
-13:	be,pn		%xcc, 8f
-	 andcc		%o2, 4, %g0
-	be,pn		%xcc, 1f
-	 andcc		%o2, 2, %g0
-	stw		%o1, [%o0]
-	add		%o0, 4, %o0
-1:	be,pn		%xcc, 1f
-	 andcc		%o2, 1, %g0
-	sth		%o1, [%o0]
-	add		%o0, 2, %o0
-1:	bne,a,pn	%xcc, 8f
-	 stb		%o1, [%o0]
-8:	retl
-	 mov		%o5, %o0
-17:	brz,pn		%o2, 0f
-8:	 add		%o0, 1, %o0
-	subcc		%o2, 1, %o2
-	bne,pt		%xcc, 8b
-	 stb		%o1, [%o0 - 1]
-0:	retl
-	 mov		%o5, %o0
-
-6:	stx		%o1, [%o0]
-	andncc		%o2, 0x3f, %o3
-	be,pn		%xcc, 9b
-	 nop
-	ba,pt		%xcc, 18b
-	 ldd		[%o0], %f0
-END(memset)
-libc_hidden_builtin_def (memset)
-
-#define ZERO_BLOCKS(base, offset, source)		\
-	stx		source, [base - offset - 0x38];	\
-	stx		source, [base - offset - 0x30];	\
-	stx		source, [base - offset - 0x28];	\
-	stx		source, [base - offset - 0x20];	\
-	stx		source, [base - offset - 0x18];	\
-	stx		source, [base - offset - 0x10];	\
-	stx		source, [base - offset - 0x08];	\
-	stx		source, [base - offset - 0x00];
-
-	.text
-	.align		32
-ENTRY(__bzero)
-#ifndef USE_BPR
-	srl		%o1, 0, %o1
-#endif
-	mov		%o0, %o5
-50:	cmp		%o1, 7
-	bleu,pn		%xcc, 17f
-	 andcc		%o0, 3, %o2
-	be,a,pt		%xcc, 4f
-	 andcc		%o0, 4, %g0
-	cmp		%o2, 3
-	be,pn		%xcc, 2f
-	 stb		%g0, [%o0 + 0x00]
-	cmp		%o2, 2
-	be,pt		%xcc, 2f
-	 stb		%g0, [%o0 + 0x01]
-	stb		%g0, [%o0 + 0x02]
-2:	sub		%o2, 4, %o2
-	sub		%o0, %o2, %o0
-	add		%o1, %o2, %o1
-	andcc		%o0, 4, %g0
-4:	be,pt		%xcc, 2f
-	 cmp		%o1, 128
-	stw		%g0, [%o0]
-	sub		%o1, 4, %o1
-	add		%o0, 4, %o0
-2:	blu,pn		%xcc, 9f
-	 andcc		%o0, 0x38, %o2
-	be,pn		%icc, 6f
-	 mov		64, %o4
-	andcc		%o0, 8, %g0
-	be,pn		%icc, 1f
-	 sub		%o4, %o2, %o4
-	stx		%g0, [%o0]
-	add		%o0, 8, %o0
-1:	andcc		%o4, 16, %g0
-	be,pn		%icc, 1f
-	 sub		%o1, %o4, %o1
-	stx		%g0, [%o0]
-	stx		%g0, [%o0 + 8]
-	add		%o0, 16, %o0
-1:	andcc		%o4, 32, %g0
-	be,pn		%icc, 7f
-	 andncc		%o1, 0x3f, %o3
-	stx		%g0, [%o0]
-	stx		%g0, [%o0 + 8]
-	stx		%g0, [%o0 + 16]
-	stx		%g0, [%o0 + 24]
-	add		%o0, 32, %o0
-6:	andncc		%o1, 0x3f, %o3
-7:	be,pn		%xcc, 9f
-	 wr		%g0, ASI_BLK_P, %asi
-	membar		#StoreLoad | #StoreStore | #LoadStore
-	fzero		%f0
-	andcc		%o3, 0xc0, %o2
-	and		%o1, 0x3f, %o1
-	fzero		%f2
-	andn		%o3, 0xff, %o3
-	faddd		%f0, %f2, %f4
-	fmuld		%f0, %f2, %f6
-	cmp		%o2, 64
-	faddd		%f0, %f2, %f8
-	fmuld		%f0, %f2, %f10
-	faddd		%f0, %f2, %f12
-	brz,pn		%o2, 10f
-	 fmuld		%f0, %f2, %f14
-	be,pn		%icc, 2f
-	 stda		%f0, [%o0 + 0x00] %asi
-	cmp		%o2, 128
-	be,pn		%icc, 2f
-	 stda		%f0, [%o0 + 0x40] %asi
-	stda		%f0, [%o0 + 0x80] %asi
-2:	brz,pn		%o3, 12f
-	 add		%o0, %o2, %o0
-10:	stda		%f0, [%o0 + 0x00] %asi
-	stda		%f0, [%o0 + 0x40] %asi
-	stda		%f0, [%o0 + 0x80] %asi
-	stda		%f0, [%o0 + 0xc0] %asi
-11:	subcc		%o3, 256, %o3
-	bne,pt		%xcc, 10b
-	 add		%o0, 256, %o0
-12:	wr		%g0, FPRS_FEF, %fprs
-	membar		#StoreLoad | #StoreStore
-9:	andcc		%o1, 0xf8, %o2
-	be,pn		%xcc, 13f
-	 andcc		%o1, 7, %o1
-14:	rd		%pc, %o4
-	srl		%o2, 1, %o3
-	sub		%o4, %o3, %o4
-	jmpl		%o4 + (13f - 14b), %g0
-	 add		%o0, %o2, %o0
-12:	ZERO_BLOCKS	(%o0, 0xc8, %g0)
-	ZERO_BLOCKS	(%o0, 0x88, %g0)
-	ZERO_BLOCKS	(%o0, 0x48, %g0)
-	ZERO_BLOCKS	(%o0, 0x08, %g0)
-13:	be,pn		%xcc, 8f
-	 andcc		%o1, 4, %g0
-	be,pn		%xcc, 1f
-	 andcc		%o1, 2, %g0
-	stw		%g0, [%o0]
-	add		%o0, 4, %o0
-1:	be,pn		%xcc, 1f
-	 andcc		%o1, 1, %g0
-	sth		%g0, [%o0]
-	add		%o0, 2, %o0
-1:	bne,a,pn	%xcc, 8f
-	 stb		%g0, [%o0]
-8:	retl
-	 mov		%o5, %o0
-17:	be,pn		%xcc, 13b
-	 orcc		%o1, 0, %g0
-	be,pn		%xcc, 0f
-8:	 add		%o0, 1, %o0
-	subcc		%o1, 1, %o1
-	bne,pt		%xcc, 8b
-	 stb		%g0, [%o0 - 1]
-0:	retl
-	 mov		%o5, %o0
-END(__bzero)
-
-weak_alias (__bzero, bzero)
diff --git a/sysdeps/sparc/sparc64/mul_1.S b/sysdeps/sparc/sparc64/mul_1.S
deleted file mode 100644
index 0a32882c1c..0000000000
--- a/sysdeps/sparc/sparc64/mul_1.S
+++ /dev/null
@@ -1,82 +0,0 @@
-/* SPARC v9 __mpn_mul_1 -- Multiply a limb vector with a single limb and
-   store the product in a second limb vector.
-
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
-
-   This file is part of the GNU MP Library.
-
-   The GNU MP Library is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 2.1 of the License, or (at your
-   option) any later version.
-
-   The GNU MP Library is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-   License for more details.
-
-   You should have received a copy of the GNU Lesser General Public License
-   along with the GNU MP Library; see the file COPYING.LIB.  If not,
-   see <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-
-/* INPUT PARAMETERS
-   res_ptr	o0
-   s1_ptr	o1
-   size		o2
-   s2_limb	o3  */
-
-ENTRY(__mpn_mul_1)
-	!#PROLOGUE#	0
-	save	%sp,-192,%sp
-	!#PROLOGUE#	1
-
-	sub	%g0,%i2,%o7
-	sllx	%o7,3,%g5
-	sub	%i1,%g5,%o3
-	sub	%i0,%g5,%o4
-	mov	0,%o0			! zero cy_limb
-
-	srl	%i3,0,%o1		! extract low 32 bits of s2_limb
-	srlx	%i3,32,%i3		! extract high 32 bits of s2_limb
-	mov	1,%o2
-	sllx	%o2,32,%o2		! o2 = 0x100000000
-
-	!   hi   !
-             !  mid-1 !
-             !  mid-2 !
-		 !   lo   !
-.Loop:
-	sllx	%o7,3,%g1
-	ldx	[%o3+%g1],%g5
-	srl	%g5,0,%i0		! zero hi bits
-	srlx	%g5,32,%g5
-	mulx	%o1,%i0,%i4		! lo product
-	mulx	%i3,%i0,%i1		! mid-1 product
-	mulx	%o1,%g5,%l2		! mid-2 product
-	mulx	%i3,%g5,%i5		! hi product
-	srlx	%i4,32,%i0		! extract high 32 bits of lo product...
-	add	%i1,%i0,%i1		! ...and add it to the mid-1 product
-	addcc	%i1,%l2,%i1		! add mid products
-	mov	0,%l0			! we need the carry from that add...
-	movcs	%xcc,%o2,%l0		! ...compute it and...
-	add	%i5,%l0,%i5		! ...add to bit 32 of the hi product
-	sllx	%i1,32,%i0		! align low bits of mid product
-	srl	%i4,0,%g5		! zero high 32 bits of lo product
-	add	%i0,%g5,%i0		! combine into low 64 bits of result
-	srlx	%i1,32,%i1		! extract high bits of mid product...
-	add	%i5,%i1,%i1		! ...and add them to the high result
-	addcc	%i0,%o0,%i0		! add cy_limb to low 64 bits of result
-	mov	0,%g5
-	movcs	%xcc,1,%g5
-	addcc	%o7,1,%o7
-	stx	%i0,[%o4+%g1]
-	bne,pt	%xcc,.Loop
-	 add	%i1,%g5,%o0		! compute new cy_limb
-
-	jmpl	%i7+8,%g0
-	 restore %o0,%g0,%o0
-
-END(__mpn_mul_1)
diff --git a/sysdeps/sparc/sparc64/multiarch/Makefile b/sysdeps/sparc/sparc64/multiarch/Makefile
deleted file mode 100644
index 55b757f9ad..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-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
-endif
-
-ifeq ($(subdir),stdlib)
-sysdep_routines += mul_1-vis3 addmul_1-vis3 submul_1-vis3 add_n-vis3 sub_n-vis3
-endif
-
-ifeq ($(subdir),math)
-gmp-sysdep_routines = mul_1-vis3 addmul_1-vis3 submul_1-vis3 add_n-vis3 \
-		      sub_n-vis3
-endif
diff --git a/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S b/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S
deleted file mode 100644
index c038bcbd6e..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S
+++ /dev/null
@@ -1,67 +0,0 @@
-! SPARC v9 64-bit VIS3 __mpn_add_n -- Add two limb vectors of the same length > 0 and
-! store sum in a third limb vector.
-!
-! Copyright (C) 2013-2017 Free Software Foundation, Inc.
-! This file is part of the GNU C Library.
-! Contributed by David S. Miller <davem@davemloft.net>
-!
-! The GNU C Library is free software; you can redistribute it and/or
-! modify it under the terms of the GNU Lesser General Public
-! License as published by the Free Software Foundation; either
-! version 2.1 of the License, or (at your option) any later version.
-!
-! The GNU C Library is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-! Lesser General Public License for more details.
-!
-! You should have received a copy of the GNU Lesser General Public
-! License along with the GNU C Library; if not, see
-! <http://www.gnu.org/licenses/>.
-
-#include <sysdep.h>
-
-#define res_ptr	%o0
-#define s1_ptr	%o1
-#define s2_ptr	%o2
-#define sz	%o3
-#define tmp1	%g1
-#define tmp2	%g2
-#define tmp3	%g3
-#define tmp4	%o4
-
-	.register	%g2,#scratch
-	.register	%g3,#scratch
-ENTRY(__mpn_add_n_vis3)
-	subcc	sz, 1, sz
-	be	.Lfinal_limb
-	 cmp	%g0, 0
-
-.Lloop:
-	ldx	[s2_ptr + 0x00], tmp1
-	add	s2_ptr, 0x10, s2_ptr
-	ldx	[s1_ptr + 0x00], tmp2
-	add	s1_ptr, 0x10, s1_ptr
-	ldx	[s2_ptr - 0x08], tmp3
-	add	res_ptr, 0x10, res_ptr
-	ldx	[s1_ptr - 0x08], tmp4
-	sub	sz, 2, sz
-	addxccc	tmp1, tmp2, tmp1
-	stx	tmp1, [res_ptr - 0x10]
-	addxccc	tmp3, tmp4, tmp3
-	brgz	sz, .Lloop
-	stx	tmp3, [res_ptr - 0x08]
-
-	brlz,pt	sz, .Lfinish
-	 nop
-
-.Lfinal_limb:
-	ldx	[s2_ptr + 0x00], tmp1
-	ldx	[s1_ptr + 0x00], tmp2
-	addxccc	tmp1, tmp2, tmp1
-	stx	tmp1, [res_ptr + 0x00]
-
-.Lfinish:
-	retl
-	 addxc	%g0, %g0, %o0
-END(__mpn_add_n_vis3)
diff --git a/sysdeps/sparc/sparc64/multiarch/add_n.S b/sysdeps/sparc/sparc64/multiarch/add_n.S
deleted file mode 100644
index 9ffaf7865b..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/add_n.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Multiple versions of add_n
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   Contributed by David S. Miller (davem@davemloft.net)
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY(__mpn_add_n)
-	.type	__mpn_add_n, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_VIS3, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_add_n_vis3), %o1
-	xor	%o1, %gdop_lox10(__mpn_add_n_vis3), %o1
-# else
-	set	__mpn_add_n_vis3, %o1
-# endif
-	ba	10f
-	 nop
-1:
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_add_n_generic), %o1
-	xor	%o1, %gdop_lox10(__mpn_add_n_generic), %o1
-# else
-	set	__mpn_add_n_generic, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(__mpn_add_n)
-
-#define __mpn_add_n __mpn_add_n_generic
-#include "../add_n.S"
diff --git a/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S b/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S
deleted file mode 100644
index 64671f5079..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S
+++ /dev/null
@@ -1,87 +0,0 @@
-! SPARC v9 64-bit VIS3 __mpn_addmul_1 -- Multiply a limb vector with a
-! limb and add the result to a second limb vector.
-!
-! Copyright (C) 2013-2017 Free Software Foundation, Inc.
-! This file is part of the GNU C Library.
-! Contributed by David S. Miller <davem@davemloft.net>
-!
-! The GNU C Library is free software; you can redistribute it and/or
-! modify it under the terms of the GNU Lesser General Public
-! License as published by the Free Software Foundation; either
-! version 2.1 of the License, or (at your option) any later version.
-!
-! The GNU C Library is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-! Lesser General Public License for more details.
-!
-! You should have received a copy of the GNU Lesser General Public
-! License along with the GNU C Library; if not, see
-! <http://www.gnu.org/licenses/>.
-
-#include <sysdep.h>
-
-#define res_ptr	%i0
-#define s1_ptr	%i1
-#define sz	%i2
-#define s2_limb	%i3
-#define carry	%o5
-#define tmp1	%g1
-#define tmp2	%g2
-#define tmp3	%g3
-#define tmp4	%o4
-#define tmp5	%l0
-#define tmp6	%l1
-#define tmp7	%l2
-#define tmp8	%l3
-
-	.register	%g2,#scratch
-	.register	%g3,#scratch
-ENTRY(__mpn_addmul_1_vis3)
-	save	%sp, -176, %sp
-	subcc	sz, 1, sz
-	be	.Lfinal_limb
-	 clr	carry
-
-.Lloop:
-	ldx	[s1_ptr  + 0x00], tmp1
-	ldx	[res_ptr + 0x00], tmp3
-	ldx	[s1_ptr  + 0x08], tmp2
-	ldx	[res_ptr + 0x08], tmp4
-	mulx	tmp1, s2_limb, tmp5
-	add	s1_ptr, 0x10, s1_ptr
-	umulxhi	tmp1, s2_limb, tmp6
-	add	res_ptr, 0x10, res_ptr
-	mulx	tmp2, s2_limb, tmp7
-	sub	sz, 2, sz
-	umulxhi	tmp2, s2_limb, tmp8
-	addcc	carry, tmp5, tmp5
-	addxc	%g0, tmp6, carry
-	addcc	tmp3, tmp5, tmp5
-	addxc	%g0, carry, carry
-	stx	tmp5, [res_ptr - 0x10]
-	addcc	carry, tmp7, tmp7
-	addxc	%g0, tmp8, carry
-	addcc	tmp4, tmp7, tmp7
-	addxc	%g0, carry, carry
-	brgz	sz, .Lloop
-	 stx	tmp7, [res_ptr - 0x08]
-
-	brlz,pt	sz, .Lfinish
-	 nop
-
-.Lfinal_limb:
-	ldx	[s1_ptr  + 0x00], tmp1
-	ldx	[res_ptr + 0x00], tmp3
-	mulx	tmp1, s2_limb, tmp5
-	umulxhi	tmp1, s2_limb, tmp6
-	addcc	carry, tmp5, tmp5
-	addxc	%g0, tmp6, carry
-	addcc	tmp3, tmp5, tmp5
-	addxc	%g0, carry, carry
-	stx	tmp5, [res_ptr + 0x00]
-
-.Lfinish:
-	jmpl	%i7 + 8, %g0
-	 restore carry, 0, %o0
-END(__mpn_addmul_1_vis3)
diff --git a/sysdeps/sparc/sparc64/multiarch/addmul_1.S b/sysdeps/sparc/sparc64/multiarch/addmul_1.S
deleted file mode 100644
index dcb1da184c..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/addmul_1.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Multiple versions of addmul_1
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   Contributed by David S. Miller (davem@davemloft.net)
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY(__mpn_addmul_1)
-	.type	__mpn_addmul_1, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_VIS3, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_addmul_1_vis3), %o1
-	xor	%o1, %gdop_lox10(__mpn_addmul_1_vis3), %o1
-# else
-	set	__mpn_addmul_1_vis3, %o1
-# endif
-	ba	10f
-	 nop
-1:
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_addmul_1_generic), %o1
-	xor	%o1, %gdop_lox10(__mpn_addmul_1_generic), %o1
-# else
-	set	__mpn_addmul_1_generic, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(__mpn_addmul_1)
-
-#define __mpn_addmul_1 __mpn_addmul_1_generic
-#include "../addmul_1.S"
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c b/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
deleted file mode 100644
index a97bc455a8..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Enumerate available IFUNC implementations of a function.  sparc version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <string.h>
-#include <wchar.h>
-#include <ldsodefs.h>
-#include <sysdep.h>
-#include <ifunc-impl-list.h>
-
-/* Fill ARRAY of MAX elements with IFUNC implementations for function
-   NAME and return the number of valid entries.  */
-
-size_t
-__libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
-			size_t max)
-{
-  size_t i = 0;
-  int hwcap;
-
-  hwcap = GLRO(dl_hwcap);
-
-  IFUNC_IMPL (i, name, memcpy,
-	      IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_SPARC_CRYPTO,
-			      __memcpy_niagara4)
-	      IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_SPARC_N2,
-			      __memcpy_niagara2)
-	      IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_SPARC_BLKINIT,
-			      __memcpy_niagara1)
-	      IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_SPARC_ULTRA3,
-			      __memcpy_ultra3)
-	      IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_ultra1));
-
-  IFUNC_IMPL (i, name, mempcpy,
-	      IFUNC_IMPL_ADD (array, i, mempcpy, hwcap & HWCAP_SPARC_CRYPTO,
-			      __mempcpy_niagara4)
-	      IFUNC_IMPL_ADD (array, i, mempcpy, hwcap & HWCAP_SPARC_N2,
-			      __mempcpy_niagara2)
-	      IFUNC_IMPL_ADD (array, i, mempcpy, hwcap & HWCAP_SPARC_BLKINIT,
-			      __mempcpy_niagara1)
-	      IFUNC_IMPL_ADD (array, i, mempcpy, hwcap & HWCAP_SPARC_ULTRA3,
-			      __mempcpy_ultra3)
-	      IFUNC_IMPL_ADD (array, i, mempcpy, 1, __mempcpy_ultra1));
-
-  IFUNC_IMPL (i, name, bzero,
-	      IFUNC_IMPL_ADD (array, i, bzero, hwcap & HWCAP_SPARC_CRYPTO,
-			      __bzero_niagara4)
-	      IFUNC_IMPL_ADD (array, i, bzero, hwcap & HWCAP_SPARC_BLKINIT,
-			      __bzero_niagara1)
-	      IFUNC_IMPL_ADD (array, i, bzero, 1, __bzero_ultra1));
-
-  IFUNC_IMPL (i, name, memset,
-	      IFUNC_IMPL_ADD (array, i, memset, hwcap & HWCAP_SPARC_CRYPTO,
-			      __memset_niagara4)
-	      IFUNC_IMPL_ADD (array, i, memset, hwcap & HWCAP_SPARC_BLKINIT,
-			      __memset_niagara1)
-	      IFUNC_IMPL_ADD (array, i, memset, 1, __memset_ultra1));
-
-  return i;
-}
diff --git a/sysdeps/sparc/sparc64/multiarch/md5-block.c b/sysdeps/sparc/sparc64/multiarch/md5-block.c
deleted file mode 100644
index 7c1a3a368f..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/md5-block.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <sparc-ifunc.h>
-
-#define  __md5_process_block __md5_process_block_generic
-extern void __md5_process_block_generic (const void *buffer, size_t len,
-					 struct md5_ctx *ctx);
-
-#include <crypt/md5-block.c>
-
-#undef __md5_process_block
-
-extern void __md5_process_block_crop (const void *buffer, size_t len,
-				      struct md5_ctx *ctx);
-static bool cpu_supports_md5(int hwcap)
-{
-  unsigned long cfr;
-
-  if (!(hwcap & HWCAP_SPARC_CRYPTO))
-    return false;
-
-  __asm__ ("rd %%asr26, %0" : "=r" (cfr));
-  if (cfr & (1 << 4))
-    return true;
-
-  return false;
-}
-
-extern void __md5_process_block (const void *buffer, size_t len,
-				 struct md5_ctx *ctx);
-sparc_libc_ifunc(__md5_process_block, cpu_supports_md5(hwcap) ? __md5_process_block_crop : __md5_process_block_generic);
diff --git a/sysdeps/sparc/sparc64/multiarch/md5-crop.S b/sysdeps/sparc/sparc64/multiarch/md5-crop.S
deleted file mode 100644
index e8810da83e..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/md5-crop.S
+++ /dev/null
@@ -1,110 +0,0 @@
-/* MD5 using sparc crypto opcodes.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@davemloft.net)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#define ASI_PL 0x88
-
-#define MD5		\
-	.word	0x81b02800;
-
-	.text
-	.align	32
-ENTRY(__md5_process_block_crop)
-	/* %o0=buffer, %o1=len, %o2=CTX */
-	ld	[%o2 + 0x10], %g1
-	add	%g1, %o1, %o4
-	st	%o4, [%o2 + 0x10]
-	clr	%o5
-	cmp	%o4, %g1
-	movlu	%icc, 1, %o5
-#ifdef __arch64__
-	srlx	%o1, 32, %o4
-	add	%o5, %o4, %o5
-#endif
-	ld	[%o2 + 0x14], %o4
-	add	%o4, %o5, %o4
-	st	%o4, [%o2 + 0x14]
-	lda	[%o2] ASI_PL, %f0
-	add	%o2, 0x4, %g1
-	lda	[%g1] ASI_PL, %f1
-	add	%o2, 0x8, %g1
-	andcc	%o0, 0x7, %g0
-	lda	[%g1] ASI_PL, %f2
-	add	%o2, 0xc, %g1
-	bne,pn	%xcc, 10f
-	 lda	[%g1] ASI_PL, %f3
-
-1:
-	ldd	[%o0 + 0x00], %f8
-	ldd	[%o0 + 0x08], %f10
-	ldd	[%o0 + 0x10], %f12
-	ldd	[%o0 + 0x18], %f14
-	ldd	[%o0 + 0x20], %f16
-	ldd	[%o0 + 0x28], %f18
-	ldd	[%o0 + 0x30], %f20
-	ldd	[%o0 + 0x38], %f22
-
-	MD5
-
-	subcc	%o1, 64, %o1
-	bne,pt	%xcc, 1b
-	 add	%o0, 0x40, %o0
-
-5:
-	sta	%f0, [%o2] ASI_PL
-	add	%o2, 0x4, %g1
-	sta	%f1, [%g1] ASI_PL
-	add	%o2, 0x8, %g1
-	sta	%f2, [%g1] ASI_PL
-	add	%o2, 0xc, %g1
-	retl
-	 sta	%f3, [%g1] ASI_PL
-10:
-	alignaddr %o0, %g0, %o0
-
-	ldd	[%o0 + 0x00], %f10
-1:
-	ldd	[%o0 + 0x08], %f12
-	ldd	[%o0 + 0x10], %f14
-	ldd	[%o0 + 0x18], %f16
-	ldd	[%o0 + 0x20], %f18
-	ldd	[%o0 + 0x28], %f20
-	ldd	[%o0 + 0x30], %f22
-	ldd	[%o0 + 0x38], %f24
-	ldd	[%o0 + 0x40], %f26
-
-	faligndata %f10, %f12, %f8
-	faligndata %f12, %f14, %f10
-	faligndata %f14, %f16, %f12
-	faligndata %f16, %f18, %f14
-	faligndata %f18, %f20, %f16
-	faligndata %f20, %f22, %f18
-	faligndata %f22, %f24, %f20
-	faligndata %f24, %f26, %f22
-
-	MD5
-
-	subcc	%o1, 64, %o1
-	fsrc2	%f26, %f10
-	bne,pt	%xcc, 1b
-	 add	%o0, 0x40, %o0
-
-	ba,a,pt	%xcc, 5b
-END(__md5_process_block_crop)
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
deleted file mode 100644
index ccf42446e8..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
+++ /dev/null
@@ -1,347 +0,0 @@
-/* Copy SIZE bytes from SRC to DEST.  For SUN4V Niagara.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@davemloft.net)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#define ASI_BLK_INIT_QUAD_LDD_P	0xe2
-#define ASI_P			0x80
-#define ASI_PNF			0x82
-
-#define LOAD(type,addr,dest)	type##a [addr] ASI_P, dest
-#define LOAD_TWIN(addr_reg,dest0,dest1)	\
-	ldda [addr_reg] ASI_BLK_INIT_QUAD_LDD_P, dest0
-
-#define STORE(type,src,addr)	type src, [addr]
-#define STORE_INIT(src,addr)	stxa src, [addr] %asi
-
-#ifndef XCC
-#define USE_BPR
-#define XCC xcc
-#endif
-
-#if IS_IN (libc)
-
-	.register	%g2,#scratch
-	.register	%g3,#scratch
-	.register	%g6,#scratch
-
-	.text
-
-ENTRY(__mempcpy_niagara1)
-	ba,pt		%XCC, 101f
-	 add		%o0, %o2, %g5
-END(__mempcpy_niagara1)
-
-	.align		32
-ENTRY(__memcpy_niagara1)
-100:	/* %o0=dst, %o1=src, %o2=len */
-	mov		%o0, %g5
-101:
-# ifndef USE_BPR
-	srl		%o2, 0, %o2
-# endif
-	cmp		%o2, 0
-	be,pn		%XCC, 85f
-218:	 or		%o0, %o1, %o3
-	cmp		%o2, 16
-	blu,a,pn	%XCC, 80f
-	 or		%o3, %o2, %o3
-
-	/* 2 blocks (128 bytes) is the minimum we can do the block
-	 * copy with.  We need to ensure that we'll iterate at least
-	 * once in the block copy loop.  At worst we'll need to align
-	 * the destination to a 64-byte boundary which can chew up
-	 * to (64 - 1) bytes from the length before we perform the
-	 * block copy loop.
-	 */
-	cmp		%o2, (2 * 64)
-	blu,pt		%XCC, 70f
-	 andcc		%o3, 0x7, %g0
-
-	/* %o0:	dst
-	 * %o1:	src
-	 * %o2:	len  (known to be >= 128)
-	 *
-	 * The block copy loops will use %o4/%o5,%g2/%g3 as
-	 * temporaries while copying the data.
-	 */
-
-	LOAD(prefetch, %o1, #one_read)
-	wr		%g0, ASI_BLK_INIT_QUAD_LDD_P, %asi
-
-	/* Align destination on 64-byte boundary.  */
-	andcc		%o0, (64 - 1), %o4
-	be,pt		%XCC, 2f
-	 sub		%o4, 64, %o4
-	sub		%g0, %o4, %o4	! bytes to align dst
-	sub		%o2, %o4, %o2
-1:	subcc		%o4, 1, %o4
-	LOAD(ldub, %o1, %g1)
-	STORE(stb, %g1, %o0)
-	add		%o1, 1, %o1
-	bne,pt		%XCC, 1b
-	add		%o0, 1, %o0
-
-	/* If the source is on a 16-byte boundary we can do
-	 * the direct block copy loop.  If it is 8-byte aligned
-	 * we can do the 16-byte loads offset by -8 bytes and the
-	 * init stores offset by one register.
-	 *
-	 * If the source is not even 8-byte aligned, we need to do
-	 * shifting and masking (basically integer faligndata).
-	 *
-	 * The careful bit with init stores is that if we store
-	 * to any part of the cache line we have to store the whole
-	 * cacheline else we can end up with corrupt L2 cache line
-	 * contents.  Since the loop works on 64-bytes of 64-byte
-	 * aligned store data at a time, this is easy to ensure.
-	 */
-2:
-	andcc		%o1, (16 - 1), %o4
-	andn		%o2, (64 - 1), %g1	! block copy loop iterator
-	sub		%o2, %g1, %o2		! final sub-block copy bytes
-	be,pt		%XCC, 50f
-	 cmp		%o4, 8
-	be,a,pt		%XCC, 10f
-	 sub		%o1, 0x8, %o1
-
-	/* Neither 8-byte nor 16-byte aligned, shift and mask.  */
-	mov		%g1, %o4
-	and		%o1, 0x7, %g1
-	sll		%g1, 3, %g1
-	mov		64, %o3
-	andn		%o1, 0x7, %o1
-	LOAD(ldx, %o1, %g2)
-	sub		%o3, %g1, %o3
-	sllx		%g2, %g1, %g2
-
-#define SWIVEL_ONE_DWORD(SRC, TMP1, TMP2, PRE_VAL, PRE_SHIFT, POST_SHIFT, DST)\
-	LOAD(ldx, SRC, TMP1); \
-	srlx		TMP1, PRE_SHIFT, TMP2; \
-	or		TMP2, PRE_VAL, TMP2; \
-	STORE_INIT(TMP2, DST); \
-	sllx		TMP1, POST_SHIFT, PRE_VAL;
-
-1:	add		%o1, 0x8, %o1
-	SWIVEL_ONE_DWORD(%o1, %g3, %o5, %g2, %o3, %g1, %o0 + 0x00)
-	add		%o1, 0x8, %o1
-	SWIVEL_ONE_DWORD(%o1, %g3, %o5, %g2, %o3, %g1, %o0 + 0x08)
-	add		%o1, 0x8, %o1
-	SWIVEL_ONE_DWORD(%o1, %g3, %o5, %g2, %o3, %g1, %o0 + 0x10)
-	add		%o1, 0x8, %o1
-	SWIVEL_ONE_DWORD(%o1, %g3, %o5, %g2, %o3, %g1, %o0 + 0x18)
-	add		%o1, 32, %o1
-	LOAD(prefetch, %o1, #one_read)
-	sub		%o1, 32 - 8, %o1
-	SWIVEL_ONE_DWORD(%o1, %g3, %o5, %g2, %o3, %g1, %o0 + 0x20)
-	add		%o1, 8, %o1
-	SWIVEL_ONE_DWORD(%o1, %g3, %o5, %g2, %o3, %g1, %o0 + 0x28)
-	add		%o1, 8, %o1
-	SWIVEL_ONE_DWORD(%o1, %g3, %o5, %g2, %o3, %g1, %o0 + 0x30)
-	add		%o1, 8, %o1
-	SWIVEL_ONE_DWORD(%o1, %g3, %o5, %g2, %o3, %g1, %o0 + 0x38)
-	subcc		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 add		%o0, 64, %o0
-
-#undef SWIVEL_ONE_DWORD
-
-	srl		%g1, 3, %g1
-	ba,pt		%XCC, 60f
-	 add		%o1, %g1, %o1
-
-10:	/* Destination is 64-byte aligned, source was only 8-byte
-	 * aligned but it has been subtracted by 8 and we perform
-	 * one twin load ahead, then add 8 back into source when
-	 * we finish the loop.
-	 */
-	LOAD_TWIN(%o1, %o4, %o5)
-1:	add		%o1, 16, %o1
-	LOAD_TWIN(%o1, %g2, %g3)
-	add		%o1, 16 + 32, %o1
-	LOAD(prefetch, %o1, #one_read)
-	sub		%o1, 32, %o1
-	STORE_INIT(%o5, %o0 + 0x00)		! initializes cache line
-	STORE_INIT(%g2, %o0 + 0x08)
-	LOAD_TWIN(%o1, %o4, %o5)
-	add		%o1, 16, %o1
-	STORE_INIT(%g3, %o0 + 0x10)
-	STORE_INIT(%o4, %o0 + 0x18)
-	LOAD_TWIN(%o1, %g2, %g3)
-	add		%o1, 16, %o1
-	STORE_INIT(%o5, %o0 + 0x20)
-	STORE_INIT(%g2, %o0 + 0x28)
-	LOAD_TWIN(%o1, %o4, %o5)
-	STORE_INIT(%g3, %o0 + 0x30)
-	STORE_INIT(%o4, %o0 + 0x38)
-	subcc		%g1, 64, %g1
-	bne,pt		%XCC, 1b
-	 add		%o0, 64, %o0
-
-	ba,pt		%XCC, 60f
-	 add		%o1, 0x8, %o1
-
-50:	/* Destination is 64-byte aligned, and source is 16-byte
-	 * aligned.
-	 */
-1:	LOAD_TWIN(%o1, %o4, %o5)
-	add	%o1, 16, %o1
-	LOAD_TWIN(%o1, %g2, %g3)
-	add	%o1, 16 + 32, %o1
-	LOAD(prefetch, %o1, #one_read)
-	sub	%o1, 32, %o1
-	STORE_INIT(%o4, %o0 + 0x00)		! initializes cache line
-	STORE_INIT(%o5, %o0 + 0x08)
-	LOAD_TWIN(%o1, %o4, %o5)
-	add	%o1, 16, %o1
-	STORE_INIT(%g2, %o0 + 0x10)
-	STORE_INIT(%g3, %o0 + 0x18)
-	LOAD_TWIN(%o1, %g2, %g3)
-	add	%o1, 16, %o1
-	STORE_INIT(%o4, %o0 + 0x20)
-	STORE_INIT(%o5, %o0 + 0x28)
-	STORE_INIT(%g2, %o0 + 0x30)
-	STORE_INIT(%g3, %o0 + 0x38)
-	subcc	%g1, 64, %g1
-	bne,pt	%XCC, 1b
-	 add	%o0, 64, %o0
-	/* fall through */
-
-60:
-	/* %o2 contains any final bytes still needed to be copied
-	 * over. If anything is left, we copy it one byte at a time.
-	 */
-	wr		%g0, ASI_PNF, %asi
-	brz,pt		%o2, 85f
-	 sub		%o0, %o1, %o3
-	ba,a,pt		%XCC, 90f
-
-	.align		64
-70: /* 16 < len <= 64 */
-	bne,pn		%XCC, 75f
-	 sub		%o0, %o1, %o3
-
-72:
-	andn		%o2, 0xf, %o4
-	and		%o2, 0xf, %o2
-1:	subcc		%o4, 0x10, %o4
-	LOAD(ldx, %o1, %o5)
-	add		%o1, 0x08, %o1
-	LOAD(ldx, %o1, %g1)
-	sub		%o1, 0x08, %o1
-	STORE(stx, %o5, %o1 + %o3)
-	add		%o1, 0x8, %o1
-	STORE(stx, %g1, %o1 + %o3)
-	bgu,pt		%XCC, 1b
-	 add		%o1, 0x8, %o1
-73:	andcc		%o2, 0x8, %g0
-	be,pt		%XCC, 1f
-	 nop
-	sub		%o2, 0x8, %o2
-	LOAD(ldx, %o1, %o5)
-	STORE(stx, %o5, %o1 + %o3)
-	add		%o1, 0x8, %o1
-1:	andcc		%o2, 0x4, %g0
-	be,pt		%XCC, 1f
-	 nop
-	sub		%o2, 0x4, %o2
-	LOAD(lduw, %o1, %o5)
-	STORE(stw, %o5, %o1 + %o3)
-	add		%o1, 0x4, %o1
-1:	cmp		%o2, 0
-	be,pt		%XCC, 85f
-	 nop
-	ba,pt		%XCC, 90f
-	 nop
-
-75:
-	andcc		%o0, 0x7, %g1
-	sub		%g1, 0x8, %g1
-	be,pn		%icc, 2f
-	 sub		%g0, %g1, %g1
-	sub		%o2, %g1, %o2
-
-1:	subcc		%g1, 1, %g1
-	LOAD(ldub, %o1, %o5)
-	STORE(stb, %o5, %o1 + %o3)
-	bgu,pt		%icc, 1b
-	 add		%o1, 1, %o1
-
-2:	add		%o1, %o3, %o0
-	andcc		%o1, 0x7, %g1
-	bne,pt		%icc, 8f
-	 sll		%g1, 3, %g1
-
-	cmp		%o2, 16
-	bgeu,pt		%icc, 72b
-	 nop
-	ba,a,pt		%XCC, 73b
-
-8:	mov		64, %o3
-	andn		%o1, 0x7, %o1
-	LOAD(ldx, %o1, %g2)
-	sub		%o3, %g1, %o3
-	andn		%o2, 0x7, %o4
-	sllx		%g2, %g1, %g2
-1:	add		%o1, 0x8, %o1
-	LOAD(ldx, %o1, %g3)
-	subcc		%o4, 0x8, %o4
-	srlx		%g3, %o3, %o5
-	or		%o5, %g2, %o5
-	STORE(stx, %o5, %o0)
-	add		%o0, 0x8, %o0
-	bgu,pt		%icc, 1b
-	 sllx		%g3, %g1, %g2
-
-	srl		%g1, 3, %g1
-	andcc		%o2, 0x7, %o2
-	be,pn		%icc, 85f
-	 add		%o1, %g1, %o1
-	ba,pt		%XCC, 90f
-	 sub		%o0, %o1, %o3
-
-	.align		64
-80: /* 0 < len <= 16 */
-	andcc		%o3, 0x3, %g0
-	bne,pn		%XCC, 90f
-	 sub		%o0, %o1, %o3
-
-1:
-	subcc		%o2, 4, %o2
-	LOAD(lduw, %o1, %g1)
-	STORE(stw, %g1, %o1 + %o3)
-	bgu,pt		%XCC, 1b
-	 add		%o1, 4, %o1
-
-85:	retl
-	 mov		%g5, %o0
-
-	.align		32
-90:
-	subcc		%o2, 1, %o2
-	LOAD(ldub, %o1, %g1)
-	STORE(stb, %g1, %o1 + %o3)
-	bgu,pt		%XCC, 90b
-	 add		%o1, 1, %o1
-	retl
-	 mov		%g5, %o0
-
-END(__memcpy_niagara1)
-
-#endif
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
deleted file mode 100644
index 798b3c80fe..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
+++ /dev/null
@@ -1,498 +0,0 @@
-/* Copy SIZE bytes from SRC to DEST.  For SUN4V Niagara-2.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@davemloft.net)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#define ASI_BLK_INIT_QUAD_LDD_P	0xe2
-#define ASI_BLK_P		0xf0
-#define ASI_P			0x80
-#define ASI_PNF			0x82
-
-#define FPRS_FEF		0x04
-
-#define VISEntryHalf			\
-	rd	%fprs, %o5;		\
-	wr	%g0, FPRS_FEF, %fprs
-
-#define VISExitHalf			\
-	and	%o5, FPRS_FEF, %o5;	\
-	wr	%o5, 0x0, %fprs
-
-#define STORE_ASI		ASI_BLK_INIT_QUAD_LDD_P
-
-#define LOAD(type,addr,dest)	type [addr], dest
-#define LOAD_BLK(addr,dest)	ldda [addr] ASI_BLK_P, dest
-#define STORE(type,src,addr)	type src, [addr]
-#define STORE_BLK(src,addr)	stda src, [addr] ASI_BLK_P
-#define STORE_INIT(src,addr)	stxa src, [addr] STORE_ASI
-
-#ifndef XCC
-#define USE_BPR
-#define XCC xcc
-#endif
-
-#define FREG_FROB(x0, x1, x2, x3, x4, x5, x6, x7, x8) \
-	faligndata	%x0, %x1, %f0; \
-	faligndata	%x1, %x2, %f2; \
-	faligndata	%x2, %x3, %f4; \
-	faligndata	%x3, %x4, %f6; \
-	faligndata	%x4, %x5, %f8; \
-	faligndata	%x5, %x6, %f10; \
-	faligndata	%x6, %x7, %f12; \
-	faligndata	%x7, %x8, %f14;
-
-#define FREG_MOVE_1(x0) \
-	fsrc2		%x0, %f0;
-#define FREG_MOVE_2(x0, x1) \
-	fsrc2		%x0, %f0; \
-	fsrc2		%x1, %f2;
-#define FREG_MOVE_3(x0, x1, x2) \
-	fsrc2		%x0, %f0; \
-	fsrc2		%x1, %f2; \
-	fsrc2		%x2, %f4;
-#define FREG_MOVE_4(x0, x1, x2, x3) \
-	fsrc2		%x0, %f0; \
-	fsrc2		%x1, %f2; \
-	fsrc2		%x2, %f4; \
-	fsrc2		%x3, %f6;
-#define FREG_MOVE_5(x0, x1, x2, x3, x4) \
-	fsrc2		%x0, %f0; \
-	fsrc2		%x1, %f2; \
-	fsrc2		%x2, %f4; \
-	fsrc2		%x3, %f6; \
-	fsrc2		%x4, %f8;
-#define FREG_MOVE_6(x0, x1, x2, x3, x4, x5) \
-	fsrc2		%x0, %f0; \
-	fsrc2		%x1, %f2; \
-	fsrc2		%x2, %f4; \
-	fsrc2		%x3, %f6; \
-	fsrc2		%x4, %f8; \
-	fsrc2		%x5, %f10;
-#define FREG_MOVE_7(x0, x1, x2, x3, x4, x5, x6) \
-	fsrc2		%x0, %f0; \
-	fsrc2		%x1, %f2; \
-	fsrc2		%x2, %f4; \
-	fsrc2		%x3, %f6; \
-	fsrc2		%x4, %f8; \
-	fsrc2		%x5, %f10; \
-	fsrc2		%x6, %f12;
-#define FREG_MOVE_8(x0, x1, x2, x3, x4, x5, x6, x7) \
-	fsrc2		%x0, %f0; \
-	fsrc2		%x1, %f2; \
-	fsrc2		%x2, %f4; \
-	fsrc2		%x3, %f6; \
-	fsrc2		%x4, %f8; \
-	fsrc2		%x5, %f10; \
-	fsrc2		%x6, %f12; \
-	fsrc2		%x7, %f14;
-#define FREG_LOAD_1(base, x0) \
-	LOAD(ldd, base + 0x00, %x0)
-#define FREG_LOAD_2(base, x0, x1) \
-	LOAD(ldd, base + 0x00, %x0); \
-	LOAD(ldd, base + 0x08, %x1);
-#define FREG_LOAD_3(base, x0, x1, x2) \
-	LOAD(ldd, base + 0x00, %x0); \
-	LOAD(ldd, base + 0x08, %x1); \
-	LOAD(ldd, base + 0x10, %x2);
-#define FREG_LOAD_4(base, x0, x1, x2, x3) \
-	LOAD(ldd, base + 0x00, %x0); \
-	LOAD(ldd, base + 0x08, %x1); \
-	LOAD(ldd, base + 0x10, %x2); \
-	LOAD(ldd, base + 0x18, %x3);
-#define FREG_LOAD_5(base, x0, x1, x2, x3, x4) \
-	LOAD(ldd, base + 0x00, %x0); \
-	LOAD(ldd, base + 0x08, %x1); \
-	LOAD(ldd, base + 0x10, %x2); \
-	LOAD(ldd, base + 0x18, %x3); \
-	LOAD(ldd, base + 0x20, %x4);
-#define FREG_LOAD_6(base, x0, x1, x2, x3, x4, x5) \
-	LOAD(ldd, base + 0x00, %x0); \
-	LOAD(ldd, base + 0x08, %x1); \
-	LOAD(ldd, base + 0x10, %x2); \
-	LOAD(ldd, base + 0x18, %x3); \
-	LOAD(ldd, base + 0x20, %x4); \
-	LOAD(ldd, base + 0x28, %x5);
-#define FREG_LOAD_7(base, x0, x1, x2, x3, x4, x5, x6) \
-	LOAD(ldd, base + 0x00, %x0); \
-	LOAD(ldd, base + 0x08, %x1); \
-	LOAD(ldd, base + 0x10, %x2); \
-	LOAD(ldd, base + 0x18, %x3); \
-	LOAD(ldd, base + 0x20, %x4); \
-	LOAD(ldd, base + 0x28, %x5); \
-	LOAD(ldd, base + 0x30, %x6);
-
-#if IS_IN (libc)
-
-	.register	%g2,#scratch
-	.register	%g3,#scratch
-	.register	%g6,#scratch
-
-	.text
-
-ENTRY(__mempcpy_niagara2)
-	ba,pt		%XCC, 101f
-	 add		%o0, %o2, %g5
-END(__mempcpy_niagara2)
-
-	.align		32
-ENTRY(__memcpy_niagara2)
-100:	/* %o0=dst, %o1=src, %o2=len */
-	mov		%o0, %g5
-101:
-# ifndef USE_BPR
-	srl		%o2, 0, %o2
-# endif
-	cmp		%o2, 0
-	be,pn		%XCC, 85f
-218:	 or		%o0, %o1, %o3
-	cmp		%o2, 16
-	blu,a,pn	%XCC, 80f
-	 or		%o3, %o2, %o3
-
-	/* 2 blocks (128 bytes) is the minimum we can do the block
-	 * copy with.  We need to ensure that we'll iterate at least
-	 * once in the block copy loop.  At worst we'll need to align
-	 * the destination to a 64-byte boundary which can chew up
-	 * to (64 - 1) bytes from the length before we perform the
-	 * block copy loop.
-	 *
-	 * However, the cut-off point, performance wise, is around
-	 * 4 64-byte blocks.
-	 */
-	cmp		%o2, (4 * 64)
-	blu,pt		%XCC, 75f
-	 andcc		%o3, 0x7, %g0
-
-	/* %o0:	dst
-	 * %o1:	src
-	 * %o2:	len  (known to be >= 128)
-	 *
-	 * The block copy loops can use %o4, %g2, %g3 as
-	 * temporaries while copying the data.  %o5 must
-	 * be preserved between VISEntryHalf and VISExitHalf
-	 */
-
-	LOAD(prefetch, %o1 + 0x000, #one_read)
-	LOAD(prefetch, %o1 + 0x040, #one_read)
-	LOAD(prefetch, %o1 + 0x080, #one_read)
-
-	/* Align destination on 64-byte boundary.  */
-	andcc		%o0, (64 - 1), %o4
-	be,pt		%XCC, 2f
-	 sub		%o4, 64, %o4
-	sub		%g0, %o4, %o4	! bytes to align dst
-	sub		%o2, %o4, %o2
-1:	subcc		%o4, 1, %o4
-	LOAD(ldub, %o1, %g1)
-	STORE(stb, %g1, %o0)
-	add		%o1, 1, %o1
-	bne,pt		%XCC, 1b
-	add		%o0, 1, %o0
-
-2:
-	/* Clobbers o5/g1/g2/g3/g7/icc/xcc.  We must preserve
-	 * o5 from here until we hit VISExitHalf.
-	 */
-	VISEntryHalf
-
-	membar		#Sync
-	alignaddr	%o1, %g0, %g0
-
-	add		%o1, (64 - 1), %o4
-	andn		%o4, (64 - 1), %o4
-	andn		%o2, (64 - 1), %g1
-	sub		%o2, %g1, %o2
-
-	and		%o1, (64 - 1), %g2
-	add		%o1, %g1, %o1
-	sub		%o0, %o4, %g3
-	brz,pt		%g2, 190f
-	 cmp		%g2, 32
-	blu,a		5f
-	 cmp		%g2, 16
-	cmp		%g2, 48
-	blu,a		4f
-	 cmp		%g2, 40
-	cmp		%g2, 56
-	blu		170f
-	 nop
-	ba,a,pt		%xcc, 180f
-
-4:	/* 32 <= low bits < 48 */
-	blu		150f
-	 nop
-	ba,a,pt		%xcc, 160f
-5:	/* 0 < low bits < 32 */
-	blu,a		6f
-	 cmp		%g2, 8
-	cmp		%g2, 24
-	blu		130f
-	 nop
-	ba,a,pt		%xcc, 140f
-6:	/* 0 < low bits < 16 */
-	bgeu		120f
-	 nop
-	/* fall through for 0 < low bits < 8 */
-110:	sub		%o4, 64, %g2
-	LOAD_BLK(%g2, %f0)
-1:	STORE_INIT(%g0, %o4 + %g3)
-	LOAD_BLK(%o4, %f16)
-	FREG_FROB(f0, f2, f4, f6, f8, f10, f12, f14, f16)
-	STORE_BLK(%f0, %o4 + %g3)
-	FREG_MOVE_8(f16, f18, f20, f22, f24, f26, f28, f30)
-	subcc		%g1, 64, %g1
-	add		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 LOAD(prefetch, %o4 + 64, #one_read)
-	ba,pt		%xcc, 195f
-	 nop
-
-120:	sub		%o4, 56, %g2
-	FREG_LOAD_7(%g2, f0, f2, f4, f6, f8, f10, f12)
-1:	STORE_INIT(%g0, %o4 + %g3)
-	LOAD_BLK(%o4, %f16)
-	FREG_FROB(f0, f2, f4, f6, f8, f10, f12, f16, f18)
-	STORE_BLK(%f0, %o4 + %g3)
-	FREG_MOVE_7(f18, f20, f22, f24, f26, f28, f30)
-	subcc		%g1, 64, %g1
-	add		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 LOAD(prefetch, %o4 + 64, #one_read)
-	ba,pt		%xcc, 195f
-	 nop
-
-130:	sub		%o4, 48, %g2
-	FREG_LOAD_6(%g2, f0, f2, f4, f6, f8, f10)
-1:	STORE_INIT(%g0, %o4 + %g3)
-	LOAD_BLK(%o4, %f16)
-	FREG_FROB(f0, f2, f4, f6, f8, f10, f16, f18, f20)
-	STORE_BLK(%f0, %o4 + %g3)
-	FREG_MOVE_6(f20, f22, f24, f26, f28, f30)
-	subcc		%g1, 64, %g1
-	add		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 LOAD(prefetch, %o4 + 64, #one_read)
-	ba,pt		%xcc, 195f
-	 nop
-
-140:	sub		%o4, 40, %g2
-	FREG_LOAD_5(%g2, f0, f2, f4, f6, f8)
-1:	STORE_INIT(%g0, %o4 + %g3)
-	LOAD_BLK(%o4, %f16)
-	FREG_FROB(f0, f2, f4, f6, f8, f16, f18, f20, f22)
-	STORE_BLK(%f0, %o4 + %g3)
-	FREG_MOVE_5(f22, f24, f26, f28, f30)
-	subcc		%g1, 64, %g1
-	add		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 LOAD(prefetch, %o4 + 64, #one_read)
-	ba,pt		%xcc, 195f
-	 nop
-
-150:	sub		%o4, 32, %g2
-	FREG_LOAD_4(%g2, f0, f2, f4, f6)
-1:	STORE_INIT(%g0, %o4 + %g3)
-	LOAD_BLK(%o4, %f16)
-	FREG_FROB(f0, f2, f4, f6, f16, f18, f20, f22, f24)
-	STORE_BLK(%f0, %o4 + %g3)
-	FREG_MOVE_4(f24, f26, f28, f30)
-	subcc		%g1, 64, %g1
-	add		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 LOAD(prefetch, %o4 + 64, #one_read)
-	ba,pt		%xcc, 195f
-	 nop
-
-160:	sub		%o4, 24, %g2
-	FREG_LOAD_3(%g2, f0, f2, f4)
-1:	STORE_INIT(%g0, %o4 + %g3)
-	LOAD_BLK(%o4, %f16)
-	FREG_FROB(f0, f2, f4, f16, f18, f20, f22, f24, f26)
-	STORE_BLK(%f0, %o4 + %g3)
-	FREG_MOVE_3(f26, f28, f30)
-	subcc		%g1, 64, %g1
-	add		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 LOAD(prefetch, %o4 + 64, #one_read)
-	ba,pt		%xcc, 195f
-	 nop
-
-170:	sub		%o4, 16, %g2
-	FREG_LOAD_2(%g2, f0, f2)
-1:	STORE_INIT(%g0, %o4 + %g3)
-	LOAD_BLK(%o4, %f16)
-	FREG_FROB(f0, f2, f16, f18, f20, f22, f24, f26, f28)
-	STORE_BLK(%f0, %o4 + %g3)
-	FREG_MOVE_2(f28, f30)
-	subcc		%g1, 64, %g1
-	add		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 LOAD(prefetch, %o4 + 64, #one_read)
-	ba,pt		%xcc, 195f
-	 nop
-
-180:	sub		%o4, 8, %g2
-	FREG_LOAD_1(%g2, f0)
-1:	STORE_INIT(%g0, %o4 + %g3)
-	LOAD_BLK(%o4, %f16)
-	FREG_FROB(f0, f16, f18, f20, f22, f24, f26, f28, f30)
-	STORE_BLK(%f0, %o4 + %g3)
-	FREG_MOVE_1(f30)
-	subcc		%g1, 64, %g1
-	add		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 LOAD(prefetch, %o4 + 64, #one_read)
-	ba,pt		%xcc, 195f
-	 nop
-
-190:
-1:	STORE_INIT(%g0, %o4 + %g3)
-	subcc		%g1, 64, %g1
-	LOAD_BLK(%o4, %f0)
-	STORE_BLK(%f0, %o4 + %g3)
-	add		%o4, 64, %o4
-	bne,pt		%XCC, 1b
-	 LOAD(prefetch, %o4 + 64, #one_read)
-
-195:
-	add		%o4, %g3, %o0
-	membar		#Sync
-
-	VISExitHalf
-
-	/* %o2 contains any final bytes still needed to be copied
-	 * over. If anything is left, we copy it one byte at a time.
-	 */
-	brz,pt		%o2, 85f
-	 sub		%o0, %o1, %o3
-	ba,a,pt		%XCC, 90f
-
-	.align		64
-75: /* 16 < len <= 64 */
-	bne,pn		%XCC, 75f
-	 sub		%o0, %o1, %o3
-
-72:
-	andn		%o2, 0xf, %o4
-	and		%o2, 0xf, %o2
-1:	subcc		%o4, 0x10, %o4
-	LOAD(ldx, %o1, %o5)
-	add		%o1, 0x08, %o1
-	LOAD(ldx, %o1, %g1)
-	sub		%o1, 0x08, %o1
-	STORE(stx, %o5, %o1 + %o3)
-	add		%o1, 0x8, %o1
-	STORE(stx, %g1, %o1 + %o3)
-	bgu,pt		%XCC, 1b
-	 add		%o1, 0x8, %o1
-73:	andcc		%o2, 0x8, %g0
-	be,pt		%XCC, 1f
-	 nop
-	sub		%o2, 0x8, %o2
-	LOAD(ldx, %o1, %o5)
-	STORE(stx, %o5, %o1 + %o3)
-	add		%o1, 0x8, %o1
-1:	andcc		%o2, 0x4, %g0
-	be,pt		%XCC, 1f
-	 nop
-	sub		%o2, 0x4, %o2
-	LOAD(lduw, %o1, %o5)
-	STORE(stw, %o5, %o1 + %o3)
-	add		%o1, 0x4, %o1
-1:	cmp		%o2, 0
-	be,pt		%XCC, 85f
-	 nop
-	ba,pt		%xcc, 90f
-	 nop
-
-75:
-	andcc		%o0, 0x7, %g1
-	sub		%g1, 0x8, %g1
-	be,pn		%icc, 2f
-	 sub		%g0, %g1, %g1
-	sub		%o2, %g1, %o2
-
-1:	subcc		%g1, 1, %g1
-	LOAD(ldub, %o1, %o5)
-	STORE(stb, %o5, %o1 + %o3)
-	bgu,pt		%icc, 1b
-	 add		%o1, 1, %o1
-
-2:	add		%o1, %o3, %o0
-	andcc		%o1, 0x7, %g1
-	bne,pt		%icc, 8f
-	 sll		%g1, 3, %g1
-
-	cmp		%o2, 16
-	bgeu,pt		%icc, 72b
-	 nop
-	ba,a,pt		%xcc, 73b
-
-8:	mov		64, %o3
-	andn		%o1, 0x7, %o1
-	LOAD(ldx, %o1, %g2)
-	sub		%o3, %g1, %o3
-	andn		%o2, 0x7, %o4
-	sllx		%g2, %g1, %g2
-1:	add		%o1, 0x8, %o1
-	LOAD(ldx, %o1, %g3)
-	subcc		%o4, 0x8, %o4
-	srlx		%g3, %o3, %o5
-	or		%o5, %g2, %o5
-	STORE(stx, %o5, %o0)
-	add		%o0, 0x8, %o0
-	bgu,pt		%icc, 1b
-	 sllx		%g3, %g1, %g2
-
-	srl		%g1, 3, %g1
-	andcc		%o2, 0x7, %o2
-	be,pn		%icc, 85f
-	 add		%o1, %g1, %o1
-	ba,pt		%xcc, 90f
-	 sub		%o0, %o1, %o3
-
-	.align		64
-80: /* 0 < len <= 16 */
-	andcc		%o3, 0x3, %g0
-	bne,pn		%XCC, 90f
-	 sub		%o0, %o1, %o3
-
-1:
-	subcc		%o2, 4, %o2
-	LOAD(lduw, %o1, %g1)
-	STORE(stw, %g1, %o1 + %o3)
-	bgu,pt		%XCC, 1b
-	 add		%o1, 4, %o1
-
-85:	retl
-	 mov		%g5, %o0
-
-	.align		32
-90:
-	subcc		%o2, 1, %o2
-	LOAD(ldub, %o1, %g1)
-	STORE(stb, %g1, %o1 + %o3)
-	bgu,pt		%XCC, 90b
-	 add		%o1, 1, %o1
-	retl
-	 mov		%g5, %o0
-
-END(__memcpy_niagara2)
-
-#endif
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
deleted file mode 100644
index 709b398364..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
+++ /dev/null
@@ -1,332 +0,0 @@
-/* Copy SIZE bytes from SRC to DEST.  For SUN4V Niagara-4.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@davemloft.net)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#define ASI_BLK_INIT_QUAD_LDD_P	0xe2
-
-#define FPRS_FEF		0x04
-
-/* On T4 it is very expensive to access ASRs like %fprs and
- * %asi, avoiding a read or a write can save ~50 cycles.
- */
-#define FPU_ENTER			\
-	rd	%fprs, %o5;		\
-	andcc	%o5, FPRS_FEF, %g0;	\
-	be,a,pn	%icc, 999f;		\
-	 wr	%g0, FPRS_FEF, %fprs;	\
-	999:
-
-#define VISEntryHalf FPU_ENTER
-#define VISExitHalf and %o5, FPRS_FEF, %o5; wr %o5, 0x0, %fprs
-
-#define GLOBAL_SPARE	%g5
-
-#define STORE_ASI	ASI_BLK_INIT_QUAD_LDD_P
-#define EX_LD(x)	x
-#define EX_ST(x)	x
-#define EX_RETVAL(x)	x
-#define LOAD(type,addr,dest)	type [addr], dest
-#define STORE(type,src,addr)	type src, [addr]
-#define STORE_INIT(src,addr)	stxa src, [addr] STORE_ASI
-
-#if IS_IN (libc)
-
-	.register	%g2,#scratch
-	.register	%g3,#scratch
-	.register	%g6,#scratch
-
-	.text
-
-ENTRY(__mempcpy_niagara4)
-	ba,pt		%icc, 101f
-	 add		%o0, %o2, %o3
-END(__mempcpy_niagara4)
-
-	.align		32
-ENTRY(__memcpy_niagara4)
-100:	/* %o0=dst, %o1=src, %o2=len */
-	mov		%o0, %o3
-101:
-#ifndef __arch64__
-	srl		%o2, 0, %o2
-#endif
-	brz,pn		%o2, .Lexit
-	 cmp		%o2, 3
-	ble,pn		%icc, .Ltiny
-	 cmp		%o2, 19
-	ble,pn		%icc, .Lsmall
-	 or		%o0, %o1, %g2
-	cmp		%o2, 128
-	bl,pn		%icc, .Lmedium
-	 nop
-
-.Llarge:/* len >= 0x80 */
-	/* First get dest 8 byte aligned.  */
-	sub		%g0, %o0, %g1
-	and		%g1, 0x7, %g1
-	brz,pt		%g1, 51f
-	 sub		%o2, %g1, %o2
-
-1:	EX_LD(LOAD(ldub, %o1 + 0x00, %g2))
-	add		%o1, 1, %o1
-	subcc		%g1, 1, %g1
-	add		%o0, 1, %o0
-	bne,pt		%icc, 1b
-	 EX_ST(STORE(stb, %g2, %o0 - 0x01))
-
-51:	LOAD(prefetch, %o1 + 0x040, #n_reads_strong)
-	LOAD(prefetch, %o1 + 0x080, #n_reads_strong)
-	LOAD(prefetch, %o1 + 0x0c0, #n_reads_strong)
-	LOAD(prefetch, %o1 + 0x100, #n_reads_strong)
-	LOAD(prefetch, %o1 + 0x140, #n_reads_strong)
-	LOAD(prefetch, %o1 + 0x180, #n_reads_strong)
-	LOAD(prefetch, %o1 + 0x1c0, #n_reads_strong)
-	LOAD(prefetch, %o1 + 0x200, #n_reads_strong)
-
-	/* Check if we can use the straight fully aligned
-	 * loop, or we require the alignaddr/faligndata variant.
-	 */
-	andcc		%o1, 0x7, %o5
-	bne,pn		%icc, .Llarge_src_unaligned
-	 sub		%g0, %o0, %g1
-
-	/* Legitimize the use of initializing stores by getting dest
-	 * to be 64-byte aligned.
-	 */
-	and		%g1, 0x3f, %g1
-	brz,pt		%g1, .Llarge_aligned
-	 sub		%o2, %g1, %o2
-
-1:	EX_LD(LOAD(ldx, %o1 + 0x00, %g2))
-	add		%o1, 8, %o1
-	subcc		%g1, 8, %g1
-	add		%o0, 8, %o0
-	bne,pt		%icc, 1b
-	 EX_ST(STORE(stx, %g2, %o0 - 0x08))
-
-.Llarge_aligned:
-	/* len >= 0x80 && src 8-byte aligned && dest 8-byte aligned */
-	andn		%o2, 0x3f, %o4
-	sub		%o2, %o4, %o2
-
-1:	EX_LD(LOAD(ldx, %o1 + 0x00, %g1))
-	add		%o1, 0x40, %o1
-	EX_LD(LOAD(ldx, %o1 - 0x38, %g2))
-	subcc		%o4, 0x40, %o4
-	EX_LD(LOAD(ldx, %o1 - 0x30, %g3))
-	EX_LD(LOAD(ldx, %o1 - 0x28, GLOBAL_SPARE))
-	EX_LD(LOAD(ldx, %o1 - 0x20, %o5))
-	EX_ST(STORE_INIT(%g1, %o0))
-	add		%o0, 0x08, %o0
-	EX_ST(STORE_INIT(%g2, %o0))
-	add		%o0, 0x08, %o0
-	EX_LD(LOAD(ldx, %o1 - 0x18, %g2))
-	EX_ST(STORE_INIT(%g3, %o0))
-	add		%o0, 0x08, %o0
-	EX_LD(LOAD(ldx, %o1 - 0x10, %g3))
-	EX_ST(STORE_INIT(GLOBAL_SPARE, %o0))
-	add		%o0, 0x08, %o0
-	EX_LD(LOAD(ldx, %o1 - 0x08, GLOBAL_SPARE))
-	EX_ST(STORE_INIT(%o5, %o0))
-	add		%o0, 0x08, %o0
-	EX_ST(STORE_INIT(%g2, %o0))
-	add		%o0, 0x08, %o0
-	EX_ST(STORE_INIT(%g3, %o0))
-	add		%o0, 0x08, %o0
-	EX_ST(STORE_INIT(GLOBAL_SPARE, %o0))
-	add		%o0, 0x08, %o0
-	bne,pt		%icc, 1b
-	 LOAD(prefetch, %o1 + 0x200, #n_reads_strong)
-
-	membar		#StoreLoad | #StoreStore
-
-	brz,pn		%o2, .Lexit
-	 cmp		%o2, 19
-	ble,pn		%icc, .Lsmall_unaligned
-	 nop
-	ba,a,pt		%icc, .Lmedium_noprefetch
-
-.Lexit:	retl
-	 mov		EX_RETVAL(%o3), %o0
-
-.Llarge_src_unaligned:
-	andn		%o2, 0x3f, %o4
-	sub		%o2, %o4, %o2
-	VISEntryHalf
-	alignaddr	%o1, %g0, %g1
-	add		%o1, %o4, %o1
-	EX_LD(LOAD(ldd, %g1 + 0x00, %f0))
-1:	EX_LD(LOAD(ldd, %g1 + 0x08, %f2))
-	subcc		%o4, 0x40, %o4
-	EX_LD(LOAD(ldd, %g1 + 0x10, %f4))
-	EX_LD(LOAD(ldd, %g1 + 0x18, %f6))
-	EX_LD(LOAD(ldd, %g1 + 0x20, %f8))
-	EX_LD(LOAD(ldd, %g1 + 0x28, %f10))
-	EX_LD(LOAD(ldd, %g1 + 0x30, %f12))
-	EX_LD(LOAD(ldd, %g1 + 0x38, %f14))
-	faligndata	%f0, %f2, %f16
-	EX_LD(LOAD(ldd, %g1 + 0x40, %f0))
-	faligndata	%f2, %f4, %f18
-	add		%g1, 0x40, %g1
-	faligndata	%f4, %f6, %f20
-	faligndata	%f6, %f8, %f22
-	faligndata	%f8, %f10, %f24
-	faligndata	%f10, %f12, %f26
-	faligndata	%f12, %f14, %f28
-	faligndata	%f14, %f0, %f30
-	EX_ST(STORE(std, %f16, %o0 + 0x00))
-	EX_ST(STORE(std, %f18, %o0 + 0x08))
-	EX_ST(STORE(std, %f20, %o0 + 0x10))
-	EX_ST(STORE(std, %f22, %o0 + 0x18))
-	EX_ST(STORE(std, %f24, %o0 + 0x20))
-	EX_ST(STORE(std, %f26, %o0 + 0x28))
-	EX_ST(STORE(std, %f28, %o0 + 0x30))
-	EX_ST(STORE(std, %f30, %o0 + 0x38))
-	add		%o0, 0x40, %o0
-	bne,pt		%icc, 1b
-	 LOAD(prefetch, %g1 + 0x200, #n_reads_strong)
-	VISExitHalf
-
-	brz,pn		%o2, .Lexit
-	 cmp		%o2, 19
-	ble,pn		%icc, .Lsmall_unaligned
-	 nop
-	ba,a,pt		%icc, .Lmedium_unaligned
-
-.Lmedium:
-	LOAD(prefetch, %o1 + 0x40, #n_reads_strong)
-	andcc		%g2, 0x7, %g0
-	bne,pn		%icc, .Lmedium_unaligned
-	 nop
-.Lmedium_noprefetch:
-	andncc		%o2, 0x20 - 1, %o5
-	be,pn		%icc, 2f
-	 sub		%o2, %o5, %o2
-1:	EX_LD(LOAD(ldx, %o1 + 0x00, %g1))
-	EX_LD(LOAD(ldx, %o1 + 0x08, %g2))
-	EX_LD(LOAD(ldx, %o1 + 0x10, GLOBAL_SPARE))
-	EX_LD(LOAD(ldx, %o1 + 0x18, %o4))
-	add		%o1, 0x20, %o1
-	subcc		%o5, 0x20, %o5
-	EX_ST(STORE(stx, %g1, %o0 + 0x00))
-	EX_ST(STORE(stx, %g2, %o0 + 0x08))
-	EX_ST(STORE(stx, GLOBAL_SPARE, %o0 + 0x10))
-	EX_ST(STORE(stx, %o4, %o0 + 0x18))
-	bne,pt		%icc, 1b
-	 add		%o0, 0x20, %o0
-2:	andcc		%o2, 0x18, %o5
-	be,pt		%icc, 3f
-	 sub		%o2, %o5, %o2
-1:	EX_LD(LOAD(ldx, %o1 + 0x00, %g1))
-	add		%o1, 0x08, %o1
-	add		%o0, 0x08, %o0
-	subcc		%o5, 0x08, %o5
-	bne,pt		%icc, 1b
-	 EX_ST(STORE(stx, %g1, %o0 - 0x08))
-3:	brz,pt		%o2, .Lexit
-	 cmp		%o2, 0x04
-	bl,pn		%icc, .Ltiny
-	 nop
-	EX_LD(LOAD(lduw, %o1 + 0x00, %g1))
-	add		%o1, 0x04, %o1
-	add		%o0, 0x04, %o0
-	subcc		%o2, 0x04, %o2
-	bne,pn		%icc, .Ltiny
-	 EX_ST(STORE(stw, %g1, %o0 - 0x04))
-	ba,a,pt		%icc, .Lexit
-.Lmedium_unaligned:
-	/* First get dest 8 byte aligned.  */
-	sub		%g0, %o0, %g1
-	and		%g1, 0x7, %g1
-	brz,pt		%g1, 2f
-	 sub		%o2, %g1, %o2
-
-1:	EX_LD(LOAD(ldub, %o1 + 0x00, %g2))
-	add		%o1, 1, %o1
-	subcc		%g1, 1, %g1
-	add		%o0, 1, %o0
-	bne,pt		%icc, 1b
-	 EX_ST(STORE(stb, %g2, %o0 - 0x01))
-2:
-	and		%o1, 0x7, %g1
-	brz,pn		%g1, .Lmedium_noprefetch
-	 sll		%g1, 3, %g1
-	mov		64, %g2
-	sub		%g2, %g1, %g2
-	andn		%o1, 0x7, %o1
-	EX_LD(LOAD(ldx, %o1 + 0x00, %o4))
-	sllx		%o4, %g1, %o4
-	andn		%o2, 0x08 - 1, %o5
-	sub		%o2, %o5, %o2
-1:	EX_LD(LOAD(ldx, %o1 + 0x08, %g3))
-	add		%o1, 0x08, %o1
-	subcc		%o5, 0x08, %o5
-	srlx		%g3, %g2, GLOBAL_SPARE
-	or		GLOBAL_SPARE, %o4, GLOBAL_SPARE
-	EX_ST(STORE(stx, GLOBAL_SPARE, %o0 + 0x00))
-	add		%o0, 0x08, %o0
-	bne,pt		%icc, 1b
-	 sllx		%g3, %g1, %o4
-	srl		%g1, 3, %g1
-	add		%o1, %g1, %o1
-	brz,pn		%o2, .Lexit
-	 nop
-	ba,pt		%icc, .Lsmall_unaligned
-
-.Ltiny:
-	EX_LD(LOAD(ldub, %o1 + 0x00, %g1))
-	subcc		%o2, 1, %o2
-	be,pn		%icc, .Lexit
-	 EX_ST(STORE(stb, %g1, %o0 + 0x00))
-	EX_LD(LOAD(ldub, %o1 + 0x01, %g1))
-	subcc		%o2, 1, %o2
-	be,pn		%icc, .Lexit
-	 EX_ST(STORE(stb, %g1, %o0 + 0x01))
-	EX_LD(LOAD(ldub, %o1 + 0x02, %g1))
-	ba,pt		%icc, .Lexit
-	 EX_ST(STORE(stb, %g1, %o0 + 0x02))
-
-.Lsmall:
-	andcc		%g2, 0x3, %g0
-	bne,pn		%icc, .Lsmall_unaligned
-	 andn		%o2, 0x4 - 1, %o5
-	sub		%o2, %o5, %o2
-1:
-	EX_LD(LOAD(lduw, %o1 + 0x00, %g1))
-	add		%o1, 0x04, %o1
-	subcc		%o5, 0x04, %o5
-	add		%o0, 0x04, %o0
-	bne,pt		%icc, 1b
-	 EX_ST(STORE(stw, %g1, %o0 - 0x04))
-	brz,pt		%o2, .Lexit
-	 nop
-	ba,a,pt		%icc, .Ltiny
-
-.Lsmall_unaligned:
-1:	EX_LD(LOAD(ldub, %o1 + 0x00, %g1))
-	add		%o1, 1, %o1
-	add		%o0, 1, %o0
-	subcc		%o2, 1, %o2
-	bne,pt		%icc, 1b
-	 EX_ST(STORE(stb, %g1, %o0 - 0x01))
-	ba,a,pt		%icc, .Lexit
-END(__memcpy_niagara4)
-
-#endif
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S b/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
deleted file mode 100644
index b8f5c3cb8f..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
+++ /dev/null
@@ -1,325 +0,0 @@
-/* Copy SIZE bytes from SRC to DEST.
-   For UltraSPARC-III.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@redhat.com)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#define ASI_BLK_P 0xf0
-#define FPRS_FEF  0x04
-#define VISEntryHalf rd %fprs, %o5; wr %g0, FPRS_FEF, %fprs
-#define VISExitHalf and %o5, FPRS_FEF, %o5; wr %o5, 0x0, %fprs
-
-#ifndef XCC
-#define USE_BPR
-#define XCC xcc
-#endif
-
-#if IS_IN (libc)
-
-	.register	%g2,#scratch
-	.register	%g3,#scratch
-	.register	%g6,#scratch
-
-	.text
-
-ENTRY(__mempcpy_ultra3)
-	ba,pt		%XCC, 101f
-	 add		%o0, %o2, %g5
-END(__mempcpy_ultra3)
-
-	/* Special/non-trivial issues of this code:
-	 *
-	 * 1) %o5 is preserved from VISEntryHalf to VISExitHalf
-	 * 2) Only low 32 FPU registers are used so that only the
-	 *    lower half of the FPU register set is dirtied by this
-	 *    code.  This is especially important in the kernel.
-	 * 3) This code never prefetches cachelines past the end
-	 *    of the source buffer.
-	 *
-	 * The cheetah's flexible spine, oversized liver, enlarged heart,
-	 * slender muscular body, and claws make it the swiftest hunter
-	 * in Africa and the fastest animal on land.  Can reach speeds
-	 * of up to 2.4GB per second.
-	 */
-	.align		32
-ENTRY(__memcpy_ultra3)
-
-100: /* %o0=dst, %o1=src, %o2=len */
-	mov		%o0, %g5
-101:
-	cmp		%o2, 0
-	be,pn		%XCC, out
-218:	 or		%o0, %o1, %o3
-	cmp		%o2, 16
-	bleu,a,pn	%XCC, small_copy
-	 or		%o3, %o2, %o3
-
-	cmp		%o2, 256
-	blu,pt		%XCC, medium_copy
-	 andcc		%o3, 0x7, %g0
-
-	ba,pt		%xcc, enter
-	 andcc		%o0, 0x3f, %g2
-
-	/* Here len >= 256 and condition codes reflect execution
-	 * of "andcc %o0, 0x7, %g2", done by caller.
-	 */
-	.align		64
-enter:
-	/* Is 'dst' already aligned on an 64-byte boundary? */
-	be,pt		%XCC, 2f
-
-	/* Compute abs((dst & 0x3f) - 0x40) into %g2.  This is the number
-	 * of bytes to copy to make 'dst' 64-byte aligned.  We pre-
-	 * subtract this from 'len'.
-	 */
-	 sub		%g2, 0x40, %g2
-	sub		%g0, %g2, %g2
-	sub		%o2, %g2, %o2
-
-	/* Copy %g2 bytes from src to dst, one byte at a time. */
-1:	ldub		[%o1 + 0x00], %o3
-	add		%o1, 0x1, %o1
-	add		%o0, 0x1, %o0
-	subcc		%g2, 0x1, %g2
-
-	bg,pt		%XCC, 1b
-	 stb		%o3, [%o0 + -1]
-
-2:	VISEntryHalf
-	and		%o1, 0x7, %g1
-	ba,pt		%xcc, begin
-	 alignaddr	%o1, %g0, %o1
-
-	.align		64
-begin:
-	prefetch	[%o1 + 0x000], #one_read
-	prefetch	[%o1 + 0x040], #one_read
-	andn		%o2, (0x40 - 1), %o4
-	prefetch	[%o1 + 0x080], #one_read
-	prefetch	[%o1 + 0x0c0], #one_read
-	ldd		[%o1 + 0x000], %f0
-	prefetch	[%o1 + 0x100], #one_read
-	ldd		[%o1 + 0x008], %f2
-	prefetch	[%o1 + 0x140], #one_read
-	ldd		[%o1 + 0x010], %f4
-	prefetch	[%o1 + 0x180], #one_read
-	faligndata	%f0, %f2, %f16
-	ldd		[%o1 + 0x018], %f6
-	faligndata	%f2, %f4, %f18
-	ldd		[%o1 + 0x020], %f8
-	faligndata	%f4, %f6, %f20
-	ldd		[%o1 + 0x028], %f10
-	faligndata	%f6, %f8, %f22
-
-	ldd		[%o1 + 0x030], %f12
-	faligndata	%f8, %f10, %f24
-	ldd		[%o1 + 0x038], %f14
-	faligndata	%f10, %f12, %f26
-	ldd		[%o1 + 0x040], %f0
-
-	sub		%o4, 0x80, %o4
-	add		%o1, 0x40, %o1
-	ba,pt		%xcc, loop
-	 srl		%o4, 6, %o3
-
-	.align		64
-loop:
-	ldd		[%o1 + 0x008], %f2
-	faligndata	%f12, %f14, %f28
-	ldd		[%o1 + 0x010], %f4
-	faligndata	%f14, %f0, %f30
-	stda		%f16, [%o0] ASI_BLK_P
-	ldd		[%o1 + 0x018], %f6
-	faligndata	%f0, %f2, %f16
-
-	ldd		[%o1 + 0x020], %f8
-	faligndata	%f2, %f4, %f18
-	ldd		[%o1 + 0x028], %f10
-	faligndata	%f4, %f6, %f20
-	ldd		[%o1 + 0x030], %f12
-	faligndata	%f6, %f8, %f22
-	ldd		[%o1 + 0x038], %f14
-	faligndata	%f8, %f10, %f24
-
-	ldd		[%o1 + 0x040], %f0
-	prefetch	[%o1 + 0x180], #one_read
-	faligndata	%f10, %f12, %f26
-	subcc		%o3, 0x01, %o3
-	add		%o1, 0x40, %o1
-	bg,pt		%XCC, loop
-	 add		%o0, 0x40, %o0
-
-	/* Finally we copy the last full 64-byte block. */
-loopfini:
-	ldd		[%o1 + 0x008], %f2
-	faligndata	%f12, %f14, %f28
-	ldd		[%o1 + 0x010], %f4
-	faligndata	%f14, %f0, %f30
-	stda		%f16, [%o0] ASI_BLK_P
-	ldd		[%o1 + 0x018], %f6
-	faligndata	%f0, %f2, %f16
-	ldd		[%o1 + 0x020], %f8
-	faligndata	%f2, %f4, %f18
-	ldd		[%o1 + 0x028], %f10
-	faligndata	%f4, %f6, %f20
-	ldd		[%o1 + 0x030], %f12
-	faligndata	%f6, %f8, %f22
-	ldd		[%o1 + 0x038], %f14
-	faligndata	%f8, %f10, %f24
-	cmp		%g1, 0
-	be,pt		%XCC, 1f
-	 add		%o0, 0x40, %o0
-	ldd		[%o1 + 0x040], %f0
-1:	faligndata	%f10, %f12, %f26
-	faligndata	%f12, %f14, %f28
-	faligndata	%f14, %f0, %f30
-	stda		%f16, [%o0] ASI_BLK_P
-	add		%o0, 0x40, %o0
-	add		%o1, 0x40, %o1
-	membar		#Sync
-
-	/* Now we copy the (len modulo 64) bytes at the end.
-	 * Note how we borrow the %f0 loaded above.
-	 *
-	 * Also notice how this code is careful not to perform a
-	 * load past the end of the src buffer.
-	 */
-loopend:
-	and		%o2, 0x3f, %o2
-	andcc		%o2, 0x38, %g2
-	be,pn		%XCC, endcruft
-	 subcc		%g2, 0x8, %g2
-	be,pn		%XCC, endcruft
-	 cmp		%g1, 0
-
-	be,a,pt		%XCC, 1f
-	 ldd		[%o1 + 0x00], %f0
-
-1:	ldd		[%o1 + 0x08], %f2
-	add		%o1, 0x8, %o1
-	sub		%o2, 0x8, %o2
-	subcc		%g2, 0x8, %g2
-	faligndata	%f0, %f2, %f8
-	std		%f8, [%o0 + 0x00]
-	be,pn		%XCC, endcruft
-	 add		%o0, 0x8, %o0
-	ldd		[%o1 + 0x08], %f0
-	add		%o1, 0x8, %o1
-	sub		%o2, 0x8, %o2
-	subcc		%g2, 0x8, %g2
-	faligndata	%f2, %f0, %f8
-	std		%f8, [%o0 + 0x00]
-	bne,pn		%XCC, 1b
-	 add		%o0, 0x8, %o0
-
-	/* If anything is left, we copy it one byte at a time.
-	 * Note that %g1 is (src & 0x3) saved above before the
-	 * alignaddr was performed.
-	 */
-endcruft:
-	cmp		%o2, 0
-	add		%o1, %g1, %o1
-	VISExitHalf
-	be,pn		%XCC, out
-	 sub		%o0, %o1, %o3
-
-	andcc		%g1, 0x7, %g0
-	bne,pn		%icc, small_copy_unaligned
-	 andcc		%o2, 0x8, %g0
-	be,pt		%icc, 1f
-	 nop
-	ldx		[%o1], %o5
-	stx		%o5, [%o1 + %o3]
-	add		%o1, 0x8, %o1
-
-1:	andcc		%o2, 0x4, %g0
-	be,pt		%icc, 1f
-	 nop
-	lduw		[%o1], %o5
-	stw		%o5, [%o1 + %o3]
-	add		%o1, 0x4, %o1
-
-1:	andcc		%o2, 0x2, %g0
-	be,pt		%icc, 1f
-	 nop
-	lduh		[%o1], %o5
-	sth		%o5, [%o1 + %o3]
-	add		%o1, 0x2, %o1
-
-1:	andcc		%o2, 0x1, %g0
-	be,pt		%icc, out
-	 nop
-	ldub		[%o1], %o5
-	ba,pt		%xcc, out
-	 stb		%o5, [%o1 + %o3]
-
-medium_copy: /* 16 < len <= 64 */
-	bne,pn		%XCC, small_copy_unaligned
-	 sub		%o0, %o1, %o3
-
-medium_copy_aligned:
-	andn		%o2, 0x7, %o4
-	and		%o2, 0x7, %o2
-1:	subcc		%o4, 0x8, %o4
-	ldx		[%o1], %o5
-	stx		%o5, [%o1 + %o3]
-	bgu,pt		%XCC, 1b
-	 add		%o1, 0x8, %o1
-	andcc		%o2, 0x4, %g0
-	be,pt		%XCC, 1f
-	 nop
-	sub		%o2, 0x4, %o2
-	lduw		[%o1], %o5
-	stw		%o5, [%o1 + %o3]
-	add		%o1, 0x4, %o1
-1:	cmp		%o2, 0
-	be,pt		%XCC, out
-	 nop
-	ba,pt		%xcc, small_copy_unaligned
-	 nop
-
-small_copy: /* 0 < len <= 16 */
-	andcc		%o3, 0x3, %g0
-	bne,pn		%XCC, small_copy_unaligned
-	 sub		%o0, %o1, %o3
-
-small_copy_aligned:
-	subcc		%o2, 4, %o2
-	lduw		[%o1], %g1
-	stw		%g1, [%o1 + %o3]
-	bgu,pt		%XCC, small_copy_aligned
-	 add		%o1, 4, %o1
-
-out:	retl
-	 mov		%g5, %o0
-
-	.align	32
-small_copy_unaligned:
-	subcc		%o2, 1, %o2
-	ldub		[%o1], %g1
-	stb		%g1, [%o1 + %o3]
-	bgu,pt		%XCC, small_copy_unaligned
-	 add		%o1, 1, %o1
-	retl
-	 mov		%g5, %o0
-
-END(__memcpy_ultra3)
-
-#endif
\ No newline at end of file
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy.S b/sysdeps/sparc/sparc64/multiarch/memcpy.S
deleted file mode 100644
index b6396eeae5..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/memcpy.S
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Multiple versions of memcpy
-   All versions must be listed in ifunc-impl-list.c.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
-   Contributed by David S. Miller (davem@davemloft.net)
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#if IS_IN (libc)
-	.text
-ENTRY(memcpy)
-	.type	memcpy, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_CRYPTO, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 andcc	%o0, HWCAP_SPARC_N2, %g0
-# ifdef SHARED
-	sethi	%gdop_hix22(__memcpy_niagara4), %o1
-	xor	%o1, %gdop_lox10(__memcpy_niagara4), %o1
-# else
-	set	__memcpy_niagara4, %o1
-# endif
-	ba	10f
-	 nop
-1:	be	1f
-	 andcc	%o0, HWCAP_SPARC_BLKINIT, %g0
-# ifdef SHARED
-	sethi	%gdop_hix22(__memcpy_niagara2), %o1
-	xor	%o1, %gdop_lox10(__memcpy_niagara2), %o1
-# else
-	set	__memcpy_niagara2, %o1
-# endif
-	ba	10f
-	 nop
-1:	be	1f
-	 andcc	%o0, HWCAP_SPARC_ULTRA3, %g0
-# ifdef SHARED
-	sethi	%gdop_hix22(__memcpy_niagara1), %o1
-	xor	%o1, %gdop_lox10(__memcpy_niagara1), %o1
-# else
-	set	__memcpy_niagara1, %o1
-# endif
-	ba	10f
-	 nop
-1:	be	9f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__memcpy_ultra3), %o1
-	xor	%o1, %gdop_lox10(__memcpy_ultra3), %o1
-# else
-	set	__memcpy_ultra3, %o1
-# endif
-	ba	10f
-	 nop
-9:
-# ifdef SHARED
-	sethi	%gdop_hix22(__memcpy_ultra1), %o1
-	xor	%o1, %gdop_lox10(__memcpy_ultra1), %o1
-# else
-	set	__memcpy_ultra1, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(memcpy)
-
-ENTRY(__mempcpy)
-	.type	__mempcpy, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_CRYPTO, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 andcc	%o0, HWCAP_SPARC_N2, %g0
-# ifdef SHARED
-	sethi	%gdop_hix22(__mempcpy_niagara4), %o1
-	xor	%o1, %gdop_lox10(__mempcpy_niagara4), %o1
-# else
-	set	__mempcpy_niagara4, %o1
-# endif
-	ba	10f
-	 nop
-1:	be	1f
-	 andcc	%o0, HWCAP_SPARC_BLKINIT, %g0
-# ifdef SHARED
-	sethi	%gdop_hix22(__mempcpy_niagara2), %o1
-	xor	%o1, %gdop_lox10(__mempcpy_niagara2), %o1
-# else
-	set	__mempcpy_niagara2, %o1
-# endif
-	ba	10f
-	 nop
-1:	be	1f
-	 andcc	%o0, HWCAP_SPARC_ULTRA3, %g0
-# ifdef SHARED
-	sethi	%gdop_hix22(__mempcpy_niagara1), %o1
-	xor	%o1, %gdop_lox10(__mempcpy_niagara1), %o1
-# else
-	set	__mempcpy_niagara1, %o1
-# endif
-	ba	10f
-	 nop
-1:	be	9f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__mempcpy_ultra3), %o1
-	xor	%o1, %gdop_lox10(__mempcpy_ultra3), %o1
-# else
-	set	__mempcpy_ultra3, %o1
-# endif
-	ba	10f
-	 nop
-9:
-# ifdef SHARED
-	sethi	%gdop_hix22(__mempcpy_ultra1), %o1
-	xor	%o1, %gdop_lox10(__mempcpy_ultra1), %o1
-# else
-	set	__mempcpy_ultra1, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(__mempcpy)
-
-libc_hidden_builtin_def (memcpy)
-
-libc_hidden_def (__mempcpy)
-weak_alias (__mempcpy, mempcpy)
-libc_hidden_builtin_def (mempcpy)
-
-#undef libc_hidden_builtin_def
-#define libc_hidden_builtin_def(name)
-#undef weak_alias
-#define weak_alias(x, y)
-#undef libc_hidden_def
-#define libc_hidden_def(name)
-
-#define memcpy __memcpy_ultra1
-#define __mempcpy __mempcpy_ultra1
-
-#endif
-
-#include "../memcpy.S"
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S b/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S
deleted file mode 100644
index 45b2251691..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Set a block of memory to some byte value.  For SUN4V Niagara.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@davemloft.net)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#define ASI_BLK_INIT_QUAD_LDD_P	0xe2
-#define ASI_P			0x80
-#define ASI_PNF			0x82
-
-#ifndef XCC
-#define USE_BPR
-#define XCC xcc
-#endif
-
-#if IS_IN (libc)
-
-	.register	%g2,#scratch
-
-	.text
-	.align		32
-
-ENTRY(__memset_niagara1)
-	/* %o0=buf, %o1=pat, %o2=len */
-	and		%o1, 0xff, %o3
-	mov		%o2, %o1
-	sllx		%o3, 8, %g1
-	or		%g1, %o3, %o2
-	sllx		%o2, 16, %g1
-	or		%g1, %o2, %o2
-	sllx		%o2, 32, %g1
-	ba,pt		%XCC, 1f
-	 or		%g1, %o2, %o2
-END(__memset_niagara1)
-
-ENTRY(__bzero_niagara1)
-	clr		%o2
-1:
-# ifndef USE_BRP
-	srl		%o1, 0, %o1
-# endif
-	brz,pn		%o1, 90f
-	 mov		%o0, %o3
-
-	wr		%g0, ASI_P, %asi
-
-	cmp		%o1, 15
-	blu,pn		%XCC, 70f
-	 andcc		%o0, 0x7, %g1
-	be,pt		%XCC, 2f
-	 mov		8, %g2
-	sub		%g2, %g1, %g1
-	sub		%o1, %g1, %o1
-1:	stba		%o2, [%o0 + 0x00] %asi
-	subcc		%g1, 1, %g1
-	bne,pt		%XCC, 1b
-	 add		%o0, 1, %o0
-2:	cmp		%o1, 128
-	blu,pn		%XCC, 60f
-	 andcc		%o0, (64 - 1), %g1
-	be,pt		%XCC, 40f
-	 mov		64, %g2
-	sub		%g2, %g1, %g1
-	sub		%o1, %g1, %o1
-1:	stxa		%o2, [%o0 + 0x00] %asi
-	subcc		%g1, 8, %g1
-	bne,pt		%XCC, 1b
-	 add		%o0, 8, %o0
-
-40:
-	wr		%g0, ASI_BLK_INIT_QUAD_LDD_P, %asi
-	andn		%o1, (64 - 1), %g1
-	sub		%o1, %g1, %o1
-
-	andn		%g1, (256 - 1), %g2
-	brz,pt		%g2, 50f
-	 and		%g1, (256 - 1), %g1
-
-45:
-	stxa		%o2, [%o0 + 0x00] %asi
-	stxa		%o2, [%o0 + 0x08] %asi
-	stxa		%o2, [%o0 + 0x10] %asi
-	stxa		%o2, [%o0 + 0x18] %asi
-	stxa		%o2, [%o0 + 0x20] %asi
-	stxa		%o2, [%o0 + 0x28] %asi
-	stxa		%o2, [%o0 + 0x30] %asi
-	stxa		%o2, [%o0 + 0x38] %asi
-	stxa		%o2, [%o0 + 0x40] %asi
-	stxa		%o2, [%o0 + 0x48] %asi
-	stxa		%o2, [%o0 + 0x50] %asi
-	stxa		%o2, [%o0 + 0x58] %asi
-	stxa		%o2, [%o0 + 0x60] %asi
-	stxa		%o2, [%o0 + 0x68] %asi
-	stxa		%o2, [%o0 + 0x70] %asi
-	stxa		%o2, [%o0 + 0x78] %asi
-	stxa		%o2, [%o0 + 0x80] %asi
-	stxa		%o2, [%o0 + 0x88] %asi
-	stxa		%o2, [%o0 + 0x90] %asi
-	stxa		%o2, [%o0 + 0x98] %asi
-	stxa		%o2, [%o0 + 0xa0] %asi
-	stxa		%o2, [%o0 + 0xa8] %asi
-	stxa		%o2, [%o0 + 0xb0] %asi
-	stxa		%o2, [%o0 + 0xb8] %asi
-	stxa		%o2, [%o0 + 0xc0] %asi
-	stxa		%o2, [%o0 + 0xc8] %asi
-	stxa		%o2, [%o0 + 0xd0] %asi
-	stxa		%o2, [%o0 + 0xd8] %asi
-	stxa		%o2, [%o0 + 0xe0] %asi
-	stxa		%o2, [%o0 + 0xe8] %asi
-	stxa		%o2, [%o0 + 0xf0] %asi
-	stxa		%o2, [%o0 + 0xf8] %asi
-	subcc		%g2, 256, %g2
-	bne,pt		%XCC, 45b
-	 add		%o0, 256, %o0
-
-	brz,pn		%g1, 55f
-	 nop
-
-50:
-	stxa		%o2, [%o0 + 0x00] %asi
-	stxa		%o2, [%o0 + 0x08] %asi
-	stxa		%o2, [%o0 + 0x10] %asi
-	stxa		%o2, [%o0 + 0x18] %asi
-	stxa		%o2, [%o0 + 0x20] %asi
-	stxa		%o2, [%o0 + 0x28] %asi
-	stxa		%o2, [%o0 + 0x30] %asi
-	stxa		%o2, [%o0 + 0x38] %asi
-	subcc		%g1, 64, %g1
-	bne,pt		%XCC, 50b
-	 add		%o0, 64, %o0
-
-55:
-	wr		%g0, ASI_P, %asi
-	brz,pn		%o1, 80f
-60:
-	 andncc		%o1, 0x7, %g1
-	be,pn		%XCC, 2f
-	 sub		%o1, %g1, %o1
-1:	stxa		%o2, [%o0 + 0x00] %asi
-	subcc		%g1, 8, %g1
-	bne,pt		%XCC, 1b
-	 add		%o0, 8, %o0
-2:	brz,pt		%o1, 80f
-	 nop
-
-70:
-1:	stba		%o2, [%o0 + 0x00] %asi
-	subcc		%o1, 1, %o1
-	bne,pt		%XCC, 1b
-	 add		%o0, 1, %o0
-
-	/* fallthrough */
-
-80:
-	wr		%g0, ASI_PNF, %asi
-
-90:
-	retl
-	 mov		%o3, %o0
-END(__bzero_niagara1)
-
-#endif
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S b/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S
deleted file mode 100644
index c04a07a7f9..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Set a block of memory to some byte value.  For SUN4V Niagara-4.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@davemloft.net)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#define ASI_BLK_INIT_QUAD_LDD_P	0xe2
-
-#if IS_IN (libc)
-
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-
-	.text
-	.align		32
-
-ENTRY(__memset_niagara4)
-	andcc		%o1, 0xff, %o4
-	be,pt		%icc, 1f
-	 mov		%o2, %o1
-	sllx		%o4, 8, %g1
-	or		%g1, %o4, %o2
-	sllx		%o2, 16, %g1
-	or		%g1, %o2, %o2
-	sllx		%o2, 32, %g1
-	ba,pt		%icc, 1f
-	 or		%g1, %o2, %o4
-END(__memset_niagara4)
-
-	.align		32
-ENTRY(__bzero_niagara4)
-	clr		%o4
-1:	cmp		%o1, 16
-	ble		%icc, .Ltiny
-	 mov		%o0, %o3
-	sub		%g0, %o0, %g1
-	and		%g1, 0x7, %g1
-	brz,pt		%g1, .Laligned8
-	 sub		%o1, %g1, %o1
-1:	stb		%o4, [%o0 + 0x00]
-	subcc		%g1, 1, %g1
-	bne,pt		%icc, 1b
-	 add		%o0, 1, %o0
-.Laligned8:
-	cmp		%o1, 64 + (64 - 8)
-	ble		.Lmedium
-	 sub		%g0, %o0, %g1
-	andcc		%g1, (64 - 1), %g1
-	brz,pn		%g1, .Laligned64
-	 sub		%o1, %g1, %o1
-1:	stx		%o4, [%o0 + 0x00]
-	subcc		%g1, 8, %g1
-	bne,pt		%icc, 1b
-	 add		%o0, 0x8, %o0
-.Laligned64:
-	andn		%o1, 64 - 1, %g1
-	sub		%o1, %g1, %o1
-	brnz,pn		%o4, .Lnon_bzero_loop
-	 mov		0x20, %g2
-1:	stxa		%o4, [%o0 + %g0] ASI_BLK_INIT_QUAD_LDD_P
-	subcc		%g1, 0x40, %g1
-	stxa		%o4, [%o0 + %g2] ASI_BLK_INIT_QUAD_LDD_P
-	bne,pt		%icc, 1b
-	 add		%o0, 0x40, %o0
-.Lpostloop:
-	cmp		%o1, 8
-	bl,pn		%icc, .Ltiny
-	 membar		#StoreStore|#StoreLoad
-.Lmedium:
-	andn		%o1, 0x7, %g1
-	sub		%o1, %g1, %o1
-1:	stx		%o4, [%o0 + 0x00]
-	subcc		%g1, 0x8, %g1
-	bne,pt		%icc, 1b
-	 add		%o0, 0x08, %o0
-	andcc		%o1, 0x4, %g1
-	be,pt		%icc, .Ltiny
-	 sub		%o1, %g1, %o1
-	stw		%o4, [%o0 + 0x00]
-	add		%o0, 0x4, %o0
-.Ltiny:
-	cmp		%o1, 0
-	be,pn		%icc, .Lexit
-1:	 subcc		%o1, 1, %o1
-	stb		%o4, [%o0 + 0x00]
-	bne,pt		%icc, 1b
-	 add		%o0, 1, %o0
-.Lexit:
-	retl
-	 mov		%o3, %o0
-.Lnon_bzero_loop:
-	mov		0x08, %g3
-	mov		0x28, %o5
-1:	stxa		%o4, [%o0 + %g0] ASI_BLK_INIT_QUAD_LDD_P
-	subcc		%g1, 0x40, %g1
-	stxa		%o4, [%o0 + %g2] ASI_BLK_INIT_QUAD_LDD_P
-	stxa		%o4, [%o0 + %g3] ASI_BLK_INIT_QUAD_LDD_P
-	stxa		%o4, [%o0 + %o5] ASI_BLK_INIT_QUAD_LDD_P
-	add		%o0, 0x10, %o0
-	stxa		%o4, [%o0 + %g0] ASI_BLK_INIT_QUAD_LDD_P
-	stxa		%o4, [%o0 + %g2] ASI_BLK_INIT_QUAD_LDD_P
-	stxa		%o4, [%o0 + %g3] ASI_BLK_INIT_QUAD_LDD_P
-	stxa		%o4, [%o0 + %o5] ASI_BLK_INIT_QUAD_LDD_P
-	bne,pt		%icc, 1b
-	 add		%o0, 0x30, %o0
-	ba,a,pt		%icc, .Lpostloop
-END(__bzero_niagara4)
-
-#endif
diff --git a/sysdeps/sparc/sparc64/multiarch/memset.S b/sysdeps/sparc/sparc64/multiarch/memset.S
deleted file mode 100644
index 9469d5e7ce..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/memset.S
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Multiple versions of memset and bzero
-   All versions must be listed in ifunc-impl-list.c.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
-   Contributed by David S. Miller (davem@davemloft.net)
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#if IS_IN (libc)
-	.text
-ENTRY(memset)
-	.type	memset, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_CRYPTO, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 andcc	%o0, HWCAP_SPARC_BLKINIT, %g0
-# ifdef SHARED
-	sethi	%gdop_hix22(__memset_niagara4), %o1
-	xor	%o1, %gdop_lox10(__memset_niagara4), %o1
-# else
-	set	__memset_niagara4, %o1
-# endif
-	ba	10f
-	 nop
-1:	be	9f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__memset_niagara1), %o1
-	xor	%o1, %gdop_lox10(__memset_niagara1), %o1
-# else
-	set	__memset_niagara1, %o1
-# endif
-	ba	10f
-	 nop
-9:
-# ifdef SHARED
-	sethi	%gdop_hix22(__memset_ultra1), %o1
-	xor	%o1, %gdop_lox10(__memset_ultra1), %o1
-# else
-	set	__memset_ultra1, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(memset)
-
-ENTRY(__bzero)
-	.type	bzero, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_CRYPTO, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 andcc	%o0, HWCAP_SPARC_BLKINIT, %g0
-# ifdef SHARED
-	sethi	%gdop_hix22(__bzero_niagara4), %o1
-	xor	%o1, %gdop_lox10(__bzero_niagara4), %o1
-# else
-	set	__bzero_niagara4, %o1
-# endif
-	ba	10f
-	 nop
-1:	be	9f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__bzero_niagara1), %o1
-	xor	%o1, %gdop_lox10(__bzero_niagara1), %o1
-# else
-	set	__bzero_niagara1, %o1
-# endif
-	ba	10f
-	 nop
-9:
-# ifdef SHARED
-	sethi	%gdop_hix22(__bzero_ultra1), %o1
-	xor	%o1, %gdop_lox10(__bzero_ultra1), %o1
-# else
-	set	__bzero_ultra1, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(__bzero)
-
-weak_alias (__bzero, bzero)
-
-# undef weak_alias
-# define weak_alias(a, b)
-
-libc_hidden_builtin_def (memset)
-
-#undef libc_hidden_builtin_def
-#define libc_hidden_builtin_def(name)
-
-#define memset __memset_ultra1
-#define __bzero __bzero_ultra1
-
-#endif
-
-#include "../memset.S"
diff --git a/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S b/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S
deleted file mode 100644
index 7c4fa49ce4..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S
+++ /dev/null
@@ -1,73 +0,0 @@
-! SPARC v9 64-bit VIS3 __mpn_mul_1 -- Multiply a limb vector with a single
-! limb and store the product in a second limb vector.
-!
-! Copyright (C) 2013-2017 Free Software Foundation, Inc.
-! This file is part of the GNU C Library.
-! Contributed by David S. Miller <davem@davemloft.net>
-!
-! The GNU C Library is free software; you can redistribute it and/or
-! modify it under the terms of the GNU Lesser General Public
-! License as published by the Free Software Foundation; either
-! version 2.1 of the License, or (at your option) any later version.
-!
-! The GNU C Library is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-! Lesser General Public License for more details.
-!
-! You should have received a copy of the GNU Lesser General Public
-! License along with the GNU C Library; if not, see
-! <http://www.gnu.org/licenses/>.
-
-#include <sysdep.h>
-
-#define res_ptr	%o0
-#define s1_ptr	%o1
-#define sz	%o2
-#define s2_limb	%o3
-#define carry	%o5
-#define tmp1	%g1
-#define tmp2	%g2
-#define tmp3	%g3
-#define tmp4	%o4
-
-	.register	%g2,#scratch
-	.register	%g3,#scratch
-ENTRY(__mpn_mul_1_vis3)
-	subcc	sz, 1, sz
-	be	.Lfinal_limb
-	 clr	carry
-
-.Lloop:
-	ldx	[s1_ptr + 0x00], tmp1
-	ldx	[s1_ptr + 0x08], tmp4
-	mulx	tmp1, s2_limb, tmp3
-	add	s1_ptr, 0x10, s1_ptr
-	umulxhi	tmp1, s2_limb, tmp2
-	sub	sz, 2, sz
-	mulx	tmp4, s2_limb, tmp1
-	add	res_ptr, 0x10, res_ptr
-	umulxhi	tmp4, s2_limb, tmp4
-	addcc	carry, tmp3, tmp3
-	stx	tmp3, [res_ptr - 0x10]
-	addxc	%g0, tmp2, carry
-	addcc	carry, tmp1, tmp1
-	addxc	%g0, tmp4, carry
-	brgz	sz, .Lloop
-	 stx	tmp1, [res_ptr - 0x08]
-
-	brlz,pt	sz, .Lfinish
-	 nop
-
-.Lfinal_limb:
-	ldx	[s1_ptr + 0x00], tmp1
-	mulx	tmp1, s2_limb, tmp3
-	umulxhi	tmp1, s2_limb, tmp2
-	addcc	carry, tmp3, tmp3
-	addxc	%g0, tmp2, carry
-	stx	tmp3, [res_ptr + 0x00]
-
-.Lfinish:
-	retl
-	 mov	carry, %o0
-END(__mpn_mul_1_vis3)
diff --git a/sysdeps/sparc/sparc64/multiarch/mul_1.S b/sysdeps/sparc/sparc64/multiarch/mul_1.S
deleted file mode 100644
index 75fca932b7..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/mul_1.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Multiple versions of mul_1
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   Contributed by David S. Miller (davem@davemloft.net)
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY(__mpn_mul_1)
-	.type	__mpn_mul_1, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_VIS3, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_mul_1_vis3), %o1
-	xor	%o1, %gdop_lox10(__mpn_mul_1_vis3), %o1
-# else
-	set	__mpn_mul_1_vis3, %o1
-# endif
-	ba	10f
-	 nop
-1:
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_mul_1_generic), %o1
-	xor	%o1, %gdop_lox10(__mpn_mul_1_generic), %o1
-# else
-	set	__mpn_mul_1_generic, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(__mpn_mul_1)
-
-#define __mpn_mul_1 __mpn_mul_1_generic
-#include "../mul_1.S"
diff --git a/sysdeps/sparc/sparc64/multiarch/rtld-memcpy.c b/sysdeps/sparc/sparc64/multiarch/rtld-memcpy.c
deleted file mode 100644
index 2452575343..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/rtld-memcpy.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../rtld-memcpy.c"
diff --git a/sysdeps/sparc/sparc64/multiarch/rtld-memset.c b/sysdeps/sparc/sparc64/multiarch/rtld-memset.c
deleted file mode 100644
index c01eb0beb9..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/rtld-memset.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../rtld-memset.c"
diff --git a/sysdeps/sparc/sparc64/multiarch/sha256-block.c b/sysdeps/sparc/sparc64/multiarch/sha256-block.c
deleted file mode 100644
index 9d65315a5a..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/sha256-block.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <sparc-ifunc.h>
-
-#define __sha256_process_block __sha256_process_block_generic
-extern void __sha256_process_block_generic (const void *buffer, size_t len,
-					    struct sha256_ctx *ctx);
-
-#include <crypt/sha256-block.c>
-
-#undef __sha256_process_block
-
-extern void __sha256_process_block_crop (const void *buffer, size_t len,
-					 struct sha256_ctx *ctx);
-
-static bool cpu_supports_sha256(int hwcap)
-{
-  unsigned long cfr;
-
-  if (!(hwcap & HWCAP_SPARC_CRYPTO))
-    return false;
-
-  __asm__ ("rd %%asr26, %0" : "=r" (cfr));
-  if (cfr & (1 << 6))
-    return true;
-
-  return false;
-}
-
-extern void __sha256_process_block (const void *buffer, size_t len,
-				    struct sha256_ctx *ctx);
-sparc_libc_ifunc (__sha256_process_block,
-		  cpu_supports_sha256(hwcap) ? __sha256_process_block_crop
-		    : __sha256_process_block_generic);
diff --git a/sysdeps/sparc/sparc64/multiarch/sha256-crop.S b/sysdeps/sparc/sparc64/multiarch/sha256-crop.S
deleted file mode 100644
index 8f07e4245a..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/sha256-crop.S
+++ /dev/null
@@ -1,101 +0,0 @@
-/* SHA256 using sparc crypto opcodes.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@davemloft.net)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#define SHA256		\
-	.word	0x81b02840;
-
-	.text
-	.align	32
-ENTRY(__sha256_process_block_crop)
-	/* %o0=buffer, %o1=len, %o2=CTX */
-	ldx	[%o2 + 0x20], %g1
-	add	%g1, %o1, %g1
-	stx	%g1, [%o2 + 0x20]
-
-	ld	[%o2 + 0x00], %f0
-	ld	[%o2 + 0x04], %f1
-	ld	[%o2 + 0x08], %f2
-	ld	[%o2 + 0x0c], %f3
-	ld	[%o2 + 0x10], %f4
-	ld	[%o2 + 0x14], %f5
-	andcc	%o1, 0x7, %g0
-	ld	[%o2 + 0x18], %f6
-	bne,pn	%xcc, 10f
-	 ld	[%o2 + 0x1c], %f7
-
-1:
-	ldd	[%o0 + 0x00], %f8
-	ldd	[%o0 + 0x08], %f10
-	ldd	[%o0 + 0x10], %f12
-	ldd	[%o0 + 0x18], %f14
-	ldd	[%o0 + 0x20], %f16
-	ldd	[%o0 + 0x28], %f18
-	ldd	[%o0 + 0x30], %f20
-	ldd	[%o0 + 0x38], %f22
-
-	SHA256
-
-	subcc	%o1, 0x40, %o1
-	bne,pt	%xcc, 1b
-	 add	%o0, 0x40, %o0
-
-5:
-	st	%f0, [%o2 + 0x00]
-	st	%f1, [%o2 + 0x04]
-	st	%f2, [%o2 + 0x08]
-	st	%f3, [%o2 + 0x0c]
-	st	%f4, [%o2 + 0x10]
-	st	%f5, [%o2 + 0x14]
-	st	%f6, [%o2 + 0x18]
-	retl
-	 st	%f7, [%o2 + 0x1c]
-10:
-	alignaddr %o0, %g0, %o0
-
-	ldd	[%o0 + 0x00], %f10
-1:
-	ldd	[%o0 + 0x08], %f12
-	ldd	[%o0 + 0x10], %f14
-	ldd	[%o0 + 0x18], %f16
-	ldd	[%o0 + 0x20], %f18
-	ldd	[%o0 + 0x28], %f20
-	ldd	[%o0 + 0x30], %f22
-	ldd	[%o0 + 0x38], %f24
-	ldd	[%o0 + 0x40], %f26
-
-	faligndata %f10, %f12, %f8
-	faligndata %f12, %f14, %f10
-	faligndata %f14, %f16, %f12
-	faligndata %f16, %f18, %f14
-	faligndata %f18, %f20, %f16
-	faligndata %f20, %f22, %f18
-	faligndata %f22, %f24, %f20
-	faligndata %f24, %f26, %f22
-
-	SHA256
-
-	subcc	%o1, 0x40, %o1
-	fsrc2	%f26, %f10
-	bne,pt	%xcc, 1b
-	 add	%o0, 0x40, %o0
-
-	ba,a,pt	%xcc, 5b
-END(__sha256_process_block_crop)
diff --git a/sysdeps/sparc/sparc64/multiarch/sha512-block.c b/sysdeps/sparc/sparc64/multiarch/sha512-block.c
deleted file mode 100644
index 2863e05d09..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/sha512-block.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <sparc-ifunc.h>
-
-#define __sha512_process_block __sha512_process_block_generic
-extern void __sha512_process_block_generic (const void *buffer, size_t len,
-					    struct sha512_ctx *ctx);
-
-#include <crypt/sha512-block.c>
-
-#undef __sha512_process_block
-
-extern void __sha512_process_block_crop (const void *buffer, size_t len,
-					 struct sha512_ctx *ctx);
-
-static bool cpu_supports_sha512(int hwcap)
-{
-  unsigned long cfr;
-
-  if (!(hwcap & HWCAP_SPARC_CRYPTO))
-    return false;
-
-  __asm__ ("rd %%asr26, %0" : "=r" (cfr));
-  if (cfr & (1 << 6))
-    return true;
-
-  return false;
-}
-
-extern void __sha512_process_block (const void *buffer, size_t len,
-				    struct sha512_ctx *ctx);
-sparc_libc_ifunc (__sha512_process_block,
-		  cpu_supports_sha512(hwcap) ? __sha512_process_block_crop
-		    : __sha512_process_block_generic);
diff --git a/sysdeps/sparc/sparc64/multiarch/sha512-crop.S b/sysdeps/sparc/sparc64/multiarch/sha512-crop.S
deleted file mode 100644
index f78354c485..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/sha512-crop.S
+++ /dev/null
@@ -1,131 +0,0 @@
-/* SHA512 using sparc crypto opcodes.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller (davem@davemloft.net)
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-#define SHA512		\
-	.word	0x81b02860;
-
-	.text
-	.align	32
-ENTRY(__sha512_process_block_crop)
-	/* %o0=buffer, %o1=len, %o2=CTX */
-	ldx	[%o2 + 0x48], %g1
-	add	%g1, %o1, %o4
-	stx	%o4, [%o2 + 0x48]
-	cmp	%o4, %g1
-	bgeu,pt	%xcc, 1f
-	 nop
-	ldx	[%o2 + 0x40], %g1
-	add	%g1, 1, %g1
-	stx	%g1, [%o2 + 0x40]
-
-1:	ldd	[%o2 + 0x00], %f0
-	ldd	[%o2 + 0x08], %f2
-	ldd	[%o2 + 0x10], %f4
-	ldd	[%o2 + 0x18], %f6
-	ldd	[%o2 + 0x20], %f8
-	ldd	[%o2 + 0x28], %f10
-	andcc	%o1, 0x7, %g0
-	ldd	[%o2 + 0x30], %f12
-	bne,pn	%xcc, 10f
-	 ldd	[%o2 + 0x38], %f14
-
-1:
-	ldd	[%o0 + 0x00], %f16
-	ldd	[%o0 + 0x08], %f18
-	ldd	[%o0 + 0x10], %f20
-	ldd	[%o0 + 0x18], %f22
-	ldd	[%o0 + 0x20], %f24
-	ldd	[%o0 + 0x28], %f26
-	ldd	[%o0 + 0x30], %f28
-	ldd	[%o0 + 0x38], %f30
-	ldd	[%o0 + 0x40], %f32
-	ldd	[%o0 + 0x48], %f34
-	ldd	[%o0 + 0x50], %f36
-	ldd	[%o0 + 0x58], %f38
-	ldd	[%o0 + 0x60], %f40
-	ldd	[%o0 + 0x68], %f42
-	ldd	[%o0 + 0x70], %f44
-	ldd	[%o0 + 0x78], %f46
-
-	SHA512
-
-	subcc	%o1, 0x80, %o1
-	bne,pt	%xcc, 1b
-	 add	%o0, 0x80, %o0
-
-5:
-	std	%f0, [%o2 + 0x00]
-	std	%f2, [%o2 + 0x08]
-	std	%f4, [%o2 + 0x10]
-	std	%f6, [%o2 + 0x18]
-	std	%f8, [%o2 + 0x20]
-	std	%f10, [%o2 + 0x28]
-	std	%f12, [%o2 + 0x30]
-	retl
-	 std	%f14, [%o2 + 0x38]
-10:
-	alignaddr %o0, %g0, %o0
-
-	ldd	[%o0 + 0x00], %f18
-1:
-	ldd	[%o0 + 0x08], %f20
-	ldd	[%o0 + 0x10], %f22
-	ldd	[%o0 + 0x18], %f24
-	ldd	[%o0 + 0x20], %f26
-	ldd	[%o0 + 0x28], %f28
-	ldd	[%o0 + 0x30], %f30
-	ldd	[%o0 + 0x38], %f32
-	ldd	[%o0 + 0x40], %f34
-	ldd	[%o0 + 0x48], %f36
-	ldd	[%o0 + 0x50], %f38
-	ldd	[%o0 + 0x58], %f40
-	ldd	[%o0 + 0x60], %f42
-	ldd	[%o0 + 0x68], %f44
-	ldd	[%o0 + 0x70], %f46
-	ldd	[%o0 + 0x78], %f48
-	ldd	[%o0 + 0x80], %f50
-
-	faligndata %f18, %f20, %f16
-	faligndata %f20, %f22, %f18
-	faligndata %f22, %f24, %f20
-	faligndata %f24, %f26, %f22
-	faligndata %f26, %f28, %f24
-	faligndata %f28, %f30, %f26
-	faligndata %f30, %f32, %f28
-	faligndata %f32, %f34, %f30
-	faligndata %f34, %f36, %f32
-	faligndata %f36, %f38, %f34
-	faligndata %f38, %f40, %f36
-	faligndata %f40, %f42, %f38
-	faligndata %f42, %f44, %f40
-	faligndata %f44, %f46, %f42
-	faligndata %f46, %f48, %f44
-	faligndata %f48, %f50, %f46
-
-	SHA512
-
-	subcc	%o1, 0x80, %o1
-	fsrc2	%f50, %f18
-	bne,pt	%xcc, 1b
-	 add	%o0, 0x80, %o0
-
-	ba,a,pt	%xcc, 5b
-END(__sha512_process_block_crop)
diff --git a/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S b/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S
deleted file mode 100644
index 2d2a75dff8..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S
+++ /dev/null
@@ -1,71 +0,0 @@
-! SPARC v9 64-bit VIS3 __mpn_sub_n -- Subtract two limb vectors of the same length > 0
-! and store difference in a third limb vector.
-!
-! Copyright (C) 2013-2017 Free Software Foundation, Inc.
-! This file is part of the GNU C Library.
-! Contributed by David S. Miller <davem@davemloft.net>
-!
-! The GNU C Library is free software; you can redistribute it and/or
-! modify it under the terms of the GNU Lesser General Public
-! License as published by the Free Software Foundation; either
-! version 2.1 of the License, or (at your option) any later version.
-!
-! The GNU C Library is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-! Lesser General Public License for more details.
-!
-! You should have received a copy of the GNU Lesser General Public
-! License along with the GNU C Library; if not, see
-! <http://www.gnu.org/licenses/>.
-
-#include <sysdep.h>
-
-#define res_ptr	%o0
-#define s1_ptr	%o1
-#define s2_ptr	%o2
-#define sz	%o3
-#define tmp1	%g1
-#define tmp2	%g2
-#define tmp3	%g3
-#define tmp4	%o4
-
-	.register	%g2,#scratch
-	.register	%g3,#scratch
-ENTRY(__mpn_sub_n_vis3)
-	subcc	sz, 1, sz
-	be	.Lfinal_limb
-	 cmp	%g0, 1
-
-.Lloop:
-	ldx	[s2_ptr + 0x00], tmp1
-	add	s2_ptr, 0x10, s2_ptr
-	ldx	[s1_ptr + 0x00], tmp2
-	add	s1_ptr, 0x10, s1_ptr
-	ldx	[s2_ptr - 0x08], tmp3
-	add	res_ptr, 0x10, res_ptr
-	ldx	[s1_ptr - 0x08], tmp4
-	sub	sz, 2, sz
-	xnor	tmp1, %g0, tmp1
-	addxccc	tmp1, tmp2, tmp1
-	stx	tmp1, [res_ptr - 0x10]
-	xnor	tmp3, %g0, tmp3
-	addxccc	tmp3, tmp4, tmp3
-	brgz	sz, .Lloop
-	stx	tmp3, [res_ptr - 0x08]
-
-	brlz,pt	sz, .Lfinish
-	 nop
-
-.Lfinal_limb:
-	ldx	[s2_ptr + 0x00], tmp1
-	ldx	[s1_ptr + 0x00], tmp2
-	xnor	tmp1, %g0, tmp1
-	addxccc	tmp1, tmp2, tmp1
-	stx	tmp1, [res_ptr + 0x00]
-
-.Lfinish:
-	clr	%o0
-	retl
-	 movcc	%xcc, 1, %o0
-END(__mpn_sub_n_vis3)
diff --git a/sysdeps/sparc/sparc64/multiarch/sub_n.S b/sysdeps/sparc/sparc64/multiarch/sub_n.S
deleted file mode 100644
index d20a286df1..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/sub_n.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Multiple versions of sub_n
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   Contributed by David S. Miller (davem@davemloft.net)
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY(__mpn_sub_n)
-	.type	__mpn_sub_n, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_VIS3, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_sub_n_vis3), %o1
-	xor	%o1, %gdop_lox10(__mpn_sub_n_vis3), %o1
-# else
-	set	__mpn_sub_n_vis3, %o1
-# endif
-	ba	10f
-	 nop
-1:
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_sub_n_generic), %o1
-	xor	%o1, %gdop_lox10(__mpn_sub_n_generic), %o1
-# else
-	set	__mpn_sub_n_generic, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(__mpn_sub_n)
-
-#define __mpn_sub_n __mpn_sub_n_generic
-#include "../sub_n.S"
diff --git a/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S b/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S
deleted file mode 100644
index 99644491e7..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S
+++ /dev/null
@@ -1,87 +0,0 @@
-! SPARC v9 64-bit VIS3 __mpn_submul_1 -- Multiply a limb vector with a
-! limb and subtract the result from a second limb vector.
-!
-! Copyright (C) 2013-2017 Free Software Foundation, Inc.
-! This file is part of the GNU C Library.
-! Contributed by David S. Miller <davem@davemloft.net>
-!
-! The GNU C Library is free software; you can redistribute it and/or
-! modify it under the terms of the GNU Lesser General Public
-! License as published by the Free Software Foundation; either
-! version 2.1 of the License, or (at your option) any later version.
-!
-! The GNU C Library is distributed in the hope that it will be useful,
-! but WITHOUT ANY WARRANTY; without even the implied warranty of
-! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-! Lesser General Public License for more details.
-!
-! You should have received a copy of the GNU Lesser General Public
-! License along with the GNU C Library; if not, see
-! <http://www.gnu.org/licenses/>.
-
-#include <sysdep.h>
-
-#define res_ptr	%i0
-#define s1_ptr	%i1
-#define sz	%i2
-#define s2_limb	%i3
-#define carry	%o5
-#define tmp1	%g1
-#define tmp2	%g2
-#define tmp3	%g3
-#define tmp4	%o4
-#define tmp5	%l0
-#define tmp6	%l1
-#define tmp7	%l2
-#define tmp8	%l3
-
-	.register	%g2,#scratch
-	.register	%g3,#scratch
-ENTRY(__mpn_submul_1_vis3)
-	save	%sp, -176, %sp
-	subcc	sz, 1, sz
-	be	.Lfinal_limb
-	 clr	carry
-
-.Lloop:
-	ldx	[s1_ptr  + 0x00], tmp1
-	ldx	[res_ptr + 0x00], tmp3
-	ldx	[s1_ptr  + 0x08], tmp2
-	ldx	[res_ptr + 0x08], tmp4
-	mulx	tmp1, s2_limb, tmp5
-	add	s1_ptr, 0x10, s1_ptr
-	umulxhi	tmp1, s2_limb, tmp6
-	add	res_ptr, 0x10, res_ptr
-	mulx	tmp2, s2_limb, tmp7
-	sub	sz, 2, sz
-	umulxhi	tmp2, s2_limb, tmp8
-	addcc	carry, tmp5, tmp5
-	addxc	%g0, tmp6, carry
-	subcc	tmp3, tmp5, tmp5
-	addxc	%g0, carry, carry
-	stx	tmp5, [res_ptr - 0x10]
-	addcc	carry, tmp7, tmp7
-	addxc	%g0, tmp8, carry
-	subcc	tmp4, tmp7, tmp7
-	addxc	%g0, carry, carry
-	brgz	sz, .Lloop
-	 stx	tmp7, [res_ptr - 0x08]
-
-	brlz,pt	sz, .Lfinish
-	 nop
-
-.Lfinal_limb:
-	ldx	[s1_ptr  + 0x00], tmp1
-	ldx	[res_ptr + 0x00], tmp3
-	mulx	tmp1, s2_limb, tmp5
-	umulxhi	tmp1, s2_limb, tmp6
-	addcc	carry, tmp5, tmp5
-	addxc	%g0, tmp6, carry
-	subcc	tmp3, tmp5, tmp5
-	addxc	%g0, carry, carry
-	stx	tmp5, [res_ptr + 0x00]
-
-.Lfinish:
-	jmpl	%i7 + 8, %g0
-	 restore carry, 0, %o0
-END(__mpn_submul_1_vis3)
diff --git a/sysdeps/sparc/sparc64/multiarch/submul_1.S b/sysdeps/sparc/sparc64/multiarch/submul_1.S
deleted file mode 100644
index 3c297d989b..0000000000
--- a/sysdeps/sparc/sparc64/multiarch/submul_1.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Multiple versions of submul_1
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   Contributed by David S. Miller (davem@davemloft.net)
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY(__mpn_submul_1)
-	.type	__mpn_submul_1, @gnu_indirect_function
-# ifdef SHARED
-	SETUP_PIC_REG_LEAF(o3, o5)
-# endif
-	set	HWCAP_SPARC_VIS3, %o1
-	andcc	%o0, %o1, %g0
-	be	1f
-	 nop
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_submul_1_vis3), %o1
-	xor	%o1, %gdop_lox10(__mpn_submul_1_vis3), %o1
-# else
-	set	__mpn_submul_1_vis3, %o1
-# endif
-	ba	10f
-	 nop
-1:
-# ifdef SHARED
-	sethi	%gdop_hix22(__mpn_submul_1_generic), %o1
-	xor	%o1, %gdop_lox10(__mpn_submul_1_generic), %o1
-# else
-	set	__mpn_submul_1_generic, %o1
-# endif
-10:
-# ifdef SHARED
-	add	%o3, %o1, %o1
-# endif
-	retl
-	 mov	%o1, %o0
-END(__mpn_submul_1)
-
-#define __mpn_submul_1 __mpn_submul_1_generic
-#include "../submul_1.S"
diff --git a/sysdeps/sparc/sparc64/pthread_spin_init.c b/sysdeps/sparc/sparc64/pthread_spin_init.c
deleted file mode 100644
index 58319ab62d..0000000000
--- a/sysdeps/sparc/sparc64/pthread_spin_init.c
+++ /dev/null
@@ -1 +0,0 @@
-/* pthread_spin_init is in pthread_spin_unlock.S */
diff --git a/sysdeps/sparc/sparc64/pthread_spin_lock.S b/sysdeps/sparc/sparc64/pthread_spin_lock.S
deleted file mode 100644
index 0f41ccf4d5..0000000000
--- a/sysdeps/sparc/sparc64/pthread_spin_lock.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	.text
-ENTRY(pthread_spin_lock)
-1:	ldstub		[%o0], %g1
-	brnz,pn		%g1, 2f
-	 membar		#StoreLoad | #StoreStore
-	retl
-	 mov		0, %o0
-2:	ldub		[%o0], %g1
-	brnz,pt		%g1, 2b
-	 membar		#LoadLoad
-	ba,a,pt		%xcc, 1b
-END(pthread_spin_lock)
diff --git a/sysdeps/sparc/sparc64/pthread_spin_trylock.S b/sysdeps/sparc/sparc64/pthread_spin_trylock.S
deleted file mode 100644
index fa05cf8fdb..0000000000
--- a/sysdeps/sparc/sparc64/pthread_spin_trylock.S
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <pthread-errnos.h>
-
-	.text
-ENTRY(pthread_spin_trylock)
-	ldstub		[%o0], %o0
-	membar		#StoreLoad | #StoreStore
-	retl
-	 movrnz		%o0, EBUSY, %o0
-END(pthread_spin_trylock)
diff --git a/sysdeps/sparc/sparc64/pthread_spin_unlock.S b/sysdeps/sparc/sparc64/pthread_spin_unlock.S
deleted file mode 100644
index c82f05d538..0000000000
--- a/sysdeps/sparc/sparc64/pthread_spin_unlock.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	.text
-ENTRY(pthread_spin_unlock)
-	membar		#StoreStore | #LoadStore
-	stb		%g0, [%o0]
-	retl
-	 clr		%o0
-END(pthread_spin_unlock)
-
-strong_alias (pthread_spin_unlock, pthread_spin_init)
diff --git a/sysdeps/sparc/sparc64/pthreaddef.h b/sysdeps/sparc/sparc64/pthreaddef.h
deleted file mode 100644
index df81791a65..0000000000
--- a/sysdeps/sparc/sparc64/pthreaddef.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Default stack size.  */
-#define ARCH_STACK_DEFAULT_SIZE	(4 * 1024 * 1024)
-
-/* Required stack pointer alignment at beginning.  */
-#define STACK_ALIGN		16
-
-/* Minimal stack size after allocating thread descriptor and guard size.  */
-#define MINIMAL_REST_STACK	4096
-
-/* Alignment requirement for TCB.  */
-#define TCB_ALIGNMENT		16
-
-
-/* Location of current stack frame.  */
-#define CURRENT_STACK_FRAME  (stack_pointer + (2 * 128))
-register char *stack_pointer __asm__("%sp");
diff --git a/sysdeps/sparc/sparc64/rawmemchr.S b/sysdeps/sparc/sparc64/rawmemchr.S
deleted file mode 100644
index d3e7b5d4b4..0000000000
--- a/sysdeps/sparc/sparc64/rawmemchr.S
+++ /dev/null
@@ -1,178 +0,0 @@
-/* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
-   For SPARC v9.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz>.
-   This version is developed using the same algorithm as the fast C
-   version which carries the following introduction:
-   Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
-   with help from Dan Sahlin (dan@sics.se) and
-   commentary by Jim Blandy (jimb@ai.mit.edu);
-   adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
-   and implemented by Roland McGrath (roland@ai.mit.edu).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define USE_BPR
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-#endif
-
-	/* Normally, this uses
-	   ((xword - 0x0101010101010101) & 0x8080808080808080) test
-	   to find out if any byte in xword could be zero. This is fast, but
-	   also gives false alarm for any byte in range 0x81-0xff. It does
-	   not matter for correctness, as if this test tells us there could
-	   be some zero byte, we check it byte by byte, but if bytes with
-	   high bits set are common in the strings, then this will give poor
-	   performance. You can #define EIGHTBIT_NOT_RARE and the algorithm
-	   will use one tick slower, but more precise test
-	   ((xword - 0x0101010101010101) & (~xword) & 0x8080808080808080),
-	   which does not give any false alarms (but if some bits are set,
-	   one cannot assume from it which bytes are zero and which are not).
-	   It is yet to be measured, what is the correct default for glibc
-	   in these days for an average user.
-	 */
-
-	.text
-	.align		32
-ENTRY(__rawmemchr)
-	and		%o1, 0xff, %o1			/* IEU0		Group		*/
-	sethi		%hi(0x01010101), %g1		/* IEU1				*/
-	ldub		[%o0], %o3			/* Load				*/
-	sll		%o1, 8, %o4			/* IEU0		Group		*/
-
-	or		%g1, %lo(0x01010101), %g1	/* IEU1				*/
-	sllx		%g1, 32, %g2			/* IEU0		Group		*/
-	or		%o4, %o1, %o4			/* IEU1				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-
-	sll		%o4, 16, %g5			/* IEU0				*/
-	or		%o4, %g5, %o4			/* IEU0		Group		*/
-	or		%g1, %g2, %g1			/* IEU1				*/
-	bne,pn		%icc, 32f			/* CTI				*/
-
-	 sllx		%o4, 32, %g5			/* IEU0		Group		*/
-	cmp		%o3, %o1			/* IEU1				*/
-	be,pn		%icc, 30f			/* CTI				*/
-	 sllx		%g1, 7, %g2			/* IEU0		Group		*/
-
-18:	ldx		[%o0], %o3			/* Load				*/
-	or		%o4, %g5, %o4			/* IEU1				*/
-	add		%o0, 8, %o0			/* IEU0		Group		*/
-19:	xor		%o3, %o4, %o3			/* IEU0		Group		*/
-
-	sub		%o3, %g1, %o2			/* IEU0		Group		*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o2, %o3, %o5			/* IEU0		Group		*/
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%o5, %g2, %g0			/* IEU1		Group		*/
-#else
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%o2, %g2, %g0			/* IEU1		Group		*/
-#endif
-	be,pt		%xcc, 19b			/* CTI				*/
-
-	 add		%o0, 8, %o0			/* IEU0				*/
- 	addcc		%o2, %g1, %g3			/* IEU1		Group		*/
-	srlx		%o2, 32, %o2			/* IEU0				*/
-20:	andcc		%o2, %g2, %g0			/* IEU1		Group		*/
-
-	be,pn		%xcc, 21f			/* CTI				*/
-	 srlx		%g3, 56, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 29f			/* CTI				*/
-
-	 srlx		%g3, 48, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 28f			/* CTI				*/
-	 srlx		%g3, 40, %o2			/* IEU0				*/
-
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 27f			/* CTI				*/
-	 srlx		%g3, 32, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 26f			/* CTI				*/
-21:	 srlx		%g3, 24, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 25f			/* CTI				*/
-
-	 srlx		%g3, 16, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 24f			/* CTI				*/
-	 srlx		%g3, 8, %o2			/* IEU0				*/
-
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 23f			/* CTI				*/
-	 xor		%o3, %o4, %o3			/* IEU0				*/
-	andcc		%g3, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 22f			/* CTI				*/
-	 sub		%o3, %g1, %o2			/* IEU0				*/
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%o2, %g2, %g0			/* IEU1		Group		*/
-
-	be,pt		%xcc, 19b			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU0				*/
-	addcc		%o2, %g1, %g3			/* IEU1		Group		*/
-	ba,pt		%xcc, 20b			/* CTI				*/
-
-	 srlx		%o2, 32, %o2			/* IEU0				*/
-
-	.align		16
-22:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -9, %o0			/* IEU0				*/
-23:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -10, %o0			/* IEU0				*/
-
-24:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -11, %o0			/* IEU0				*/
-25:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -12, %o0			/* IEU0				*/
-
-26:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -13, %o0			/* IEU0				*/
-27:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -14, %o0			/* IEU0				*/
-
-28:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -15, %o0			/* IEU0				*/
-29:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -16, %o0			/* IEU0				*/
-
-30:	retl						/* CTI+IEU1	Group		*/
-	 nop						/* IEU0				*/
-
-	.align		16
-32:	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	be,a,pn		%icc, 18b			/* CTI				*/
-	 sllx		%g1, 7, %g2			/* IEU0				*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-
-	cmp		%o3, %o1			/* IEU1				*/
-	bne,a,pt	%icc, 32b			/* CTI				*/
-	 lduba		[%o0] ASI_PNF, %o3		/* Load				*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 add		%o0, -1, %o0			/* IEU0				*/
-END(__rawmemchr)
-
-libc_hidden_def (__rawmemchr)
-weak_alias (__rawmemchr, rawmemchr)
diff --git a/sysdeps/sparc/sparc64/rshift.S b/sysdeps/sparc/sparc64/rshift.S
deleted file mode 100644
index f9319f2ec7..0000000000
--- a/sysdeps/sparc/sparc64/rshift.S
+++ /dev/null
@@ -1,92 +0,0 @@
-/* SPARC v9 __mpn_rshift --
-
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
-
-   This file is part of the GNU MP Library.
-
-   The GNU MP Library is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 2.1 of the License, or (at your
-   option) any later version.
-
-   The GNU MP Library is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-   License for more details.
-
-   You should have received a copy of the GNU Lesser General Public License
-   along with the GNU MP Library; see the file COPYING.LIB.  If not,
-   see <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-/* INPUT PARAMETERS
-   res_ptr	%o0
-   src_ptr	%o1
-   size		%o2
-   cnt		%o3  */
-
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-
-ENTRY(__mpn_rshift)
-	ldx	[%o1],%g2	! load first limb
-	sub	%g0,%o3,%o5	! negate shift count
-	add	%o2,-1,%o2
-	andcc	%o2,4-1,%g4	! number of limbs in first loop
-	sllx	%g2,%o5,%g1	! compute function result
-	be,pn	%xcc,.L0	! if multiple of 4 limbs, skip first loop
-	 mov	%g1,%g5
-
-	sub	%o2,%g4,%o2	! adjust count for main loop
-
-.Loop0:	ldx	[%o1+8],%g3
-	add	%o0,8,%o0
-	add	%o1,8,%o1
-	srlx	%g2,%o3,%o4
-	addcc	%g4,-1,%g4
-	sllx	%g3,%o5,%g1
-	mov	%g3,%g2
-	or	%o4,%g1,%o4
-	bne,pt	%xcc,.Loop0
-	 stx	%o4,[%o0-8]
-
-.L0:	brz,pn	%o2,.Lend
-	 nop
-
-.Loop:	ldx	[%o1+8],%g3
-	add	%o0,32,%o0
-	srlx	%g2,%o3,%o4
-	addcc	%o2,-4,%o2
-	sllx	%g3,%o5,%g1
-
-	ldx	[%o1+16],%g2
-	srlx	%g3,%o3,%g4
-	or	%o4,%g1,%o4
-	stx	%o4,[%o0-32]
-	sllx	%g2,%o5,%g1
-
-	ldx	[%o1+24],%g3
-	srlx	%g2,%o3,%o4
-	or	%g4,%g1,%g4
-	stx	%g4,[%o0-24]
-	sllx	%g3,%o5,%g1
-
-	ldx	[%o1+32],%g2
-	srlx	%g3,%o3,%g4
-	or	%o4,%g1,%o4
-	stx	%o4,[%o0-16]
-	sllx	%g2,%o5,%g1
-
-	add	%o1,32,%o1
-	or	%g4,%g1,%g4
-	bne,pt	%xcc,.Loop
-	 stx	%g4,[%o0-8]
-
-.Lend:	srlx	%g2,%o3,%g2
-	stx	%g2,[%o0-0]
-
-	jmpl	%o7+8,%g0
-	 mov	%g5,%o0
-
-END(__mpn_rshift)
diff --git a/sysdeps/sparc/sparc64/rtld-memcpy.c b/sysdeps/sparc/sparc64/rtld-memcpy.c
deleted file mode 100644
index 52f8302f08..0000000000
--- a/sysdeps/sparc/sparc64/rtld-memcpy.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define NO_MEMPCPY_STPCPY_REDIRECT
-#include <string/memcpy.c>
-#include <string/mempcpy.c>
diff --git a/sysdeps/sparc/sparc64/rtld-memset.c b/sysdeps/sparc/sparc64/rtld-memset.c
deleted file mode 100644
index 55f3835790..0000000000
--- a/sysdeps/sparc/sparc64/rtld-memset.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <string/memset.c>
diff --git a/sysdeps/sparc/sparc64/soft-fp/Makefile b/sysdeps/sparc/sparc64/soft-fp/Makefile
deleted file mode 100644
index b145df283b..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-#  Software floating-point emulation.
-#  Makefile for SPARC v9 ABI mandated long double utility
-#  functions (_Qp_*).
-#  Copyright (C) 1999-2017 Free Software Foundation, Inc.
-#  This file is part of the GNU C Library.
-#  Contributed by Jakub Jelinek (jj@ultra.linux.cz).
-#
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-ifeq ($(subdir),soft-fp)
-sparc64-quad-routines := qp_add qp_cmp qp_cmpe qp_div qp_dtoq qp_feq qp_fge \
-	qp_fgt qp_fle qp_flt qp_fne qp_itoq qp_mul qp_neg qp_qtod qp_qtoi   \
-	qp_qtos qp_qtoui qp_qtoux qp_qtox qp_sqrt qp_stoq qp_sub qp_uitoq   \
-	qp_uxtoq qp_xtoq qp_util
-sysdep_routines += $(sparc64-quad-routines)
-endif
-
-ifeq ($(subdir),math)
-CPPFLAGS += -I../soft-fp/
-endif
diff --git a/sysdeps/sparc/sparc64/soft-fp/Versions b/sysdeps/sparc/sparc64/soft-fp/Versions
deleted file mode 100644
index 9e89c3c3ef..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/Versions
+++ /dev/null
@@ -1,8 +0,0 @@
-libc {
-  GLIBC_2.2 {
-    _Qp_add; _Qp_cmp; _Qp_cmpe; _Qp_div; _Qp_dtoq; _Qp_feq; _Qp_fge; _Qp_fgt;
-    _Qp_fle; _Qp_flt; _Qp_fne; _Qp_itoq; _Qp_mul; _Qp_neg; _Qp_qtod; _Qp_qtoi;
-    _Qp_qtos; _Qp_qtoui; _Qp_qtoux; _Qp_qtox; _Qp_sqrt; _Qp_stoq; _Qp_sub;
-    _Qp_uitoq; _Qp_uxtoq; _Qp_xtoq;
-  }
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/e_ilogbl.c b/sysdeps/sparc/sparc64/soft-fp/e_ilogbl.c
deleted file mode 100644
index 5b19d12a4e..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/e_ilogbl.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Software floating-point emulation.
-   ilogbl(x, exp)
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* ilogbl(long double x)
- * return the binary exponent of non-zero x
- * ilogbl(0) = 0x80000001
- * ilogbl(inf/NaN) = 0x7fffffff (no signal is raised)
- */
-
-#include "soft-fp.h"
-#include "quad.h"
-#include <math.h>
-
-int __ieee754_ilogbl (long double x)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(X);
-
-/*
-  FP_UNPACK_Q(X, x);
-  switch (X_c)
-    {
-    case FP_CLS_ZERO:
-      return FP_ILOGB0;
-    case FP_CLS_NAN:
-    case FP_CLS_INF:
-      return FP_ILOGBNAN;
-    default:
-      return X_e;
-    }
- */
-  FP_UNPACK_RAW_Q(X, x);
-  switch (X_e)
-    {
-    default:
-      return X_e - _FP_EXPBIAS_Q;
-    case 0:
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
-      if (_FP_FRAC_ZEROP_4(X))
-	return FP_ILOGB0;
-      else
-	{
-	  _FP_I_TYPE shift;
-	  _FP_FRAC_CLZ_4(shift, X);
-	  shift -= _FP_FRACXBITS_Q;
-	  return X_e - _FP_EXPBIAS_Q - 1 + shift;
-	}
-#else
-      if (_FP_FRAC_ZEROP_2(X))
-	return FP_ILOGB0;
-      else
-	{
-	  _FP_I_TYPE shift;
-	  _FP_FRAC_CLZ_2(shift, X);
-	  shift -= _FP_FRACXBITS_Q;
-	  return X_e - _FP_EXPBIAS_Q - 1 + shift;
-	}
-#endif
-    case _FP_EXPBIAS_Q:
-      return FP_ILOGBNAN;
-    }
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_add.c b/sysdeps/sparc/sparc64/soft-fp/qp_add.c
deleted file mode 100644
index a67deab315..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_add.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (*a) + (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-void _Qp_add(long double *c, const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(C);
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_SEMIRAW_QP(A, a);
-  FP_UNPACK_SEMIRAW_QP(B, b);
-  FP_ADD_Q(C, A, B);
-  FP_PACK_SEMIRAW_QP(c, C);
-  QP_HANDLE_EXCEPTIONS(__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	ldd [%2], %%f56\n"
-"	ldd [%2+8], %%f58\n"
-"	faddq %%f52, %%f56, %%f60\n"
-"	std %%f60, [%0]\n"
-"	std %%f62, [%0+8]\n"
-"	" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_cmp.c b/sysdeps/sparc/sparc64/soft-fp/qp_cmp.c
deleted file mode 100644
index 5316157ec7..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_cmp.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Software floating-point emulation.
-   Compare (*a) and (*b), return float condition code.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-int _Qp_cmp(const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B);
-  int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_UNPACK_RAW_QP(B, b);
-  FP_CMP_Q(r, B, A, 3, 1);
-  if (r == -1) r = 2;
-  QP_HANDLE_EXCEPTIONS(
-	__asm (
-"	ldd [%0], %%f52\n"
-"	ldd [%0+8], %%f54\n"
-"	ldd [%1], %%f56\n"
-"	ldd [%1+8], %%f58\n"
-"	fcmpq %%fcc3, %%f52, %%f56\n"
-"	" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
-	_FPU_GETCW(_fcw);
-	r = ((_fcw >> 36) & 3));
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c b/sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c
deleted file mode 100644
index e0a834c721..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Software floating-point emulation.
-   Compare (*a) and (*b), return float condition code.
-   Signal exception (unless masked) if unordered.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-int _Qp_cmpe(const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B);
-  int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_UNPACK_RAW_QP(B, b);
-  FP_CMP_Q(r, B, A, 3, 2);
-  if (r == -1) r = 2;
-  QP_HANDLE_EXCEPTIONS(
-	__asm (
-"	ldd [%0], %%f52\n"
-"	ldd [%0+8], %%f54\n"
-"	ldd [%1], %%f56\n"
-"	ldd [%1+8], %%f58\n"
-"	fcmpeq %%fcc3, %%f52, %%f56\n"
-"	" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
-	_FPU_GETCW(_fcw);
-	r = ((_fcw >> 36) & 3));
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_div.c b/sysdeps/sparc/sparc64/soft-fp/qp_div.c
deleted file mode 100644
index 27d08f94dc..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_div.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (*a) / (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-void _Qp_div(long double *c, const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(C);
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_QP(A, a);
-  FP_UNPACK_QP(B, b);
-  FP_DIV_Q(C, A, B);
-  FP_PACK_QP(c, C);
-  QP_HANDLE_EXCEPTIONS(__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	ldd [%2], %%f56\n"
-"	ldd [%2+8], %%f58\n"
-"	fdivq %%f52, %%f56, %%f60\n"
-"	std %%f60, [%0]\n"
-"	std %%f62, [%0+8]\n"
-"	" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c b/sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c
deleted file mode 100644
index 5a5c43b13c..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (long double)(a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "double.h"
-#include "quad.h"
-
-void _Qp_dtoq(long double *c, const double a)
-{
-  FP_DECL_EX;
-  FP_DECL_D(A);
-  FP_DECL_Q(C);
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_D(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
-  FP_EXTEND(Q,D,4,2,C,A);
-#else
-  FP_EXTEND(Q,D,2,1,C,A);
-#endif
-  FP_PACK_RAW_QP(c, C);
-  QP_HANDLE_EXCEPTIONS(__asm (
-"	fdtoq %1, %%f60\n"
-"	std %%f60, [%0]\n"
-"	std %%f62, [%0+8]\n"
-"	" : : "r" (c), "e" (a) : QP_CLOBBER));
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_feq.c b/sysdeps/sparc/sparc64/soft-fp/qp_feq.c
deleted file mode 100644
index c7c6263782..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_feq.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Software floating-point emulation.
-   Return 1 if (*a) == (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-int _Qp_feq(const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B);
-  int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_UNPACK_RAW_QP(B, b);
-  FP_CMP_EQ_Q(r, A, B, 1);
-
-  QP_HANDLE_EXCEPTIONS(
-	__asm (
-"	ldd [%0], %%f52\n"
-"	ldd [%0+8], %%f54\n"
-"	ldd [%1], %%f56\n"
-"	ldd [%1+8], %%f58\n"
-"	fcmpq %%fcc3, %%f52, %%f56\n"
-"	" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
-	_FPU_GETCW(_fcw);
-	r = ((_fcw >> 36) & 3));
-
-  return !r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_fge.c b/sysdeps/sparc/sparc64/soft-fp/qp_fge.c
deleted file mode 100644
index 19cacbb342..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_fge.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Software floating-point emulation.
-   Return 1 if (*a) >= (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-int _Qp_fge(const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B);
-  int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_UNPACK_RAW_QP(B, b);
-  FP_CMP_Q(r, B, A, 3, 2);
-
-  QP_HANDLE_EXCEPTIONS(
-	__asm (
-"	ldd [%0], %%f52\n"
-"	ldd [%0+8], %%f54\n"
-"	ldd [%1], %%f56\n"
-"	ldd [%1+8], %%f58\n"
-"	fcmpeq %%fcc3, %%f52, %%f56\n"
-"	" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
-	_FPU_GETCW(_fcw);
-	r = ((_fcw >> 36) & 1));
-
-  return (r <= 0);
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_fgt.c b/sysdeps/sparc/sparc64/soft-fp/qp_fgt.c
deleted file mode 100644
index 70645d1cba..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_fgt.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Software floating-point emulation.
-   Return 1 if (*a) > (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-int _Qp_fgt(const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B);
-  int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_UNPACK_RAW_QP(B, b);
-  FP_CMP_Q(r, B, A, 3, 2);
-
-  QP_HANDLE_EXCEPTIONS(
-	__asm (
-"	ldd [%0], %%f52\n"
-"	ldd [%0+8], %%f54\n"
-"	ldd [%1], %%f56\n"
-"	ldd [%1+8], %%f58\n"
-"	fcmpeq %%fcc3, %%f52, %%f56\n"
-"	" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
-	_FPU_GETCW(_fcw);
-	r = ((_fcw >> 36) & 3) - 3);
-
-  return (r == -1);
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_fle.c b/sysdeps/sparc/sparc64/soft-fp/qp_fle.c
deleted file mode 100644
index 6293fcbcda..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_fle.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Software floating-point emulation.
-   Return 1 if (*a) <= (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-int _Qp_fle(const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B);
-  int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_UNPACK_RAW_QP(B, b);
-  FP_CMP_Q(r, B, A, -2, 2);
-
-  QP_HANDLE_EXCEPTIONS(
-	__asm (
-"	ldd [%0], %%f52\n"
-"	ldd [%0+8], %%f54\n"
-"	ldd [%1], %%f56\n"
-"	ldd [%1+8], %%f58\n"
-"	fcmpeq %%fcc3, %%f52, %%f56\n"
-"	" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
-	_FPU_GETCW(_fcw);
-	r = ((_fcw >> 36) & 2) ? -1 : 0);
-
-  return (r >= 0);
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_flt.c b/sysdeps/sparc/sparc64/soft-fp/qp_flt.c
deleted file mode 100644
index 7aa054697a..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_flt.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Software floating-point emulation.
-   Return 1 if (*a) < (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-int _Qp_flt(const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B);
-  int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_UNPACK_RAW_QP(B, b);
-  FP_CMP_Q(r, B, A, 3, 2);
-
-  QP_HANDLE_EXCEPTIONS(
-	__asm (
-"	ldd [%0], %%f52\n"
-"	ldd [%0+8], %%f54\n"
-"	ldd [%1], %%f56\n"
-"	ldd [%1+8], %%f58\n"
-"	fcmpeq %%fcc3, %%f52, %%f56\n"
-"	" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
-	_FPU_GETCW(_fcw);
-	r = ((_fcw >> 36) & 3));
-
-  return (r == 1);
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_fne.c b/sysdeps/sparc/sparc64/soft-fp/qp_fne.c
deleted file mode 100644
index dd358eda0a..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_fne.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Software floating-point emulation.
-   Return 1 if (*a) != (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-int _Qp_fne(const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B);
-  int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_UNPACK_RAW_QP(B, b);
-  FP_CMP_EQ_Q(r, A, B, 1);
-
-  QP_HANDLE_EXCEPTIONS(
-	__asm (
-"	ldd [%0], %%f52\n"
-"	ldd [%0+8], %%f54\n"
-"	ldd [%1], %%f56\n"
-"	ldd [%1+8], %%f58\n"
-"	fcmpq %%fcc3, %%f52, %%f56\n"
-"	" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
-	_FPU_GETCW(_fcw);
-	r = ((_fcw >> 36) & 3) != 0);
-
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_itoq.c b/sysdeps/sparc/sparc64/soft-fp/qp_itoq.c
deleted file mode 100644
index 230fde365f..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_itoq.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (long double)(a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-void _Qp_itoq(long double *c, const int a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(C);
-  int b = a;
-
-  FP_FROM_INT_Q(C, b, 32, unsigned int);
-  FP_PACK_RAW_QP(c, C);
-  QP_NO_EXCEPTIONS;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_mul.c b/sysdeps/sparc/sparc64/soft-fp/qp_mul.c
deleted file mode 100644
index 49a290af93..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_mul.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (*a) * (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* As QP_HANDLE_EXCEPTIONS reloads FPU control word anyway,
-   avoid doing it twice.  */
-#define _FP_MUL_MEAT_RESET_FE do {} while (0)
-#include "soft-fp.h"
-#include "quad.h"
-
-void _Qp_mul(long double *c, const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(C);
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_QP(A, a);
-  FP_UNPACK_QP(B, b);
-  FP_MUL_Q(C, A, B);
-  FP_PACK_QP(c, C);
-  QP_HANDLE_EXCEPTIONS(
-	_FPU_SETCW(_fcw);
-	__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	ldd [%2], %%f56\n"
-"	ldd [%2+8], %%f58\n"
-"	fmulq %%f52, %%f56, %%f60\n"
-"	std %%f60, [%0]\n"
-"	std %%f62, [%0+8]\n"
-"	" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_neg.S b/sysdeps/sparc/sparc64/soft-fp/qp_neg.S
deleted file mode 100644
index d2fd7f286f..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_neg.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Quad floating-point emulation.
-   (*c) = !(*a)
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-ENTRY(_Qp_neg)
-	ldd	[%o1], %f60
-	ldd	[%o1 + 8], %f62
-	fnegd	%f60, %f60
-	std	%f60, [%o0]
-	jmpl	%o7 + 8, %g0
-	 std	%f62, [%o0 + 8]
-END(_Qp_neg)
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_qtod.c b/sysdeps/sparc/sparc64/soft-fp/qp_qtod.c
deleted file mode 100644
index 7c3889da97..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_qtod.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Software floating-point emulation.
-   Return (double)(*a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "double.h"
-#include "quad.h"
-
-double _Qp_qtod(const long double *a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A);
-  FP_DECL_D(R);
-  double r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_SEMIRAW_QP(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
-  FP_TRUNC(D,Q,2,4,R,A);
-#else
-  FP_TRUNC(D,Q,1,2,R,A);
-#endif
-  FP_PACK_SEMIRAW_D(r, R);
-  QP_HANDLE_EXCEPTIONS(__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	fqtod %%f52, %0\n"
-"	" : "=&e" (r) : "r" (a) : QP_CLOBBER));
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c b/sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c
deleted file mode 100644
index 99cd760acd..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Software floating-point emulation.
-   Return (int)(*a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define FP_ROUNDMODE FP_RND_ZERO
-#include "soft-fp.h"
-#include "quad.h"
-
-int _Qp_qtoi(const long double *a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A);
-  unsigned int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_TO_INT_Q(r, A, 32, 1);
-  QP_HANDLE_EXCEPTIONS(
-	int rx;
-	__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	fqtoi %%f52, %%f31\n"
-"	st %%f31, [%0]\n"
-"	" : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
-	r = rx);
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_qtos.c b/sysdeps/sparc/sparc64/soft-fp/qp_qtos.c
deleted file mode 100644
index dacd6c0620..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_qtos.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Software floating-point emulation.
-   Return (float)(*a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "single.h"
-#include "quad.h"
-
-float _Qp_qtos(const long double *a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A);
-  FP_DECL_S(R);
-  float r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_SEMIRAW_QP(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
-  FP_TRUNC(S,Q,1,4,R,A);
-#else
-  FP_TRUNC(S,Q,1,2,R,A);
-#endif
-  FP_PACK_SEMIRAW_S(r, R);
-
-  QP_HANDLE_EXCEPTIONS(__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	fqtos %%f52, %0\n"
-"	" : "=&f" (r) : "r" (a) : QP_CLOBBER));
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c b/sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c
deleted file mode 100644
index 2d8fb52530..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Software floating-point emulation.
-   Return (unsigned int)(*a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define FP_ROUNDMODE FP_RND_ZERO
-#include "soft-fp.h"
-#include "quad.h"
-
-unsigned int _Qp_qtoui(const long double *a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A);
-  unsigned int r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_TO_INT_Q(r, A, 32, -1);
-  QP_HANDLE_EXCEPTIONS(
-	int rx;
-	__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	fqtoi %%f52, %%f31\n"
-"	st %%f31, [%0]\n"
-"	" : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
-	r = rx);
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c b/sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c
deleted file mode 100644
index 2d74a6ee15..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Software floating-point emulation.
-   Return (unsigned long)(*a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define FP_ROUNDMODE FP_RND_ZERO
-#include "soft-fp.h"
-#include "quad.h"
-
-unsigned long _Qp_qtoux(const long double *a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A);
-  unsigned long r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_TO_INT_Q(r, A, 64, -1);
-  QP_HANDLE_EXCEPTIONS(
-	unsigned long rx;
-	__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	fqtox %%f52, %%f60\n"
-"	std %%f60, [%0]\n"
-"	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
-	r = rx);
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_qtox.c b/sysdeps/sparc/sparc64/soft-fp/qp_qtox.c
deleted file mode 100644
index abfc666cde..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_qtox.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Software floating-point emulation.
-   Return (long)(*a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define FP_ROUNDMODE FP_RND_ZERO
-#include "soft-fp.h"
-#include "quad.h"
-
-long _Qp_qtox(const long double *a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A);
-  unsigned long r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_QP(A, a);
-  FP_TO_INT_Q(r, A, 64, 1);
-  QP_HANDLE_EXCEPTIONS(
-	long rx;
-	__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	fqtox %%f52, %%f60\n"
-"	std %%f60, [%0]\n"
-"	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
-	r = rx);
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_sqrt.c b/sysdeps/sparc/sparc64/soft-fp/qp_sqrt.c
deleted file mode 100644
index 3d78b1fdbb..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_sqrt.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = sqrtl(*a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-void _Qp_sqrt(long double *c, const long double *a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(C);
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_QP(A, a);
-  FP_SQRT_Q(C, A);
-  FP_PACK_QP(c, C);
-  QP_HANDLE_EXCEPTIONS(__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	fsqrtq %%f52, %%f60\n"
-"	std %%f60, [%0]\n"
-"	std %%f62, [%0+8]\n"
-"	" : : "r" (c), "r" (a) : QP_CLOBBER));
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_stoq.c b/sysdeps/sparc/sparc64/soft-fp/qp_stoq.c
deleted file mode 100644
index 9202a7269b..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_stoq.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (long double)(a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "single.h"
-#include "quad.h"
-
-void _Qp_stoq(long double *c, const float a)
-{
-  FP_DECL_EX;
-  FP_DECL_S(A);
-  FP_DECL_Q(C);
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_RAW_S(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
-  FP_EXTEND(Q,S,4,1,C,A);
-#else
-  FP_EXTEND(Q,S,2,1,C,A);
-#endif
-  FP_PACK_RAW_QP(c, C);
-  QP_HANDLE_EXCEPTIONS(__asm (
-"	fstoq %1, %%f60\n"
-"	std %%f60, [%0]\n"
-"	std %%f62, [%0+8]\n"
-"	" : : "r" (c), "f" (a) : QP_CLOBBER));
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_sub.c b/sysdeps/sparc/sparc64/soft-fp/qp_sub.c
deleted file mode 100644
index 71b9890743..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_sub.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (*a) - (*b)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-void _Qp_sub(long double *c, const long double *a, const long double *b)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(C);
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_SEMIRAW_QP(A, a);
-  FP_UNPACK_SEMIRAW_QP(B, b);
-  FP_SUB_Q(C, A, B);
-  FP_PACK_SEMIRAW_QP(c, C);
-  QP_HANDLE_EXCEPTIONS(__asm (
-"	ldd [%1], %%f52\n"
-"	ldd [%1+8], %%f54\n"
-"	ldd [%2], %%f56\n"
-"	ldd [%2+8], %%f58\n"
-"	fsubq %%f52, %%f56, %%f60\n"
-"	std %%f60, [%0]\n"
-"	std %%f62, [%0+8]\n"
-"	" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_uitoq.c b/sysdeps/sparc/sparc64/soft-fp/qp_uitoq.c
deleted file mode 100644
index cc8603ad41..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_uitoq.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (long double)(a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-void _Qp_uitoq(long double *c, const unsigned int a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(C);
-  unsigned int b = a;
-
-  FP_FROM_INT_Q(C, b, 32, unsigned int);
-  FP_PACK_RAW_QP(c, C);
-  QP_NO_EXCEPTIONS;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_util.c b/sysdeps/sparc/sparc64/soft-fp/qp_util.c
deleted file mode 100644
index 7e1f2511e2..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_util.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Software floating-point emulation.
-   Helper routine for _Qp_* routines.
-   Simulate exceptions using double arithmetics.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <float.h>
-#include <math.h>
-#include <assert.h>
-#include "soft-fp.h"
-
-void __Qp_handle_exceptions(int exceptions)
-{
-  if (exceptions & FP_EX_INVALID)
-    {
-      float f = 0.0;
-      __asm__ __volatile__ ("fdivs %0, %0, %0" : "+f" (f));
-    }
-  if (exceptions & FP_EX_DIVZERO)
-    {
-      float f = 1.0, g = 0.0;
-      __asm__ __volatile__ ("fdivs %0, %1, %0"
-			    : "+f" (f)
-			    : "f" (g));
-    }
-  if (exceptions & FP_EX_OVERFLOW)
-    {
-      float f = FLT_MAX;
-      __asm__ __volatile__("fmuls %0, %0, %0" : "+f" (f));
-      exceptions &= ~FP_EX_INEXACT;
-    }
-  if (exceptions & FP_EX_UNDERFLOW)
-    {
-      float f = FLT_MIN;
-      __asm__ __volatile__("fmuls %0, %0, %0" : "+f" (f));
-      exceptions &= ~FP_EX_INEXACT;
-    }
-  if (exceptions & FP_EX_INEXACT)
-    {
-      double d = 1.0, e = M_PI;
-      __asm__ __volatile__ ("fdivd %0, %1, %0"
-			    : "+f" (d)
-			    : "f" (e));
-    }
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_uxtoq.c b/sysdeps/sparc/sparc64/soft-fp/qp_uxtoq.c
deleted file mode 100644
index 766ca78872..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_uxtoq.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (long double)(a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-void _Qp_uxtoq(long double *c, const unsigned long a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(C);
-  unsigned long b = a;
-
-  FP_FROM_INT_Q(C, b, 64, unsigned long);
-  FP_PACK_RAW_QP(c, C);
-  QP_NO_EXCEPTIONS;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/qp_xtoq.c b/sysdeps/sparc/sparc64/soft-fp/qp_xtoq.c
deleted file mode 100644
index 42c0bf1044..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/qp_xtoq.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Software floating-point emulation.
-   (*c) = (long double)(*a)
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-void _Qp_xtoq(long double *c, const long a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(C);
-  long b = a;
-
-  FP_FROM_INT_Q(C, b, 64, unsigned long);
-  FP_PACK_RAW_QP(c, C);
-  QP_NO_EXCEPTIONS;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/s_frexpl.c b/sysdeps/sparc/sparc64/soft-fp/s_frexpl.c
deleted file mode 100644
index 6f0baeb3fb..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/s_frexpl.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Software floating-point emulation.
-   frexpl(x, exp)
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/*
- * for non-zero x
- *      x = frexpl(arg,&exp);
- * return a long double fp quantity x such that 0.5 <= |x| <1.0
- * and the corresponding binary exponent "exp". That is
- *      arg = x*2^exp.
- * If arg is inf, 0.0, or NaN, then frexpl(arg,&exp) returns arg
- * with *exp=0.
- */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-long double __frexpl(long double arg, int *exp)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A);
-  long double r;
-
-  *exp = 0;
-  FP_UNPACK_Q(A, arg);
-  if (A_c != FP_CLS_NORMAL)
-    return arg;
-  *exp = A_e + 1;
-  A_e = -1;
-  FP_PACK_Q(r, A);
-
-  return r;
-}
-
-weak_alias (__frexpl, frexpl)
diff --git a/sysdeps/sparc/sparc64/soft-fp/s_scalblnl.c b/sysdeps/sparc/sparc64/soft-fp/s_scalblnl.c
deleted file mode 100644
index 250a8f4f0f..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/s_scalblnl.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Software floating-point emulation.
-   scalblnl(x, exp)
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/*
- * scalblnl (long double x, long int n)
- * scalblnl(x,n) returns x* 2**n  computed by  exponent
- * manipulation rather than by actually performing an
- * exponentiation or a multiplication.
- */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-long double __scalblnl(long double arg, int exp)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A);
-  long double r;
-
-  FP_UNPACK_Q(A, arg);
-  switch (A_c)
-    {
-    case FP_CLS_ZERO:
-      return arg;
-    case FP_CLS_NAN:
-    case FP_CLS_INF:
-      FP_HANDLE_EXCEPTIONS;
-      return arg;
-    }
-  A_e += exp;
-  FP_PACK_Q(r, A);
-  FP_HANDLE_EXCEPTIONS;
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/s_scalbnl.c b/sysdeps/sparc/sparc64/soft-fp/s_scalbnl.c
deleted file mode 100644
index c686175e97..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/s_scalbnl.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Software floating-point emulation.
-   scalbnl(x, exp)
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek (jj@ultra.linux.cz).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/*
- * scalbnl (long double x, int n)
- * scalbnl(x,n) returns x* 2**n  computed by  exponent
- * manipulation rather than by actually performing an
- * exponentiation or a multiplication.
- */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-long double __scalbnl(long double arg, int exp)
-{
-  FP_DECL_EX;
-  FP_DECL_Q(A);
-  long double r;
-
-  FP_UNPACK_Q(A, arg);
-  switch (A_c)
-    {
-    case FP_CLS_ZERO:
-      return arg;
-    case FP_CLS_NAN:
-    case FP_CLS_INF:
-      FP_HANDLE_EXCEPTIONS;
-      return arg;
-    }
-  A_e += exp;
-  FP_PACK_Q(r, A);
-  FP_HANDLE_EXCEPTIONS;
-
-  return r;
-}
diff --git a/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h b/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h
deleted file mode 100644
index c03a6d3764..0000000000
--- a/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Machine-dependent software floating-point definitions.
-   Sparc64 userland (_Q_* and _Qp_*) version.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com),
-		  Jakub Jelinek (jj@ultra.linux.cz) and
-		  David S. Miller (davem@redhat.com).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <fpu_control.h>
-#include <fenv.h>
-#include <stdlib.h>
-
-#define _FP_W_TYPE_SIZE		64
-#define _FP_W_TYPE		unsigned long
-#define _FP_WS_TYPE		signed long
-#define _FP_I_TYPE		long
-
-/* Helper macros for _FP_MUL_MEAT_2_120_240_double.  */
-#define _FP_MUL_MEAT_SET_FE_TZ		   			\
-do {								\
-  static fpu_control_t _fetz = _FPU_RC_DOWN;			\
-  _FPU_SETCW(_fetz);						\
-} while (0)
-#ifndef _FP_MUL_MEAT_RESET_FE
-#define _FP_MUL_MEAT_RESET_FE _FPU_SETCW(_fcw)
-#endif
-
-#define _FP_MUL_MEAT_S(R,X,Y)					\
-  _FP_MUL_MEAT_1_imm(_FP_WFRACBITS_S,R,X,Y)
-#define _FP_MUL_MEAT_D(R,X,Y)					\
-  _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_Q(R,X,Y)					\
-  _FP_MUL_MEAT_2_120_240_double(_FP_WFRACBITS_Q,R,X,Y,		\
-				_FP_MUL_MEAT_SET_FE_TZ,		\
-				_FP_MUL_MEAT_RESET_FE)
-
-#define _FP_DIV_MEAT_S(R,X,Y)	_FP_DIV_MEAT_1_imm(S,R,X,Y,_FP_DIV_HELP_imm)
-#define _FP_DIV_MEAT_D(R,X,Y)	_FP_DIV_MEAT_1_udiv_norm(D,R,X,Y)
-#define _FP_DIV_MEAT_Q(R,X,Y)	_FP_DIV_MEAT_2_udiv(Q,R,X,Y)
-
-#define _FP_NANFRAC_S		((_FP_QNANBIT_S << 1) - 1)
-#define _FP_NANFRAC_D		((_FP_QNANBIT_D << 1) - 1)
-#define _FP_NANFRAC_Q		((_FP_QNANBIT_Q << 1) - 1), -1
-#define _FP_NANSIGN_S		0
-#define _FP_NANSIGN_D		0
-#define _FP_NANSIGN_Q		0
-
-#define _FP_KEEPNANFRACP 1
-#define _FP_QNANNEGATEDP 0
-
-/* If one NaN is signaling and the other is not,
- * we choose that one, otherwise we choose Y.
- */
-#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)			\
-  do {								\
-    if ((_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)		\
-	&& !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs))	\
-      {								\
-	R##_s = X##_s;						\
-	_FP_FRAC_COPY_##wc(R,X);				\
-      }								\
-    else							\
-      {								\
-	R##_s = Y##_s;						\
-	_FP_FRAC_COPY_##wc(R,Y);				\
-      }								\
-    R##_c = FP_CLS_NAN;						\
-  } while (0)
-
-/* Obtain the current rounding mode. */
-#ifndef FP_ROUNDMODE
-#define FP_ROUNDMODE	((_fcw >> 30) & 0x3)
-#endif
-
-/* Exception flags. */
-#define FP_EX_INVALID		(1 << 4)
-#define FP_EX_OVERFLOW		(1 << 3)
-#define FP_EX_UNDERFLOW		(1 << 2)
-#define FP_EX_DIVZERO		(1 << 1)
-#define FP_EX_INEXACT		(1 << 0)
-
-#define _FP_TININESS_AFTER_ROUNDING 0
-
-#define _FP_DECL_EX \
-  fpu_control_t _fcw __attribute__ ((unused)) = (FP_RND_NEAREST << 30)
-
-#define FP_INIT_ROUNDMODE					\
-do {								\
-  _FPU_GETCW(_fcw);						\
-} while (0)
-
-#define FP_TRAPPING_EXCEPTIONS ((_fcw >> 23) & 0x1f)
-#define FP_INHIBIT_RESULTS ((_fcw >> 23) & _fex)
-
-/* Simulate exceptions using double arithmetics. */
-extern void __Qp_handle_exceptions(int exc);
-
-#define FP_HANDLE_EXCEPTIONS					\
-do {								\
-  if (!_fex)							\
-    {								\
-      /* This is the common case, so we do it inline.		\
-       * We need to clear cexc bits if any.			\
-       */							\
-      __asm__ __volatile__("fzero %%f62\n\t"			\
-			   "faddd %%f62, %%f62, %%f62"		\
-			   : : : "f62");			\
-    }								\
-  else								\
-    {								\
-      __Qp_handle_exceptions (_fex);				\
-    }								\
-} while (0)
-
-#define QP_HANDLE_EXCEPTIONS(_a)				\
-do {								\
-  if ((_fcw >> 23) & _fex)					\
-    {								\
-      _a;							\
-    }								\
-  else								\
-    {								\
-      _fcw = (_fcw & ~0x1fL) | (_fex << 5) | _fex;		\
-      _FPU_SETCW(_fcw);						\
-    }								\
-} while (0)
-
-#define QP_NO_EXCEPTIONS					\
-  __asm ("fzero %%f62\n\t"					\
-	 "faddd %%f62, %%f62, %%f62" : : : "f62")
-
-#define QP_CLOBBER "memory", "f52", "f54", "f56", "f58", "f60", "f62"
-#define QP_CLOBBER_CC QP_CLOBBER , "cc"
diff --git a/sysdeps/sparc/sparc64/stackguard-macros.h b/sysdeps/sparc/sparc64/stackguard-macros.h
deleted file mode 100644
index cc0c12c041..0000000000
--- a/sysdeps/sparc/sparc64/stackguard-macros.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <stdint.h>
-
-#define STACK_CHK_GUARD \
-  ({ uintptr_t x; asm ("ldx [%%g7+0x28], %0" : "=r" (x)); x; })
-
-#define POINTER_CHK_GUARD \
-  ({ uintptr_t x; asm ("ldx [%%g7+0x30], %0" : "=r" (x)); x; })
diff --git a/sysdeps/sparc/sparc64/start.S b/sysdeps/sparc/sparc64/start.S
deleted file mode 100644
index fcd4721463..0000000000
--- a/sysdeps/sparc/sparc64/start.S
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Startup code for elf64-sparc
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   In addition to the permissions in the GNU Lesser General Public
-   License, the Free Software Foundation gives you unlimited
-   permission to link the compiled version of this file with other
-   programs, and to distribute those programs without any restriction
-   coming from the use of this file. (The GNU Lesser General Public
-   License restrictions do apply in other respects; for example, they
-   cover modification of the file, and distribution when not linked
-   into another program.)
-
-   Note that people who make modified versions of this file are not
-   obligated to grant this special exception for their modified
-   versions; it is their choice whether to do so. The GNU Lesser
-   General Public License gives permission to release a modified
-   version without this exception; this exception also makes it
-   possible to release a modified version which carries forward this
-   exception.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-
-	.section ".text"
-	.align 4
-	.global _start
-	.type _start,#function
-_start:
-#ifdef SHARED
-	SETUP_PIC_REG(l7)
-#endif
-
-  /* Terminate the stack frame, and reserve space for functions to
-     drop their arguments.  */
-	mov	%g0, %fp
-	sub	%sp, 6*8, %sp
-
-  /* Extract the arguments and environment as encoded on the stack.  The
-     argument info starts after one register window (16 words) past the SP,
-     plus the bias we added, plus the magic v9 STACK_BIAS.  */
-	ldx	[%sp+STACK_BIAS+22*8], %o1
-	add	%sp, STACK_BIAS+23*8, %o2
-
-  /* Load the addresses of the user entry points.  */
-#ifndef SHARED
-	sethi	%hi(main), %o0
-	sethi	%hi(__libc_csu_init), %o3
-	sethi	%hi(__libc_csu_fini), %o4
-	or	%o0, %lo(main), %o0
-	or	%o3, %lo(__libc_csu_init), %o3
-	or	%o4, %lo(__libc_csu_fini), %o4
-#else
-	sethi	%gdop_hix22(main), %o0
-	sethi	%gdop_hix22(__libc_csu_init), %o3
-	sethi	%gdop_hix22(__libc_csu_fini), %o4
-	xor	%o0, %gdop_lox10(main), %o0
-	xor	%o3, %gdop_lox10(__libc_csu_init), %o3
-	xor	%o4, %gdop_lox10(__libc_csu_fini), %o4
-	ldx	[%l7 + %o0], %o0, %gdop(main)
-	ldx	[%l7 + %o3], %o3, %gdop(__libc_csu_init)
-	ldx	[%l7 + %o4], %o4, %gdop(__libc_csu_fini)
-#endif
-
-  /* When starting a binary via the dynamic linker, %g1 contains the
-     address of the shared library termination function, which will be
-     registered with atexit().  If we are statically linked, this will
-     be NULL.  */
-	mov     %g1, %o5
-
-  /* Let libc do the rest of the initialization, and call main.  */
-	call    __libc_start_main
-	 nop
-
-  /* Die very horribly if exit returns.  */
-	illtrap	0
-
-	.size _start, .-_start
-
-/* Define a symbol for the first piece of initialized data.  */
-	.data
-	.globl	__data_start
-__data_start:
-	.long	0
-weak_alias (__data_start, data_start)
diff --git a/sysdeps/sparc/sparc64/stpcpy.S b/sysdeps/sparc/sparc64/stpcpy.S
deleted file mode 100644
index b1593563a9..0000000000
--- a/sysdeps/sparc/sparc64/stpcpy.S
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Copy SRC to DEST returning the address of the terminating '\0' in DEST.
-   For SPARC v9.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
-                  Jakub Jelinek <jj@ultra.linux.cz>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-	.register	%g6, #scratch
-#endif
-
-	/* Normally, this uses
-	   ((xword - 0x0101010101010101) & 0x8080808080808080) test
-	   to find out if any byte in xword could be zero. This is fast, but
-	   also gives false alarm for any byte in range 0x81-0xff. It does
-	   not matter for correctness, as if this test tells us there could
-	   be some zero byte, we check it byte by byte, but if bytes with
-	   high bits set are common in the strings, then this will give poor
-	   performance. You can #define EIGHTBIT_NOT_RARE and the algorithm
-	   will use one tick slower, but more precise test
-	   ((xword - 0x0101010101010101) & (~xword) & 0x8080808080808080),
-	   which does not give any false alarms (but if some bits are set,
-	   one cannot assume from it which bytes are zero and which are not).
-	   It is yet to be measured, what is the correct default for glibc
-	   in these days for an average user.
-	 */
-
-	.text
-	.align		32
-ENTRY(__stpcpy)
-	sethi		%hi(0x01010101), %g1		/* IEU0		Group		*/
-	or		%g1, %lo(0x01010101), %g1	/* IEU0		Group		*/
-	andcc		%o0, 7, %g0			/* IEU1				*/
-	sllx		%g1, 32, %g2			/* IEU0		Group		*/
-
-	bne,pn		%icc, 12f			/* CTI				*/
-	 andcc		%o1, 7, %g3			/* IEU1				*/
-	or		%g1, %g2, %g1			/* IEU0		Group		*/
-	bne,pn		%icc, 14f			/* CTI				*/
-
-	 sllx		%g1, 7, %g2			/* IEU0		Group		*/
-1:	ldx		[%o1], %o3			/* Load				*/
-	add		%o1, 8, %o1			/* IEU1				*/
-2:	mov		%o3, %g3			/* IEU0		Group		*/
-
-	sub		%o3, %g1, %o2			/* IEU1				*/
-3:	ldxa		[%o1] ASI_PNF, %o3		/* Load				*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o2, %g3, %o2			/* IEU0		Group		*/
-#endif
-	add		%o0, 8, %o0			/* IEU0		Group		*/
-	andcc		%o2, %g2, %g0			/* IEU1				*/
-
-	add		%o1, 8, %o1			/* IEU0		Group		*/
-	be,a,pt		%xcc, 2b			/* CTI				*/
-	 stx		%g3, [%o0 - 8]			/* Store			*/
-	srlx		%g3, 56, %g5			/* IEU0		Group		*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 11f			/* CTI				*/
-	 srlx		%g3, 48, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 10f			/* CTI				*/
-	 srlx		%g3, 40, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 9f			/* CTI				*/
-
-	 srlx		%g3, 32, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 8f			/* CTI				*/
-	 srlx		%g3, 24, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 7f			/* CTI				*/
-	 srlx		%g3, 16, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 6f			/* CTI				*/
-	 srlx		%g3, 8, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-
-	 sub		%o3, %g1, %o2			/* IEU0				*/
-	stx		%g3, [%o0 - 8]			/* Store	Group		*/
-	andcc		%g3, 0xff, %g0			/* IEU1				*/
-	bne,pt		%icc, 3b			/* CTI				*/
-
-	 mov		%o3, %g3			/* IEU0		Group		*/
-4:	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, 1, %o0			/* IEU0				*/
-
-	.align		16
-6:	ba,pt		%xcc, 23f			/* CTI		Group		*/
-	 sub		%o0, 3, %g6			/* IEU0				*/
-5:	sub		%o0, 2, %g6			/* IEU0		Group		*/
-	stb		%g5, [%o0 - 2]			/* Store			*/
-
-	srlx		%g3, 16, %g4			/* IEU0		Group		*/
-23:	sth		%g4, [%o0 - 4]			/* Store			*/
-	srlx		%g3, 32, %g4			/* IEU0		Group		*/
-	stw		%g4, [%o0 - 8]			/* Store			*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-8:	ba,pt		%xcc, 24f			/* CTI		Group		*/
-	 sub		%o0, 5, %g6			/* IEU0				*/
-
-7:	sub		%o0, 4, %g6			/* IEU0		Group		*/
-	stb		%g5, [%o0 - 4]			/* Store			*/
-	srlx		%g3, 32, %g4			/* IEU0		Group		*/
-24:	stw		%g4, [%o0 - 8]			/* Store			*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0 			/* IEU0				*/
-10:	ba,pt		%xcc, 25f			/* CTI		Group		*/
-	 sub		%o0, 7, %g6			/* IEU0				*/
-
-9:	sub		%o0, 6, %g6			/* IEU0		Group		*/
-	stb		%g5, [%o0 - 6]			/* Store			*/
-	srlx		%g3, 48, %g4			/* IEU0				*/
-25:	sth		%g4, [%o0 - 8]			/* Store	Group		*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-11:	stb		%g5, [%o0 - 8]			/* Store	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 sub		%o0, 8, %o0			/* IEU0				*/
-
-	.align		16
-12:	or		%g1, %g2, %g1			/* IEU0		Group		*/
-	ldub		[%o1], %o3			/* Load				*/
-	sllx		%g1, 7, %g2			/* IEU0		Group		*/
-	stb		%o3, [%o0]			/* Store	Group		*/
-
-13:	add		%o0, 1, %o0			/* IEU0				*/
-	add		%o1, 1, %o1			/* IEU1				*/
-	andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-
-	 lduba		[%o1] ASI_PNF, %o3		/* Load				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	bne,a,pt	%icc, 13b			/* CTI				*/
-	 stb		%o3, [%o0]			/* Store			*/
-
-	andcc		%o1, 7, %g3			/* IEU1		Group		*/
-	be,a,pt		%icc, 1b			/* CTI				*/
-	 ldx		[%o1], %o3			/* Load				*/
-14:	orcc		%g0, 64, %g4			/* IEU1		Group		*/
-
-	sllx		%g3, 3, %g5			/* IEU0				*/
-	sub		%o1, %g3, %o1			/* IEU0		Group		*/
-	sub		%g4, %g5, %g4			/* IEU1				*/
-							/* %g1 = 0101010101010101	*
-							 * %g2 = 8080808080808080	*
-							 * %g3 = source alignment	*
-							 * %g5 = number of bits to shift left  *
-							 * %g4 = number of bits to shift right */
-	ldxa		[%o1] ASI_PNF, %o5		/* Load		Group		*/
-
-	addcc		%o1, 8, %o1			/* IEU1				*/
-15:	sllx		%o5, %g5, %o3			/* IEU0		Group		*/
-	ldxa		[%o1] ASI_PNF, %o5		/* Load				*/
-	srlx		%o5, %g4, %o4			/* IEU0		Group		*/
-
-	add		%o0, 8, %o0			/* IEU1				*/
-	or		%o3, %o4, %o3			/* IEU0		Group		*/
-	add		%o1, 8, %o1			/* IEU1				*/
-	sub		%o3, %g1, %o4			/* IEU0		Group		*/
-
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o4, %o3, %o4			/* IEU0		Group		*/
-#endif
-	andcc		%o4, %g2, %g0			/* IEU1		Group		*/
-	be,a,pt		%xcc, 15b			/* CTI				*/
-	 stx		%o3, [%o0 - 8]			/* Store			*/
-	srlx		%o3, 56, %o4			/* IEU0		Group		*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 22f			/* CTI				*/
-	 srlx		%o3, 48, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 21f			/* CTI				*/
-	 srlx		%o3, 40, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-
-	 srlx		%o3, 32, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 19f			/* CTI				*/
-	 srlx		%o3, 24, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 18f			/* CTI				*/
-	 srlx		%o3, 16, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 17f			/* CTI				*/
-	 srlx		%o3, 8, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 16f			/* CTI				*/
-
-	 andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-	bne,pn		%icc, 15b			/* CTI				*/
-	 stx		%o3, [%o0 - 8]			/* Store			*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 sub		%o0, 1, %o0			/* IEU0				*/
-
-	.align		16
-17:	ba,pt		%xcc, 26f			/* CTI		Group		*/
-	 subcc		%o0, 3, %g6			/* IEU1				*/
-18:	ba,pt		%xcc, 27f			/* CTI		Group		*/
-	 subcc		%o0, 4, %g6			/* IEU1				*/
-
-19:	ba,pt		%xcc, 28f			/* CTI		Group		*/
-	 subcc		%o0, 5, %g6			/* IEU1				*/
-16:	subcc		%o0, 2, %g6			/* IEU1		Group		*/
-	srlx		%o3, 8, %o4			/* IEU0				*/
-
-	stb		%o4, [%o0 - 2]			/* Store			*/
-26:	srlx		%o3, 16, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 3]			/* Store			*/
-27:	srlx		%o3, 24, %o4			/* IEU0		Group		*/
-
-	stb		%o4, [%o0 - 4]			/* Store			*/
-28:	srlx		%o3, 32, %o4			/* IEU0		Group		*/
-	stw		%o4, [%o0 - 8]			/* Store			*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 mov		%g6, %o0 			/* IEU0				*/
-
-	.align		16
-21:	ba,pt		%xcc, 29f			/* CTI		Group		*/
-	 subcc		%o0, 7, %g6			/* IEU1				*/
-22:	ba,pt		%xcc, 30f			/* CTI		Group		*/
-	 subcc		%o0, 8, %g6			/* IEU1				*/
-
-20:	subcc		%o0, 6, %g6			/* IEU1		Group		*/
-	srlx		%o3, 40, %o4			/* IEU0				*/
-	stb		%o4, [%o0 - 6]			/* Store			*/
-29:	srlx		%o3, 48, %o4			/* IEU0		Group		*/
-
-	stb		%o4, [%o0 - 7]			/* Store			*/
-30:	srlx		%o3, 56, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 8]			/* Store			*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 mov		%g6, %o0			/* IEU0				*/
-END(__stpcpy)
-
-weak_alias (__stpcpy, stpcpy)
-libc_hidden_def (__stpcpy)
-libc_hidden_builtin_def (stpcpy)
diff --git a/sysdeps/sparc/sparc64/stpncpy.S b/sysdeps/sparc/sparc64/stpncpy.S
deleted file mode 100644
index 537d29257f..0000000000
--- a/sysdeps/sparc/sparc64/stpncpy.S
+++ /dev/null
@@ -1,424 +0,0 @@
-/* stpncpy(DST, SRC, COUNT) - Copy no more than N characters of
-   SRC to DEST, returning the address of the terminating '\0' in
-   DEST, if any, or else DEST + N.
-   For SPARC v9.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz> and
-		  Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define USE_BPR
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-	.register	%g6, #scratch
-#endif
-
-	/* Normally, this uses
-	   ((xword - 0x0101010101010101) & 0x8080808080808080) test
-	   to find out if any byte in xword could be zero. This is fast, but
-	   also gives false alarm for any byte in range 0x81-0xff. It does
-	   not matter for correctness, as if this test tells us there could
-	   be some zero byte, we check it byte by byte, but if bytes with
-	   high bits set are common in the strings, then this will give poor
-	   performance. You can #define EIGHTBIT_NOT_RARE and the algorithm
-	   will use one tick slower, but more precise test
-	   ((xword - 0x0101010101010101) & (~xword) & 0x8080808080808080),
-	   which does not give any false alarms (but if some bits are set,
-	   one cannot assume from it which bytes are zero and which are not).
-	   It is yet to be measured, what is the correct default for glibc
-	   in these days for an average user.
-	 */
-
-	.text
-	.align		32
-ENTRY(__stpncpy)
-	sethi		%hi(0x01010101), %g1		/* IEU0		Group		*/
-#ifdef USE_BPR
-	brz,pn		%o2, 19f			/* CTI+IEU1			*/
-#else
-	tst		%o2				/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-#endif
-	 or		%g1, %lo(0x01010101), %g1	/* IEU1				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-
-	sllx		%g1, 32, %g2			/* IEU0				*/
-	bne,pn		%icc, 26f			/* CTI				*/
-	 or		%g1, %g2, %g1			/* IEU0		Group		*/
-	andcc		%o1, 7, %g3			/* IEU1				*/
-
-	bne,pn		%icc, 28f			/* CTI				*/
-	 sllx		%g1, 7, %g2			/* IEU0		Group		*/
-	ldx		[%o1], %o3			/* Load				*/
-1:	add		%o1, 8, %o1			/* IEU1				*/
-
-2:	subcc		%o2, 8, %o2			/* IEU1		Group		*/
-	bl,pn		%XCC, 18f			/* CTI				*/
-	 sub		%o3, %g1, %o4			/* IEU0				*/
-	add		%o0, 8, %o0			/* IEU0		Group		*/
-
-#ifdef EIGHTBIT_NOT_MORE
-	andn		%o4, %o3, %o4			/* IEU1				*/
-#endif
-	mov		%o3, %g3			/* IEU1				*/
-	ldxa		[%o1] ASI_PNF, %o3		/* Load				*/
-	add		%o1, 8, %o1			/* IEU0		Group		*/
-	andcc		%o4, %g2, %g0			/* IEU1				*/
-
-	be,a,pt		%xcc, 2b			/* CTI				*/
-	 stx		%g3, [%o0-8]			/* Store	Group		*/
-	srlx		%g3, 56, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 16f			/* CTI				*/
-	 srlx		%g3, 48, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 15f			/* CTI				*/
-
-	 srlx		%g3, 40, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 14f			/* CTI				*/
-	 srlx		%g3, 32, %g4			/* IEU0				*/
-
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 13f			/* CTI				*/
-	 srlx		%g3, 24, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 12f			/* CTI				*/
-	 srlx		%g3, 16, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 11f			/* CTI				*/
-
-	 srlx		%g3, 8, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 10f			/* CTI				*/
-	 sub		%o0, 1, %g6			/* IEU0				*/
-
-	andcc		%g3, 0xff, %g0			/* IEU1		Group		*/
-	bne,pt		%icc, 2b			/* CTI				*/
-3:	 stx		%g3, [%o0-8]			/* Store			*/
-	andncc		%o2, 31, %g3			/* IEU1		Group		*/
-
-4:	be,pn		%XCC, 41f			/* CTI				*/
-	 and		%o2, 31, %o2			/* IEU1		Group		*/
-40:	stx		%g0, [%o0]			/* Store			*/
-	stx		%g0, [%o0 + 8]			/* Store	Group		*/
-
-	subcc		%g3, 32, %g3			/* IEU1				*/
-	stx		%g0, [%o0 + 16]			/* Store	Group		*/
-	stx		%g0, [%o0 + 24]			/* Store	Group		*/
-	bne,pt		%XCC, 40b			/* CTI				*/
-
-	 add		%o0, 32, %o0			/* IEU0				*/
-41:	subcc		%o2, 8, %o2			/* IEU1		Group		*/
-	bl,a,pn		%XCC, 6f			/* CTI				*/
-	 andcc		%o2, 4, %g0			/* IEU1		Group		*/
-
-5:	stx		%g0, [%o0]			/* Store			*/
-	subcc		%o2, 8, %o2			/* IEU1		Group		*/
-	bge,pt		%XCC, 5b			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU0				*/
-
-	andcc		%o2, 4, %g0			/* IEU1		Group		*/
-6:	be,a,pn		%icc, 7f			/* CTI				*/
-	 andcc		%o2, 2, %g0			/* IEU1		Group		*/
-	stw		%g0, [%o0]			/* Store			*/
-
-	add		%o0, 4, %o0			/* IEU0				*/
-	andcc		%o2, 2, %g0			/* IEU1		Group		*/
-7:	be,a,pn		%icc, 8f			/* CTI				*/
-	 andcc		%o2, 1, %g0			/* IEU1		Group		*/
-
-	sth		%g0, [%o0]			/* Store			*/
-	add		%o0, 2, %o0			/* IEU0				*/
-	andcc		%o2, 1, %g0			/* IEU1		Group		*/
-8:	bne,a,pn	%icc, 9f			/* CTI				*/
-
-	 stb		%g0, [%o0]			/* Store			*/
-9:	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-10:	subcc		%o0, 2, %g6			/* IEU1		Group		*/
-
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%g5, 8, %g3			/* IEU0				*/
-11:	subcc		%o0, 3, %g6			/* IEU1		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-
-	 sllx		%g4, 16, %g3			/* IEU0				*/
-12:	subcc		%o0, 4, %g6			/* IEU1		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%g5, 24, %g3			/* IEU0				*/
-
-13:	subcc		%o0, 5, %g6			/* IEU1		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%g4, 32, %g3			/* IEU0				*/
-14:	subcc		%o0, 6, %g6			/* IEU1		Group		*/
-
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%g5, 40, %g3			/* IEU0				*/
-15:	subcc		%o0, 7, %g6			/* IEU1		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-
-	 sllx		%g4, 48, %g3			/* IEU0				*/
-16:	subcc		%o0, 8, %g6			/* IEU1		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 clr		%g3				/* IEU0				*/
-
-	.align		16
-17:	or		%o3, %o4, %o3			/* IEU0		Group		*/
-	sub		%o3, %g1, %o4			/* IEU1				*/
-18:	addcc		%o2, 8, %o2			/* IEU1		Group		*/
-	be,pn		%XCC, 19f			/* CTI				*/
-
-	 andcc		%o4, %g2, %g0			/* IEU1		Group		*/
-	be,pt		%xcc, 21f			/* CTI				*/
-	 srlx		%o3, 56, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 20f			/* CTI				*/
-	 stb		%g5, [%o0]			/* Store			*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-
-	be,pn		%XCC, 19f			/* CTI				*/
-	 srlx		%o3, 48, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-
-	 stb		%g5, [%o0]			/* Store			*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-
-	 srlx		%o3, 40, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-	 stb		%g5, [%o0]			/* Store			*/
-
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-	 srlx		%o3, 32, %g5			/* IEU0		Group		*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-	 stb		%g5, [%o0]			/* Store			*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-	 srlx		%o3, 24, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 20f			/* CTI				*/
-	 stb		%g5, [%o0]			/* Store			*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-
-	be,pn		%XCC, 19f			/* CTI				*/
-	 srlx		%o3, 16, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-
-	 stb		%g5, [%o0]			/* Store			*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-
-	 srlx		%o3, 8, %o3			/* IEU0		Group		*/
-	stb		%o3, [%o0]			/* Store			*/
-59:	add		%o0, 1, %o2			/* IEU1				*/
-	andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 movne		%icc, %o2, %o0			/* Single	Group		*/
-19:	retl						/* CTI+IEU1	Group		*/
-	 nop						/* IEU0				*/
-
-20:	mov		%o0, %g6			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 51f			/* CTI				*/
-	 add		%o0, 1, %o0			/* IEU0		Group		*/
-
-50:	stb		%g0, [%o0]			/* Store	Group		*/
-	subcc		%o2, 1, %o2			/* IEU1		Group		*/
-	bne,pt		%XCC, 50b			/* CTI				*/
-	 add		%o0, 1, %o0			/* IEU0				*/
-
-51:	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-
-	.align		16
-21:	andcc		%o2, 4, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 22f			/* CTI				*/
-	 srlx		%o3, 32, %g5			/* IEU0				*/
-	stw		%g5, [%o0]			/* Store	Group		*/
-
-	add		%o0, 4, %o0			/* IEU0				*/
-	mov		%o3, %g5			/* IEU1				*/
-22:	andcc		%o2, 2, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 23f			/* CTI				*/
-
-	 srlx		%g5, 16, %g4			/* IEU0				*/
-	sth		%g4, [%o0]			/* Store	Group		*/
-	add		%o0, 2, %o0			/* IEU0				*/
-	mov		%g5, %g4			/* IEU1				*/
-
-23:	srlx		%g4, 8, %g4			/* IEU0		Group		*/
-	andcc		%o2, 1, %g0			/* IEU1				*/
-	bne,a,pn	%icc, 24f			/* CTI				*/
-	 stb		%g4, [%o0]			/* Store	Group		*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 nop						/* IEU0				*/
-24:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, 1, %o0			/* IEU0				*/
-
-	.align		16
-55:	sub		%o0, 1, %g6			/* IEU0		Group		*/
-25:	andcc		%o0, 7, %g0			/* IEU1				*/
-	be,a,pn		%icc, 4b			/* CTI				*/
-	 andncc		%o2, 31, %g3			/* IEU1		Group		*/
-
-	stb		%g0, [%o0]			/* Store	Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	bne,pt		%XCC, 25b			/* CTI				*/
-	 add		%o0, 1, %o0			/* IEU0		Group		*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-
-	.align		16
-26:	ldub		[%o1], %o3			/* Load				*/
-	sllx		%g1, 7, %g2			/* IEU0		Group		*/
-	stb		%o3, [%o0]			/* Store			*/
-27:	subcc		%o2, 1, %o2			/* IEU1				*/
-
-	be,pn		%XCC, 59b			/* CTI				*/
-	 add		%o1, 1, %o1			/* IEU0		Group		*/
-	add		%o0, 1, %o0			/* IEU1				*/
-	andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 55b			/* CTI				*/
-	 lduba		[%o1] ASI_PNF, %o3		/* Load				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	bne,a,pt	%icc, 27b			/* CTI				*/
-
-	 stb		%o3, [%o0]			/* Store			*/
-	andcc		%o1, 7, %g3			/* IEU1		Group		*/
-	be,a,pt		%icc, 1b			/* CTI				*/
-	 ldx		[%o1], %o3			/* Load				*/
-
-28:	orcc		%g0, 64, %g4			/* IEU1		Group		*/
-	sllx		%g3, 3, %g5			/* IEU0				*/
-	sub		%g4, %g5, %g4			/* IEU0		Group		*/
-	sub		%o1, %g3, %o1			/* IEU1				*/
-							/* %g1 = 0101010101010101
-							   %g2 = 8080808080808080
-							   %g3 = source alignment
-							   %g5 = number of bits to shift left
-							   %g4 = number of bits to shift right */
-
-	ldxa		[%o1] ASI_PNF, %o5		/* Load		Group		*/
-	addcc		%o1, 8, %o1			/* IEU1				*/
-29:	sllx		%o5, %g5, %o3			/* IEU0		Group		*/
-	ldxa		[%o1] ASI_PNF, %o5		/* Load				*/
-
-	subcc		%o2, 8, %o2			/* IEU1				*/
-	bl,pn		%XCC, 17b			/* CTI				*/
-	 srlx		%o5, %g4, %o4			/* IEU0		Group		*/
-	add		%o1, 8, %o1			/* IEU1				*/
-
-	or		%o3, %o4, %o3			/* IEU0		Group		*/
-	add		%o0, 8, %o0			/* IEU1				*/
-	sub		%o3, %g1, %o4			/* IEU0		Group		*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o4, %o3, %o4			/* IEU0		Group		*/
-#endif
-	andcc		%o4, %g2, %g0			/* IEU1		Group		*/
-
-	be,a,pt		%xcc, 29b			/* CTI				*/
-	 stx		%o3, [%o0-8]			/* Store			*/
-	srlx		%o3, 56, %o4			/* IEU0		Group		*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 36f			/* CTI				*/
-	 srlx		%o3, 48, %g6			/* IEU0				*/
-	andcc		%g6, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 35f			/* CTI				*/
-
-	 srlx		%o3, 40, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 34f			/* CTI				*/
-	 srlx		%o3, 32, %g6			/* IEU0				*/
-
-	andcc		%g6, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 33f			/* CTI				*/
-	 srlx		%o3, 24, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 32f			/* CTI				*/
-	 srlx		%o3, 16, %g6			/* IEU0				*/
-	andcc		%g6, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 31f			/* CTI				*/
-
-	 srlx		%o3, 8, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 30f			/* CTI				*/
-	 andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-
-	bne,pn		%icc, 29b			/* CTI				*/
-	 stx		%o3, [%o0-8]			/* Store			*/
-	sub		%o0, 1, %g6			/* IEU0		Group		*/
-	ba,pt		%xcc, 4b			/* CTI				*/
-
-	 andncc		%o2, 31, %g3			/* IEU1				*/
-30:	subcc		%o0, 2, %g6			/* IEU0				*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%o4, 8, %g3			/* IEU0		Group		*/
-
-31:	sllx		%g6, 16, %g3			/* IEU0		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sub		%o0, 3, %g6			/* IEU1				*/
-32:	subcc		%o0, 4, %g6			/* IEU1		Group		*/
-
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%o4, 24, %g3			/* IEU0				*/
-33:	sllx		%g6, 32, %g3			/* IEU0		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-
-	 sub		%o0, 5, %g6			/* IEU1				*/
-34:	subcc		%o0, 6, %g6			/* IEU1		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%o4, 40, %g3			/* IEU0				*/
-
-35:	sllx		%g6, 48, %g3			/* IEU0		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sub		%o0, 7, %g6			/* IEU1				*/
-36:	subcc		%o0, 8, %g6			/* IEU1		Group		*/
-
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%o4, 56, %g3			/* IEU0				*/
-END(__stpncpy)
-
-libc_hidden_def (__stpncpy)
-weak_alias (__stpncpy, stpncpy)
diff --git a/sysdeps/sparc/sparc64/strcat.S b/sysdeps/sparc/sparc64/strcat.S
deleted file mode 100644
index 151a4e8853..0000000000
--- a/sysdeps/sparc/sparc64/strcat.S
+++ /dev/null
@@ -1,339 +0,0 @@
-/* strcat (dest, src) -- Append SRC on the end of DEST.
-   For SPARC v9.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz> and
-		  Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define USE_BPR
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-	.register	%g6, #scratch
-#endif
-
-	/* Normally, this uses
-	   ((xword - 0x0101010101010101) & 0x8080808080808080) test
-	   to find out if any byte in xword could be zero. This is fast, but
-	   also gives false alarm for any byte in range 0x81-0xff. It does
-	   not matter for correctness, as if this test tells us there could
-	   be some zero byte, we check it byte by byte, but if bytes with
-	   high bits set are common in the strings, then this will give poor
-	   performance. You can #define EIGHTBIT_NOT_RARE and the algorithm
-	   will use one tick slower, but more precise test
-	   ((xword - 0x0101010101010101) & (~xword) & 0x8080808080808080),
-	   which does not give any false alarms (but if some bits are set,
-	   one cannot assume from it which bytes are zero and which are not).
-	   It is yet to be measured, what is the correct default for glibc
-	   in these days for an average user.
-	 */
-
-	.text
-	.align		32
-ENTRY(strcat)
-	sethi		%hi(0x01010101), %g1		/* IEU0		Group		*/
-	ldub		[%o0], %o3			/* Load				*/
-	or		%g1, %lo(0x01010101), %g1	/* IEU0		Group		*/
-	mov		%o0, %g6			/* IEU1				*/
-
-	sllx		%g1, 32, %g2			/* IEU0		Group		*/
-	andcc		%o0, 7, %g0			/* IEU1				*/
-	or		%g1, %g2, %g1			/* IEU0		Group		*/
-	bne,pn		%icc, 32f			/* CTI				*/
-
-	 sllx		%g1, 7, %g2			/* IEU0		Group		*/
-	brz,pn		%o3, 30f			/* CTI+IEU1			*/
-	 ldx		[%o0], %o3			/* Load				*/
-48:	add		%o0, 8, %o0			/* IEU0		Group		*/
-
-49:	sub		%o3, %g1, %o2			/* IEU0		Group		*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o2, %o3, %g5			/* IEU0		Group		*/
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%g5, %g2, %g0			/* IEU1		Group		*/
-#else
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%o2, %g2, %g0			/* IEU1		Group		*/
-#endif
-	be,pt		%xcc, 49b			/* CTI				*/
-
-	 add		%o0, 8, %o0			/* IEU0				*/
- 	addcc		%o2, %g1, %g3			/* IEU1		Group		*/
-	srlx		%o2, 32, %o2			/* IEU0				*/
-50:	andcc		%o2, %g2, %g0			/* IEU1		Group		*/
-
-	be,pn		%xcc, 51f			/* CTI				*/
-	 srlx		%g3, 56, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 29f			/* CTI				*/
-
-	 srlx		%g3, 48, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 28f			/* CTI				*/
-	 srlx		%g3, 40, %o2			/* IEU0				*/
-
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 27f			/* CTI				*/
-	 srlx		%g3, 32, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 26f			/* CTI				*/
-51:	 srlx		%g3, 24, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 25f			/* CTI				*/
-
-	 srlx		%g3, 16, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 24f			/* CTI				*/
-	 srlx		%g3, 8, %o2			/* IEU0				*/
-
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 23f			/* CTI				*/
-	 sub		%o3, %g1, %o2			/* IEU0				*/
-	andcc		%g3, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 52f			/* CTI				*/
-	 ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%o2, %g2, %g0			/* IEU1		Group		*/
-	be,pt		%xcc, 49b			/* CTI				*/
-
-	 add		%o0, 8, %o0			/* IEU0				*/
-	addcc		%o2, %g1, %g3			/* IEU1		Group		*/
-	ba,pt		%xcc, 50b			/* CTI				*/
-	 srlx		%o2, 32, %o2			/* IEU0				*/
-
-	.align		16
-52:	ba,pt		%xcc, 12f			/* CTI		Group		*/
-	 add		%o0, -9, %o0			/* IEU0				*/
-23:	ba,pt		%xcc, 12f			/* CTI		Group		*/
-	 add		%o0, -10, %o0			/* IEU0				*/
-
-24:	ba,pt		%xcc, 12f			/* CTI		Group		*/
-	 add		%o0, -11, %o0			/* IEU0				*/
-25:	ba,pt		%xcc, 12f			/* CTI		Group		*/
-	 add		%o0, -12, %o0			/* IEU0				*/
-
-26:	ba,pt		%xcc, 12f			/* CTI		Group		*/
-	 add		%o0, -13, %o0			/* IEU0				*/
-27:	ba,pt		%xcc, 12f			/* CTI		Group		*/
-	 add		%o0, -14, %o0			/* IEU0				*/
-
-28:	ba,pt		%xcc, 12f			/* CTI		Group		*/
-	 add		%o0, -15, %o0			/* IEU0				*/
-29:	add		%o0, -16, %o0			/* IEU0		Group		*/
-30:	andcc		%o1, 7, %g3			/* IEU1				*/
-
-31:	bne,pn		%icc, 14f			/* CTI				*/
-	 orcc		%g0, 64, %g4			/* IEU1		Group		*/
-1:	ldx		[%o1], %o3			/* Load				*/
-	add		%o1, 8, %o1			/* IEU1				*/
-
-2:	mov		%o3, %g3			/* IEU0		Group		*/
-3:	sub		%o3, %g1, %o2			/* IEU1				*/
-	ldxa		[%o1] ASI_PNF, %o3		/* Load				*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o2, %g3, %o2			/* IEU0		Group		*/
-#endif
-	add		%o0, 8, %o0			/* IEU0		Group		*/
-
-	andcc		%o2, %g2, %g0			/* IEU1				*/
-	add		%o1, 8, %o1			/* IEU0		Group		*/
-	be,a,pt		%xcc, 2b			/* CTI				*/
-	 stx		%g3, [%o0 - 8]			/* Store			*/
-
-	srlx		%g3, 56, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 11f			/* CTI				*/
-	 srlx		%g3, 48, %g4			/* IEU0				*/
-
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 10f			/* CTI				*/
-	 srlx		%g3, 40, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 9f			/* CTI				*/
-	 srlx		%g3, 32, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 8f			/* CTI				*/
-
-	 srlx		%g3, 24, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 7f			/* CTI				*/
-	 srlx		%g3, 16, %g4			/* IEU0				*/
-
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 6f			/* CTI				*/
-	 srlx		%g3, 8, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 5f			/* CTI				*/
-	 sub		%o3, %g1, %o2			/* IEU0				*/
-	stx		%g3, [%o0 - 8]			/* Store	Group		*/
-	andcc		%g3, 0xff, %g0			/* IEU1				*/
-
-	bne,pt		%icc, 3b			/* CTI				*/
-	 mov		%o3, %g3			/* IEU0		Group		*/
-4:	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-
-	.align		16
-5:	stb		%g5, [%o0 - 2]			/* Store	Group		*/
-	srlx		%g3, 16, %g4			/* IEU0				*/
-6:	sth		%g4, [%o0 - 4]			/* Store	Group		*/
-	srlx		%g3, 32, %g4			/* IEU0				*/
-
-	stw		%g4, [%o0 - 8]			/* Store	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-7:	stb		%g5, [%o0 - 4]			/* Store	Group		*/
-
-	srlx		%g3, 32, %g4			/* IEU0				*/
-8:	stw		%g4, [%o0 - 8]			/* Store	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0 			/* IEU0				*/
-
-9:	stb		%g5, [%o0 - 6]			/* Store	Group		*/
-	srlx		%g3, 48, %g4			/* IEU0				*/
-10:	sth		%g4, [%o0 - 8]			/* Store	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 mov		%g6, %o0			/* IEU0				*/
-11:	stb		%g5, [%o0 - 8]			/* Store	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-
-	.align		16
-32:	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	be,a,pn		%icc, 48b			/* CTI				*/
-	 ldx		[%o0], %o3			/* Load				*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-
-	brnz,a,pt	%o3, 32b			/* CTI+IEU1			*/
-	 lduba		[%o0] ASI_PNF, %o3		/* Load				*/
-	add		%o0, -1, %o0			/* IEU0		Group		*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-
-	be,a,pn		%icc, 31b			/* CTI				*/
-	 andcc		%o1, 7, %g3			/* IEU1		Group		*/
-12:	ldub		[%o1], %o3			/* Load				*/
-	stb		%o3, [%o0]			/* Store	Group		*/
-
-13:	add		%o0, 1, %o0			/* IEU0				*/
-	add		%o1, 1, %o1			/* IEU1				*/
-	andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-
-	 lduba		[%o1] ASI_PNF, %o3		/* Load				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	bne,a,pt	%icc, 13b			/* CTI				*/
-	 stb		%o3, [%o0]			/* Store			*/
-
-	andcc		%o1, 7, %g3			/* IEU1		Group		*/
-	be,a,pt		%icc, 1b			/* CTI				*/
-	 ldx		[%o1], %o3			/* Load				*/
-	orcc		%g0, 64, %g4			/* IEU1		Group		*/
-
-14:	sllx		%g3, 3, %g5			/* IEU0				*/
-	sub		%o1, %g3, %o1			/* IEU0		Group		*/
-	sub		%g4, %g5, %g4			/* IEU1				*/
-							/* %g1 = 0101010101010101	*
-							 * %g2 = 8080808080808080	*
-							 * %g3 = source alignment	*
-							 * %g5 = number of bits to shift left  *
-							 * %g4 = number of bits to shift right */
-	ldxa		[%o1] ASI_PNF, %o5		/* Load		Group		*/
-
-	addcc		%o1, 8, %o1			/* IEU1				*/
-15:	sllx		%o5, %g5, %o3			/* IEU0		Group		*/
-	ldxa		[%o1] ASI_PNF, %o5		/* Load				*/
-	srlx		%o5, %g4, %o4			/* IEU0		Group		*/
-
-	add		%o0, 8, %o0			/* IEU1				*/
-	or		%o3, %o4, %o3			/* IEU0		Group		*/
-	add		%o1, 8, %o1			/* IEU1				*/
-	sub		%o3, %g1, %o4			/* IEU0		Group		*/
-
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o4, %o3, %o4			/* IEU0		Group		*/
-#endif
-	andcc		%o4, %g2, %g0			/* IEU1		Group		*/
-	be,a,pt		%xcc, 15b			/* CTI				*/
-	 stx		%o3, [%o0 - 8]			/* Store			*/
-	srlx		%o3, 56, %o4			/* IEU0		Group		*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 22f			/* CTI				*/
-	 srlx		%o3, 48, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 21f			/* CTI				*/
-	 srlx		%o3, 40, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-
-	 srlx		%o3, 32, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 19f			/* CTI				*/
-	 srlx		%o3, 24, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 18f			/* CTI				*/
-	 srlx		%o3, 16, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 17f			/* CTI				*/
-	 srlx		%o3, 8, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 16f			/* CTI				*/
-
-	 andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-	bne,pn		%icc, 15b			/* CTI				*/
-	 stx		%o3, [%o0 - 8]			/* Store			*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 mov		%g6, %o0			/* IEU0				*/
-
-	.align		16
-16:	srlx		%o3, 8, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 2]			/* Store			*/
-17:	srlx		%o3, 16, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 3]			/* Store			*/
-
-18:	srlx		%o3, 24, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 4]			/* Store			*/
-19:	srlx		%o3, 32, %o4			/* IEU0		Group		*/
-	stw		%o4, [%o0 - 8]			/* Store			*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0 			/* IEU0				*/
-	nop
-	nop
-
-20:	srlx		%o3, 40, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 6]			/* Store			*/
-21:	srlx		%o3, 48, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 7]			/* Store			*/
-
-22:	srlx		%o3, 56, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 8]			/* Store			*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-END(strcat)
-libc_hidden_builtin_def (strcat)
diff --git a/sysdeps/sparc/sparc64/strchr.S b/sysdeps/sparc/sparc64/strchr.S
deleted file mode 100644
index 31b9e58d76..0000000000
--- a/sysdeps/sparc/sparc64/strchr.S
+++ /dev/null
@@ -1,482 +0,0 @@
-/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
-   For SPARC v9.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
-		  Jakub Jelinek <jj@ultra.linux.cz>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define USE_BPR
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-	.register	%g6, #scratch
-#endif
-
-	/* Normally, this uses
-	   ((xword - 0x0101010101010101) & 0x8080808080808080) test
-	   to find out if any byte in xword could be zero. This is fast, but
-	   also gives false alarm for any byte in range 0x81-0xff. It does
-	   not matter for correctness, as if this test tells us there could
-	   be some zero byte, we check it byte by byte, but if bytes with
-	   high bits set are common in the strings, then this will give poor
-	   performance. You can #define EIGHTBIT_NOT_RARE and the algorithm
-	   will use one tick slower, but more precise test
-	   ((xword - 0x0101010101010101) & (~xword) & 0x8080808080808080),
-	   which does not give any false alarms (but if some bits are set,
-	   one cannot assume from it which bytes are zero and which are not).
-	   It is yet to be measured, what is the correct default for glibc
-	   in these days for an average user.
-	 */
-
-	.text
-	.align		32
-ENTRY(strchr)
-	andcc		%o1, 0xff, %o1			/* IEU1		Group		*/
-	be,pn		%icc, 17f			/* CTI				*/
-	 sllx		%o1, 8, %g3			/* IEU0		Group		*/
-	sethi		%hi(0x01010101), %g1		/* IEU1				*/
-
-	or		%g3, %o1, %g3			/* IEU0		Group		*/
-	ldub		[%o0], %o3			/* Load				*/
-	sllx		%g3, 16, %g5			/* IEU0		Group		*/
-	or		%g1, %lo(0x01010101), %g1	/* IEU1				*/
-
-	sllx		%g1, 32, %g2			/* IEU0		Group		*/
-	brz,pn		%o3, 5f				/* CTI+IEU1			*/
-	 orcc		%g3, %g5, %g3			/* IEU1		Group		*/
-	sllx		%g3, 32, %g5			/* IEU0				*/
-
-	cmp		%o3, %o1			/* IEU1		Group		*/
-	be,pn		%xcc, 14f			/* CTI				*/
-	 or		%g1, %g2, %g1			/* IEU0				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-
-	bne,a,pn	%icc, 15f			/* CTI				*/
-	 add		%o0, 1, %o0			/* IEU0				*/
-	ldx		[%o0], %o3			/* Load		Group		*/
-1:	sllx		%g1, 7, %g2			/* IEU0				*/
-
-	or		%g3, %g5, %g3			/* IEU1				*/
-	add		%o0, 8, %o0			/* IEU0		Group		*/
-	xor		%o3, %g3, %o4			/* IEU1				*/
-							/* %g1 = 0101010101010101	*
-							 * %g2 = 8080088080808080	*
-							 * %g3 =  c c c c c c c c	*
-							 * %o3 =      value		*
-							 * %o4 =   value XOR c		*/
-2:	sub		%o3, %g1, %o2			/* IEU0		Group		*/
-
-	sub		%o4, %g1, %o5			/* IEU1				*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o2, %o3, %g6			/* IEU0		Group		*/
-	andn		%o5, %o4, %o5			/* IEU1				*/
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	or		%o5, %g6, %o5			/* IEU0		Group		*/
-#else
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	or		%o5, %o2, %o5			/* IEU0		Group		*/
-#endif
-	add		%o0, 8, %o0			/* IEU1				*/
-
-	andcc		%o5, %g2, %g0			/* IEU1		Group		*/
-	be,a,pt		%xcc, 2b			/* CTI				*/
-	 xor		%o3, %g3, %o4			/* IEU0				*/
-	srlx		%o5, 32, %g5			/* IEU0		Group		*/
-
-	add		%o2, %g1, %o2			/* IEU1				*/
-3:	andcc		%g5, %g2, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 4f			/* CTI				*/
-	 srlx		%o2, 56, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-	 srlx		%o4, 56, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 6f			/* CTI				*/
-	 srlx		%o2, 48, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-
-	 srlx		%o4, 48, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 7f			/* CTI				*/
-	 srlx		%o2, 40, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-	 srlx		%o4, 40, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 8f			/* CTI				*/
-	 srlx		%o2, 32, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-
-	 srlx		%o4, 32, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 9f			/* CTI				*/
-4:	 srlx		%o2, 24, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-	 srlx		%o4, 24, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 10f			/* CTI				*/
-	 srlx		%o2, 16, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-
-	 srlx		%o4, 16, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 11f			/* CTI				*/
-	 srlx		%o2, 8, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-	 srlx		%o4, 8, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 12f			/* CTI				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5f			/* CTI				*/
-	 sub		%o3, %g1, %o2			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 13f			/* CTI				*/
-	 xor		%o3, %g3, %o4			/* IEU0				*/
-	ldxa		[%o0] ASI_PNF, %o3		/* Load		Group		*/
-
-	sub		%o4, %g1, %o5			/* IEU0				*/
-	or		%o5, %o2, %o5			/* IEU1				*/
-	add		%o0, 8, %o0			/* IEU0		Group		*/
-	andcc		%o5, %g2, %g0			/* IEU1				*/
-
-	be,a,pt		%xcc, 2b			/* CTI				*/
-	 xor		%o3, %g3, %o4			/* IEU0		Group		*/
-	srlx		%o5, 32, %g5			/* IEU0		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-
-	 add		%o2, %g1, %o2			/* IEU1				*/
-
-	.align		16
-5:	retl						/* CTI+IEU1	Group		*/
-	 clr		%o0				/* IEU0				*/
-6:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -16, %o0			/* IEU0				*/
-
-7:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -15, %o0			/* IEU0				*/
-8:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -14, %o0			/* IEU0				*/
-
-9:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -13, %o0			/* IEU0				*/
-10:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -12, %o0			/* IEU0				*/
-
-11:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -11, %o0			/* IEU0				*/
-12:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -10, %o0			/* IEU0				*/
-
-13:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -9, %o0			/* IEU0				*/
-14: 	retl						/* CTI+IEU1	Group		*/
-	 nop						/* IEU0				*/
-
-	.align		16
-15:	ldub		[%o0], %o3			/* Load		Group		*/
-16:	andcc		%o0, 7, %g0			/* IEU1				*/
-	be,a,pn		%icc, 1b			/* CTI				*/
-	 ldx		[%o0], %o3			/* Load		Group		*/
-
-	andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 5b			/* CTI				*/
-	 add		%o0, 1, %o0			/* IEU0				*/
-	cmp		%o3, %o1			/* IEU1		Group		*/
-
-	bne,a,pn	%icc, 16b			/* CTI				*/
-	 ldub		[%o0], %o3			/* Load				*/
-	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -1, %o0			/* IEU0				*/
-
-	/* strchr (str, 0)			*/
-	.align		32
-	nop
-	.align		16
-17:	sethi		%hi(0x01010101), %g1		/* IEU0		Group		*/
-	ldub		[%o0], %o3			/* Load				*/
-	or		%g1, %lo(0x01010101), %g1	/* IEU0		Group		*/
-	sllx		%g1, 32, %g2			/* IEU0		Group		*/
-
-	andcc		%o0, 7, %g0			/* IEU1				*/
-	or		%g1, %g2, %g1			/* IEU0		Group		*/
-	bne,pn		%icc, 32f			/* CTI				*/
-	 sllx		%g1, 7, %g2			/* IEU0		Group		*/
-
-	brz,pn		%o3, 30f			/* CTI+IEU1			*/
-	 ldx		[%o0], %o3			/* Load				*/
-18:	add		%o0, 8, %o0			/* IEU0		Group		*/
-19:	sub		%o3, %g1, %o2			/* IEU0		Group		*/
-
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o2, %o3, %g6			/* IEU0		Group		*/
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%g6, %g2, %g0			/* IEU1		Group		*/
-#else
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%o2, %g2, %g0			/* IEU1		Group		*/
-#endif
-	be,pt		%xcc, 19b			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU0				*/
-
- 	addcc		%o2, %g1, %g3			/* IEU1		Group		*/
-	srlx		%o2, 32, %o2			/* IEU0				*/
-20:	andcc		%o2, %g2, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 21f			/* CTI				*/
-
-	 srlx		%g3, 56, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 29f			/* CTI				*/
-	 srlx		%g3, 48, %o2			/* IEU0				*/
-
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 28f			/* CTI				*/
-	 srlx		%g3, 40, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 27f			/* CTI				*/
-	 srlx		%g3, 32, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 26f			/* CTI				*/
-
-21:	 srlx		%g3, 24, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 25f			/* CTI				*/
-	 srlx		%g3, 16, %o2			/* IEU0				*/
-
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 24f			/* CTI				*/
-	 srlx		%g3, 8, %o2			/* IEU0				*/
-	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 23f			/* CTI				*/
-	 sub		%o3, %g1, %o2			/* IEU0				*/
-	andcc		%g3, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 22f			/* CTI				*/
-
-	 ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-	andcc		%o2, %g2, %g0			/* IEU1		Group		*/
-	be,pt		%xcc, 19b			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU0				*/
-
-	addcc		%o2, %g1, %g3			/* IEU1		Group		*/
-	ba,pt		%xcc, 20b			/* CTI				*/
-	 srlx		%o2, 32, %o2			/* IEU0				*/
-
-	.align		16
-22:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -9, %o0			/* IEU0				*/
-23:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -10, %o0			/* IEU0				*/
-
-24:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -11, %o0			/* IEU0				*/
-25:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -12, %o0			/* IEU0				*/
-
-26:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -13, %o0			/* IEU0				*/
-27:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -14, %o0			/* IEU0				*/
-
-28:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -15, %o0			/* IEU0				*/
-29:	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -16, %o0			/* IEU0				*/
-
-30:	retl						/* CTI+IEU1	Group		*/
-	 nop						/* IEU0				*/
-
-	.align		16
-32:	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	be,a,pn		%icc, 18b			/* CTI				*/
-	 ldx		[%o0], %o3			/* Load				*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-
-	brnz,a,pt	%o3, 32b			/* CTI+IEU1			*/
-	 lduba		[%o0] ASI_PNF, %o3		/* Load				*/
-	retl						/* CTI+IEU1	Group		*/
-	 add		%o0, -1, %o0			/* IEU0				*/
-END(strchr)
-
-	.align		32
-ENTRY(strrchr)
-	andcc		%o1, 0xff, %o1			/* IEU1		Group		*/
-	be,pn		%icc, 17b			/* CTI				*/
-	 clr		%g4				/* IEU0				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-
-	bne,pn		%icc, 13f			/* CTI				*/
-	 sllx		%o1, 8, %g3			/* IEU0				*/
-	ldx		[%o0], %o3			/* Load		Group		*/
-1:	sethi		%hi(0x01010101), %g1		/* IEU0				*/
-
-	or		%g3, %o1, %g3			/* IEU1				*/
-	sllx		%g3, 16, %g5			/* IEU0		Group		*/
-	or		%g1, %lo(0x01010101), %g1	/* IEU1				*/
-	sllx		%g1, 32, %g2			/* IEU0		Group		*/
-
-	or		%g3, %g5, %g3			/* IEU1				*/
-	sllx		%g3, 32, %g5			/* IEU0		Group		*/
-	or		%g1, %g2, %g1			/* IEU1				*/
-	sllx		%g1, 7, %g2			/* IEU0		Group		*/
-
-	or		%g3, %g5, %g3			/* IEU1				*/
-	add		%o0, 8, %o0			/* IEU0		Group		*/
-	xor		%o3, %g3, %o4			/* IEU1				*/
-							/* %g1 = 0101010101010101	*
-							 * %g2 = 8080088080808080	*
-							 * %g3 =  c c c c c c c c	*
-							 * %o3 =   value		*
-							 * %o4 =   value XOR c		*/
-2:	sub		%o3, %g1, %o2			/* IEU0		Group		*/
-
-3:	sub		%o4, %g1, %o5			/* IEU1				*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o2, %o3, %g6			/* IEU0		Group		*/
-	andn		%o5, %o4, %o5			/* IEU1				*/
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-
-	or		%o5, %g6, %o5			/* IEU0		Group		*/
-#else
-	ldxa		[%o0] ASI_PNF, %o3		/* Load				*/
-
-	or		%o5, %o2, %o5			/* IEU0		Group		*/
-#endif
-	add		%o0, 8, %o0			/* IEU1				*/
-	andcc		%o5, %g2, %g0			/* IEU1		Group		*/
-	be,a,pt		%xcc, 2b			/* CTI				*/
-
-	 xor		%o3, %g3, %o4			/* IEU0				*/
-	srlx		%o5, 32, %g5			/* IEU0		Group		*/
-	add		%o2, %g1, %o2			/* IEU1				*/
-	andcc		%g5, %g2, %g0			/* IEU1		Group		*/
-
-	be,pn		%xcc, 7f			/* CTI				*/
-	 srlx		%o2, 56, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 12f			/* CTI				*/
-
-	 srlx		%o4, 56, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	srlx		%o2, 48, %g5			/* IEU0				*/
-	be,a,pn		%icc, 4f			/* CTI				*/
-
-	 add		%o0, -16, %g4			/* IEU0		Group		*/
-4:	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 12f			/* CTI				*/
-	 srlx		%o4, 48, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	srlx		%o2, 40, %g5			/* IEU0				*/
-	be,a,pn		%icc, 5f			/* CTI				*/
-	 add		%o0, -15, %g4			/* IEU0		Group		*/
-
-5:	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 12f			/* CTI				*/
-	 srlx		%o4, 40, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	srlx		%o2, 32, %g5			/* IEU0				*/
-	be,a,pn		%icc, 6f			/* CTI				*/
-	 add		%o0, -14, %g4			/* IEU0		Group		*/
-6:	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 12f			/* CTI				*/
-	 srlx		%o4, 32, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,a,pn		%icc, 7f			/* CTI				*/
-
-	 add		%o0, -13, %g4			/* IEU0				*/
-7:	srlx		%o2, 24, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 12f			/* CTI				*/
-
-	 srlx		%o4, 24, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	srlx		%o2, 16, %g5			/* IEU0				*/
-	be,a,pn		%icc, 8f			/* CTI				*/
-
-	 add		%o0, -12, %g4			/* IEU0		Group		*/
-8:	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 12f			/* CTI				*/
-	 srlx		%o4, 16, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	srlx		%o2, 8, %g5			/* IEU0				*/
-	be,a,pn		%icc, 9f			/* CTI				*/
-	 add		%o0, -11, %g4			/* IEU0		Group		*/
-
-9:	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 12f			/* CTI				*/
-	 srlx		%o4, 8, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,a,pn		%icc, 10f			/* CTI				*/
-	 add		%o0, -10, %g4			/* IEU0				*/
-10:	andcc		%o2, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 12f			/* CTI				*/
-
-	 sub		%o3, %g1, %o2			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,a,pn		%icc, 11f			/* CTI				*/
-	 add		%o0, -9, %g4			/* IEU0				*/
-
-11:	ba,pt		%xcc, 3b			/* CTI		Group		*/
-	 xor		%o3, %g3, %o4			/* IEU0		Group		*/
-12:	retl						/* CTI+IEU1	Group		*/
-	 mov		%g4, %o0			/* IEU0				*/
-
-	.align		16
-13:	ldub		[%o0], %o3			/* Load		Group		*/
-	add		%o0, 1, %o0			/* IEU0				*/
-14:	andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 12b			/* CTI				*/
-
-	cmp		%o3, %o1			/* IEU1		Group		*/
-	ldub		[%o0], %o3			/* Load				*/
-	be,a,pn 	%icc, 15f			/* CTI				*/
-	 add		%o0, -1, %g4			/* IEU0		Group		*/
-
-15:	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	bne,a,pt	%icc, 14b			/* CTI				*/
-	 add		%o0, 1, %o0			/* IEU0				*/
-	ba,pt		%xcc, 1b			/* CTI		Group		*/
-
-	 ldx		[%o0], %o3			/* Load				*/
-END(strrchr)
-
-weak_alias (strchr, index)
-weak_alias (strrchr, rindex)
-libc_hidden_builtin_def (strchr)
-libc_hidden_builtin_def (strrchr)
diff --git a/sysdeps/sparc/sparc64/strcmp.S b/sysdeps/sparc/sparc64/strcmp.S
deleted file mode 100644
index d4b0a22f18..0000000000
--- a/sysdeps/sparc/sparc64/strcmp.S
+++ /dev/null
@@ -1,232 +0,0 @@
-/* Compare two strings for differences.
-   For SPARC v9.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David S. Miller <davem@davemloft.net>
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-
-#ifndef XCC
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-	.register	%g6, #scratch
-#endif
-
-#define rSTR1		%o0
-#define rSTR2		%o1
-#define r0101		%o2	/* 0x0101010101010101 */
-#define r8080		%o3	/* 0x8080808080808080 */
-#define rSTRXOR		%o4
-#define rWORD1		%o5
-#define rTMP1		%g1
-#define rTMP2		%g2
-#define rWORD2		%g3
-#define rSLL		%g4
-#define rSRL		%g5
-#define rBARREL		%g6
-
-	/* There are two cases, either the two pointers are aligned
-	 * identically or they are not.  If they have the same
-	 * alignment we can use the normal full speed loop.  Otherwise
-	 * we have to use the barrel-shifter version.
-	 */
-
-	.text
-	.align	32
-ENTRY(strcmp)
-	or	rSTR2, rSTR1, rTMP1
-	sethi	%hi(0x80808080), r8080
-
-	andcc	rTMP1, 0x7, %g0
-	bne,pn	%icc, .Lmaybe_barrel_shift
-	 or	r8080, %lo(0x80808080), r8080
-	ldx	[rSTR1], rWORD1
-
-	sub	rSTR2, rSTR1, rSTR2
-	sllx	r8080, 32, rTMP1
-
-	ldx	[rSTR1 + rSTR2], rWORD2
-	or	r8080, rTMP1, r8080
-
-	ba,pt	%xcc, .Laligned_loop_entry
-	 srlx	r8080, 7, r0101
-
-	.align	32
-.Laligned_loop_entry:
-.Laligned_loop:
-	add	rSTR1, 8, rSTR1
-
-	sub	rWORD1, r0101, rTMP2
-	xorcc	rWORD1, rWORD2, rSTRXOR
-	bne,pn	%xcc, .Lcommon_endstring
-
-	 andn	r8080, rWORD1, rTMP1
-
-	ldxa	[rSTR1] ASI_PNF, rWORD1
-	andcc	rTMP1, rTMP2, %g0
-	be,a,pt	%xcc, .Laligned_loop
-
-	 ldxa	[rSTR1 + rSTR2] ASI_PNF, rWORD2
-
-.Lcommon_equal:
-	retl
-	 mov	0, %o0
-
-	/* All loops terminate here once they find an unequal word.
-	 * If a zero byte appears in the word before the first unequal
-	 * byte, we must report zero.  Otherwise we report '1' or '-1'
-	 * depending upon whether the first mis-matching byte is larger
-	 * in the first string or the second, respectively.
-	 *
-	 * First we compute a 64-bit mask value that has "0x01" in
-	 * each byte where a zero exists in rWORD1.  rSTRXOR holds the
-	 * value (rWORD1 ^ rWORD2).  Therefore, if considered as an
-	 * unsigned quantity, our "0x01" mask value is "greater than"
-	 * rSTRXOR then a zero terminating byte comes first and
-	 * therefore we report '0'.
-	 *
-	 * The formula for this mask is:
-	 *
-	 *    mask_tmp1 = ~rWORD1 & 0x8080808080808080;
-	 *    mask_tmp2 = ((rWORD1 & 0x7f7f7f7f7f7f7f7f) +
-	 *                 0x7f7f7f7f7f7f7f7f);
-	 *
-	 *    mask = ((mask_tmp1 & ~mask_tmp2) >> 7);
-	 */
-.Lcommon_endstring:
-	andn	rWORD1, r8080, rTMP2
-	or	r8080, 1, %o1
-
-	mov	1, %o0
-	sub	rTMP2, %o1, rTMP2
-
-	cmp	rWORD1, rWORD2
-	andn	rTMP1, rTMP2, rTMP1
-
-	movleu	%xcc, -1, %o0
-	srlx	rTMP1, 7, rTMP1
-
-	/* In order not to be influenced by bytes after the zero byte, we
-	 * have to retain only the highest bit in the mask for the comparison
-	 * with rSTRXOR to work properly.
-	 */
-	mov	0, rTMP2
-	andcc	rTMP1, 0x0100, %g0
-
-	movne	%xcc, 8, rTMP2
-	sllx	rTMP1, 63 - 16, %o1
-
-	movrlz	%o1, 16, rTMP2
-	sllx	rTMP1, 63 - 24, %o1
-
-	movrlz	%o1, 24, rTMP2
-	sllx	rTMP1, 63 - 32, %o1
-
-	movrlz	%o1, 32, rTMP2
-	sllx	rTMP1, 63 - 40, %o1
-
-	movrlz	%o1, 40, rTMP2
-	sllx	rTMP1, 63 - 48, %o1
-
-	movrlz	%o1, 48, rTMP2
-	sllx	rTMP1, 63 - 56, %o1
-
-	movrlz	%o1, 56, rTMP2
-
-	srlx	rTMP1, rTMP2, rTMP1
-
-	sllx	rTMP1, rTMP2, rTMP1
-
-	cmp	rTMP1, rSTRXOR
-	retl
-	 movgu	%xcc, 0, %o0
-
-.Lmaybe_barrel_shift:
-	sub	rSTR2, rSTR1, rSTR2
-	sllx	r8080, 32, rTMP1
-
-	or	r8080, rTMP1, r8080
-	and	rSTR1, 0x7, rTMP2
-
-	srlx	r8080, 7, r0101
-	andn	rSTR1, 0x7, rSTR1
-
-	ldxa	[rSTR1] ASI_PNF, rWORD1
-	andcc	rSTR2, 0x7, rSLL
-	sll	rTMP2, 3, rSTRXOR
-
-	bne,pn	%icc, .Lneed_barrel_shift
-	 mov	-1, rTMP1
-	ldxa	[rSTR1 + rSTR2] ASI_PNF, rBARREL
-
-	srlx	rTMP1, rSTRXOR, rTMP2
-
-	orn	rWORD1, rTMP2, rWORD1
-	ba,pt	%xcc, .Laligned_loop_entry
-	 orn	rBARREL, rTMP2, rWORD2
-
-.Lneed_barrel_shift:
-	sllx	rSLL, 3, rSLL
-	andn	rSTR2, 0x7, rSTR2
-
-	ldxa	[rSTR1 + rSTR2] ASI_PNF, rBARREL
-	mov	64, rTMP2
-	sub	rTMP2, rSLL, rSRL
-
-	srlx	rTMP1, rSTRXOR, rTMP1
-	add	rSTR2, 8, rSTR2
-
-	orn	rWORD1, rTMP1, rWORD1
-	sllx	rBARREL, rSLL, rWORD2
-	ldxa	[rSTR1 + rSTR2] ASI_PNF, rBARREL
-
-	add	rSTR1, 8, rSTR1
-	sub	rWORD1, r0101, rTMP2
-
-	srlx	rBARREL, rSRL, rSTRXOR
-
-	or	rWORD2, rSTRXOR, rWORD2
-
-	orn	rWORD2, rTMP1, rWORD2
-	ba,pt	%xcc, .Lbarrel_shift_loop_entry
-	 andn	r8080, rWORD1, rTMP1
-
-.Lbarrel_shift_loop:
-	sllx	rBARREL, rSLL, rWORD2
-	ldxa	[rSTR1 + rSTR2] ASI_PNF, rBARREL
-
-	add	rSTR1, 8, rSTR1
-	sub	rWORD1, r0101, rTMP2
-
-	srlx	rBARREL, rSRL, rSTRXOR
-	andn	r8080, rWORD1, rTMP1
-
-	or	rWORD2, rSTRXOR, rWORD2
-
-.Lbarrel_shift_loop_entry:
-	xorcc	rWORD1, rWORD2, rSTRXOR
-	bne,pn	%xcc, .Lcommon_endstring
-
-	 andcc	rTMP1, rTMP2, %g0
-	be,a,pt	%xcc, .Lbarrel_shift_loop
-	 ldxa	[rSTR1] ASI_PNF, rWORD1
-
-	retl
-	 mov	0, %o0
-END(strcmp)
-libc_hidden_builtin_def (strcmp)
diff --git a/sysdeps/sparc/sparc64/strcpy.S b/sysdeps/sparc/sparc64/strcpy.S
deleted file mode 100644
index 8732809f2b..0000000000
--- a/sysdeps/sparc/sparc64/strcpy.S
+++ /dev/null
@@ -1,244 +0,0 @@
-/* Copy SRC to DEST returning DEST.
-   For SPARC v9.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
-                  Jakub Jelinek <jj@ultra.linux.cz>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-	.register	%g6, #scratch
-#endif
-
-	/* Normally, this uses
-	   ((xword - 0x0101010101010101) & 0x8080808080808080) test
-	   to find out if any byte in xword could be zero. This is fast, but
-	   also gives false alarm for any byte in range 0x81-0xff. It does
-	   not matter for correctness, as if this test tells us there could
-	   be some zero byte, we check it byte by byte, but if bytes with
-	   high bits set are common in the strings, then this will give poor
-	   performance. You can #define EIGHTBIT_NOT_RARE and the algorithm
-	   will use one tick slower, but more precise test
-	   ((xword - 0x0101010101010101) & (~xword) & 0x8080808080808080),
-	   which does not give any false alarms (but if some bits are set,
-	   one cannot assume from it which bytes are zero and which are not).
-	   It is yet to be measured, what is the correct default for glibc
-	   in these days for an average user.
-	 */
-
-	.text
-	.align		32
-ENTRY(strcpy)
-	sethi		%hi(0x01010101), %g1		/* IEU0		Group		*/
-	mov		%o0, %g6			/* IEU1				*/
-	or		%g1, %lo(0x01010101), %g1	/* IEU0		Group		*/
-	andcc		%o0, 7, %g0			/* IEU1				*/
-
-	sllx		%g1, 32, %g2			/* IEU0		Group		*/
-	bne,pn		%icc, 12f			/* CTI				*/
-	 andcc		%o1, 7, %g3			/* IEU1				*/
-	or		%g1, %g2, %g1			/* IEU0		Group		*/
-
-	bne,pn		%icc, 14f			/* CTI				*/
-	 sllx		%g1, 7, %g2			/* IEU0		Group		*/
-1:	ldx		[%o1], %o3			/* Load				*/
-	add		%o1, 8, %o1			/* IEU1				*/
-
-2:	mov		%o3, %g3			/* IEU0		Group		*/
-3:	sub		%o3, %g1, %o2			/* IEU1				*/
-	ldxa		[%o1] ASI_PNF, %o3		/* Load				*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o2, %g3, %o2			/* IEU0		Group		*/
-#endif
-	add		%o0, 8, %o0			/* IEU0		Group		*/
-
-	andcc		%o2, %g2, %g0			/* IEU1				*/
-	add		%o1, 8, %o1			/* IEU0		Group		*/
-	be,a,pt		%xcc, 2b			/* CTI				*/
-	 stx		%g3, [%o0 - 8]			/* Store			*/
-
-	srlx		%g3, 56, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 11f			/* CTI				*/
-	 srlx		%g3, 48, %g4			/* IEU0				*/
-
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 10f			/* CTI				*/
-	 srlx		%g3, 40, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 9f			/* CTI				*/
-	 srlx		%g3, 32, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 8f			/* CTI				*/
-
-	 srlx		%g3, 24, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 7f			/* CTI				*/
-	 srlx		%g3, 16, %g4			/* IEU0				*/
-
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 6f			/* CTI				*/
-	 srlx		%g3, 8, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 5f			/* CTI				*/
-	 sub		%o3, %g1, %o2			/* IEU0				*/
-	stx		%g3, [%o0 - 8]			/* Store	Group		*/
-	andcc		%g3, 0xff, %g0			/* IEU1				*/
-
-	bne,pt		%icc, 3b			/* CTI				*/
-	 mov		%o3, %g3			/* IEU0		Group		*/
-4:	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-
-	.align		16
-5:	stb		%g5, [%o0 - 2]			/* Store	Group		*/
-	srlx		%g3, 16, %g4			/* IEU0				*/
-6:	sth		%g4, [%o0 - 4]			/* Store	Group		*/
-	srlx		%g3, 32, %g4			/* IEU0				*/
-
-	stw		%g4, [%o0 - 8]			/* Store	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-7:	stb		%g5, [%o0 - 4]			/* Store	Group		*/
-
-	srlx		%g3, 32, %g4			/* IEU0				*/
-8:	stw		%g4, [%o0 - 8]			/* Store	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0 			/* IEU0				*/
-
-9:	stb		%g5, [%o0 - 6]			/* Store	Group		*/
-	srlx		%g3, 48, %g4			/* IEU0				*/
-10:	sth		%g4, [%o0 - 8]			/* Store	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 mov		%g6, %o0			/* IEU0				*/
-11:	stb		%g5, [%o0 - 8]			/* Store	Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-
-12:	or		%g1, %g2, %g1			/* IEU0		Group		*/
-	ldub		[%o1], %o3			/* Load				*/
-	sllx		%g1, 7, %g2			/* IEU0		Group		*/
-	stb		%o3, [%o0]			/* Store	Group		*/
-
-13:	add		%o0, 1, %o0			/* IEU0				*/
-	add		%o1, 1, %o1			/* IEU1				*/
-	andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-
-	 lduba		[%o1] ASI_PNF, %o3		/* Load				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	bne,a,pt	%icc, 13b			/* CTI				*/
-	 stb		%o3, [%o0]			/* Store			*/
-
-	andcc		%o1, 7, %g3			/* IEU1		Group		*/
-	be,a,pt		%icc, 1b			/* CTI				*/
-	 ldx		[%o1], %o3			/* Load				*/
-14:	orcc		%g0, 64, %g4			/* IEU1		Group		*/
-
-	sllx		%g3, 3, %g5			/* IEU0				*/
-	sub		%o1, %g3, %o1			/* IEU0		Group		*/
-	sub		%g4, %g5, %g4			/* IEU1				*/
-							/* %g1 = 0101010101010101	*
-							 * %g2 = 8080808080808080	*
-							 * %g3 = source alignment	*
-							 * %g5 = number of bits to shift left  *
-							 * %g4 = number of bits to shift right */
-	ldxa		[%o1] ASI_PNF, %o5		/* Load		Group		*/
-
-	addcc		%o1, 8, %o1			/* IEU1				*/
-15:	sllx		%o5, %g5, %o3			/* IEU0		Group		*/
-	ldxa		[%o1] ASI_PNF, %o5		/* Load				*/
-	srlx		%o5, %g4, %o4			/* IEU0		Group		*/
-
-	add		%o0, 8, %o0			/* IEU1				*/
-	or		%o3, %o4, %o3			/* IEU0		Group		*/
-	add		%o1, 8, %o1			/* IEU1				*/
-	sub		%o3, %g1, %o4			/* IEU0		Group		*/
-
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o4, %o3, %o4			/* IEU0		Group		*/
-#endif
-	andcc		%o4, %g2, %g0			/* IEU1		Group		*/
-	be,a,pt		%xcc, 15b			/* CTI				*/
-	 stx		%o3, [%o0 - 8]			/* Store			*/
-	srlx		%o3, 56, %o4			/* IEU0		Group		*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 22f			/* CTI				*/
-	 srlx		%o3, 48, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 21f			/* CTI				*/
-	 srlx		%o3, 40, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-
-	 srlx		%o3, 32, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 19f			/* CTI				*/
-	 srlx		%o3, 24, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 18f			/* CTI				*/
-	 srlx		%o3, 16, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 17f			/* CTI				*/
-	 srlx		%o3, 8, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 16f			/* CTI				*/
-
-	 andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-	bne,pn		%icc, 15b			/* CTI				*/
-	 stx		%o3, [%o0 - 8]			/* Store			*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 mov		%g6, %o0			/* IEU0				*/
-
-	.align		16
-16:	srlx		%o3, 8, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 2]			/* Store			*/
-17:	srlx		%o3, 16, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 3]			/* Store			*/
-
-18:	srlx		%o3, 24, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 4]			/* Store			*/
-19:	srlx		%o3, 32, %o4			/* IEU0		Group		*/
-	stw		%o4, [%o0 - 8]			/* Store			*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0 			/* IEU0				*/
-	nop
-	nop
-
-20:	srlx		%o3, 40, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 6]			/* Store			*/
-21:	srlx		%o3, 48, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 7]			/* Store			*/
-
-22:	srlx		%o3, 56, %o4			/* IEU0		Group		*/
-	stb		%o4, [%o0 - 8]			/* Store			*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-END(strcpy)
-libc_hidden_builtin_def (strcpy)
diff --git a/sysdeps/sparc/sparc64/strcspn.S b/sysdeps/sparc/sparc64/strcspn.S
deleted file mode 100644
index 8b448d16e7..0000000000
--- a/sysdeps/sparc/sparc64/strcspn.S
+++ /dev/null
@@ -1,212 +0,0 @@
-/* strcspn (str, ss) -- Return the length of the initial segment of STR
-                        which contains no characters from SS.
-   For SPARC v9.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define STACK_SIZE	128
-#define STACK_OFFSET	128+0x7ff
-	.register	%g2, #scratch
-#else
-#define STACK_SIZE	64
-#define STACK_OFFSET	64
-#endif
-
-	.text
-	.align		32
-ENTRY(strcspn)
-	sub		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	mov		1, %o4				/* IEU1				*/
-	stx		%o4, [%sp + STACK_OFFSET]	/* Store	Group		*/
-	mov		%o0, %g4			/* IEU0				*/
-
-	stx		%g0, [%sp + STACK_OFFSET + 8]	/* Store	Group		*/
-	add		%sp, STACK_OFFSET, %o5		/* IEU0				*/
-	stx		%g0, [%sp + STACK_OFFSET + 16]	/* Store	Group		*/
-	stx		%g0, [%sp + STACK_OFFSET + 24]	/* Store	Group		*/
-
-1:	ldub		[%o1], %o2			/* Load		Group		*/
-	brz,pn		%o2, 2f				/* CTI+IEU1	Group		*/
-	 srl		%o2, 3, %o3			/* IEU0				*/
-	and		%o3, 0x18, %o3			/* IEU0		Group		*/
-
-	and		%o2, 0x3f, %o2			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %o2, %g1			/* IEU0				*/
-	add		%o1, 1, %o1			/* IEU1				*/
-
-	or		%g2, %g1, %g2			/* IEU0		Group		*/
-	ba,pt		%xcc, 1b			/* CTI				*/
-	 stx		%g2, [%o5 + %o3]		/* Store			*/
-2:	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-
-	be,a,pt		%xcc, 4f			/* CTI				*/
-	 ldx		[%o0], %o2			/* Load				*/
-	ldub		[%o0], %o2			/* Load		Group		*/
-3:	srl		%o2, 3, %o3			/* IEU0		Group		*/
-
-	and		%o2, 0x3f, %o2			/* IEU1				*/
-	and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %o2, %g1			/* IEU0				*/
-
-	add		%o0, 1, %o0			/* IEU1				*/
-	andcc		%g2, %g1, %g0			/* IEU1		Group		*/
-	bne,pn		%xcc, 12f			/* CTI				*/
-	 andcc		%o0, 7, %g0			/* IEU1		Group		*/
-
-	bne,a,pt	%icc, 3b			/* CTI				*/
-	 ldub		[%o0], %o2			/* Load				*/
-	ldx		[%o0], %o2			/* Load		Group		*/
-4:	srlx		%o2, 59, %o3			/* IEU0		Group		*/
-
-	srlx		%o2, 56, %g5			/* IEU0		Group		*/
-5:	and		%o3, 0x18, %o3			/* IEU1				*/
-	andcc		%g5, 0x3f, %g5			/* IEU1		Group		*/
-	ldx		[%o5 + %o3], %g2		/* Load				*/
-
-	srlx		%o2, 51, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 48, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	bne,pn		%xcc, 13f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 43, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 40, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	bne,pn		%xcc, 14f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 35, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 32, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	bne,pn		%xcc, 15f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 27, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 24, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	bne,pn		%xcc, 16f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 19, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 16, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	bne,pn		%xcc, 17f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 11, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	add		%o0, 8, %o0			/* IEU1				*/
-	srlx		%o2, 8, %g5			/* IEU0		Group		*/
-
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-	bne,pn		%xcc, 18f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %g5, %g1			/* IEU0				*/
-	mov		%o2, %g5			/* IEU1				*/
-	srlx		%o2, 3, %o3			/* IEU0		Group		*/
-
-	ldxa		[%o0] ASI_PNF, %o2		/* Load				*/
-	andcc		%g2, %g1, %g2			/* IEU1		Group		*/
-	bne,pn		%xcc, 19f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %g5, %g1			/* IEU0				*/
-	srlx		%o2, 59, %o3			/* IEU0		Group		*/
-
-	andcc		%g2, %g1, %g2			/* IEU1		Group		*/
-	be,pt		%xcc, 5b			/* CTI				*/
-	 srlx		%o2, 56, %g5			/* IEU0		Group		*/
-	sub		%o0, 1, %o0			/* IEU1				*/
-
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-	.align		16
-19:	sub		%o0, 2, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-18:	sub		%o0, 3, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-17:	add		%o0, 4, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-16:	add		%o0, 3, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-15:	add		%o0, 2, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-14:	add		%o0, 1, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-13:	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-	.align		16
-12:	sub		%o0, 1, %o0			/* IEU0		Group		*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-END(strcspn)
-libc_hidden_builtin_def (strcspn)
diff --git a/sysdeps/sparc/sparc64/strlen.S b/sysdeps/sparc/sparc64/strlen.S
deleted file mode 100644
index 25a63df03a..0000000000
--- a/sysdeps/sparc/sparc64/strlen.S
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Determine the length of a string.  For SPARC v9.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz>,
-                  Jakub Jelinek <jj@ultra.linux.cz>, and
-                  David S. Miller <davem@davemloft.net>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-
-	.text
-	.align		32
-ENTRY(strlen)
-	mov	%o0, %o1
-	andn	%o0, 0x7, %o0
-
-	ldx	[%o0], %o5
-	and	%o1, 0x7, %g1
-	mov	-1, %g5
-
-	sethi	%hi(0x01010101), %o2
-	sll	%g1, 3, %g1
-
-	or	%o2, %lo(0x01010101), %o2
-	srlx	%g5, %g1, %o3
-
-	sllx	%o2, 32, %g1
-	sethi	%hi(0x0000ff00), %g5
-
-	orn	%o5, %o3, %o5
-	or	%o2, %g1, %o2
-
-	sllx	%o2, 7, %o3
-10:	add	%o0, 8, %o0
-
-	andn	%o3, %o5, %g1
-	sub	%o5, %o2, %g2
-
-	andcc	%g1, %g2, %g0
-	be,a,pt	%xcc, 10b
-	 ldx	[%o0], %o5
-	srlx	%o5, 32, %g1
-
-	andn	%o3, %g1, %o4
-	sub	%g1, %o2, %g2
-
-	add	%o0, 4, %g3
-	andcc	%o4, %g2, %g0
-	movne	%icc, %g1, %o5
-
-	move	%icc, %g3, %o0
-	or	%g5, %lo(0x0000ff00), %g5
-	mov	3 - 8, %g2
-
-	andcc	%o5, %g5, %g0
-	srlx	%o5, 16, %g1
-	move	%icc, 2 - 8, %g2
-
-	andcc	%g1, 0xff, %g0
-	srl	%o5, 24, %o5
-	move	%icc, 1 - 8, %g2
-
-	movrz	%o5, 0 - 8, %g2
-	sub	%o0, %o1, %o0
-
-	retl
-	 add	%o0, %g2, %o0
-END(strlen)
-libc_hidden_builtin_def (strlen)
diff --git a/sysdeps/sparc/sparc64/strncmp.S b/sysdeps/sparc/sparc64/strncmp.S
deleted file mode 100644
index f0af16155b..0000000000
--- a/sysdeps/sparc/sparc64/strncmp.S
+++ /dev/null
@@ -1,363 +0,0 @@
-/* Compare no more than N characters of S1 and S2, returning less than,
-   equal to or greater than zero if S1 is lexicographically less than,
-   equal to or greater than S2.
-   For SPARC v9.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
-                  Jakub Jelinek <jj@ultra.linux.cz>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define USE_BPR
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-	.register	%g6, #scratch
-#endif
-
-	/* Normally, this uses
-	   ((xword - 0x0101010101010101) & 0x8080808080808080) test
-	   to find out if any byte in xword could be zero. This is fast, but
-	   also gives false alarm for any byte in range 0x81-0xff. It does
-	   not matter for correctness, as if this test tells us there could
-	   be some zero byte, we check it byte by byte, but if bytes with
-	   high bits set are common in the strings, then this will give poor
-	   performance. You can #define EIGHTBIT_NOT_RARE and the algorithm
-	   will use one tick slower, but more precise test
-	   ((xword - 0x0101010101010101) & (~xword) & 0x8080808080808080),
-	   which does not give any false alarms (but if some bits are set,
-	   one cannot assume from it which bytes are zero and which are not).
-	   It is yet to be measured, what is the correct default for glibc
-	   in these days for an average user.
-	 */
-
-	.text
-	.align		32
-ENTRY(strncmp)
-#ifdef USE_BPR
-	brz,pn		%o2, 4f				/* CTI+IEU1	Group		*/
-#else
-	tst		%o2				/* IEU1		Group		*/
-	be,pn		%XCC, 4f			/* CTI				*/
-#endif
-	 sethi		%hi(0x1010101), %g1		/* IEU0				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	bne,pn		%icc, 9f			/* CTI				*/
-
-	 or		%g1, %lo(0x1010101), %g1	/* IEU0				*/
-	andcc		%o1, 7, %g3			/* IEU1		Group		*/
-	bne,pn		%icc, 11f			/* CTI				*/
-	 sllx		%g1, 32, %g2			/* IEU0				*/
-
-	ldx		[%o0], %g4			/* Load		Group		*/
-	or		%g1, %g2, %g1			/* IEU0				*/
-1:	ldx		[%o1], %o3			/* Load		Group		*/
-	sllx		%g1, 7, %g2			/* IEU0				*/
-
-	add		%o0, 8, %o0			/* IEU1				*/
-2:	subcc		%o2, 8, %o2			/* IEU1		Group		*/
-	bcs,pn		%XCC, 5f			/* CTI				*/
-	 add		%o1, 8, %o1			/* IEU0				*/
-
-	sub		%g4, %g1, %g3			/* IEU0		Group		*/
-	subcc		%g4, %o3, %o4			/* IEU1				*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%g3, %g4, %g6			/* IEU0		Group		*/
-#endif
-	bne,pn		%xcc, 6f			/* CTI				*/
-	 ldxa		[%o0] ASI_PNF, %g4		/* Load		Group		*/
-
-	add		%o0, 8, %o0			/* IEU0				*/
-#ifdef EIGHTBIT_NOT_RARE
-	andcc		%g6, %g2, %g0			/* IEU1				*/
-#else
-	andcc		%g3, %g2, %g0			/* IEU1				*/
-#endif
-	be,a,pt		%xcc, 2b			/* CTI				*/
-	 ldxa		[%o1] ASI_PNF, %o3		/* Load		Group		*/
-
-	addcc		%g3, %g1, %o4			/* IEU1				*/
-#ifdef EIGHTBIT_NOT_RARE
-	srlx		%g6, 32, %g6			/* IEU0				*/
-	andcc		%g6, %g2, %g0			/* IEU1		Group		*/
-#else
-	srlx		%g3, 32, %g3			/* IEU0				*/
-	andcc		%g3, %g2, %g0			/* IEU1		Group		*/
-#endif
-	be,pt		%xcc, 3f			/* CTI				*/
-
-	 srlx		%o4, 56, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4f			/* CTI				*/
-	 srlx		%o4, 48, %o5			/* IEU0				*/
-
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4f			/* CTI				*/
-	 srlx		%o4, 40, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 4f			/* CTI				*/
-	 srlx		%o4, 32, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4f			/* CTI				*/
-
-3:	 srlx		%o4, 24, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4f			/* CTI				*/
-	 srlx		%o4, 16, %o5			/* IEU0				*/
-
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4f			/* CTI				*/
-	 srlx		%o4, 8, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 4f			/* CTI				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	bne,a,pn	%icc, 2b			/* CTI				*/
-	 ldxa		[%o1] ASI_PNF, %o3		/* Load				*/
-
-4:	retl						/* CTI+IEU1	Group		*/
-	 clr		%o0				/* IEU0				*/
-
-	.align		16
-5:	srlx		%g4, 56, %o4			/* IEU0		Group		*/
-	cmp		%o2, -8				/* IEU1				*/
-	be,pn		%XCC, 4b			/* CTI				*/
-	 srlx		%o3, 56, %o5			/* IEU0		Group		*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1				*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 8f			/* CTI				*/
-
-	 srlx		%o3, 48, %o5			/* IEU0				*/
-	cmp		%o2, -7				/* IEU1		Group		*/
-	be,pn		%XCC, 4b			/* CTI				*/
-	 srlx		%g4, 48, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 8f			/* CTI				*/
-
-	 srlx		%o3, 40, %o5			/* IEU0				*/
-	cmp		%o2, -6				/* IEU1		Group		*/
-	be,pn		%XCC, 4b			/* CTI				*/
-	 srlx		%g4, 40, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 8f			/* CTI				*/
-
-	 srlx		%o3, 32, %o5			/* IEU0				*/
-	cmp		%o2, -5				/* IEU1		Group		*/
-	be,pn		%XCC, 4b			/* CTI				*/
-	 srlx		%g4, 32, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 8f			/* CTI				*/
-
-	 srlx		%o3, 24, %o5			/* IEU0				*/
-	cmp		%o2, -4				/* IEU1		Group		*/
-	be,pn		%XCC, 4b			/* CTI				*/
-	 srlx		%g4, 24, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 8f			/* CTI				*/
-
-	 srlx		%o3, 16, %o5			/* IEU0				*/
-	cmp		%o2, -3				/* IEU1		Group		*/
-	be,pn		%XCC, 4b			/* CTI				*/
-	 srlx		%g4, 16, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 8f			/* CTI				*/
-
-	 srlx		%o3, 8, %o5			/* IEU0				*/
-	cmp		%o2, -2				/* IEU1		Group		*/
-	be,pn		%XCC, 4b			/* CTI				*/
-	 srlx		%g4, 8, %o4			/* IEU0				*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o4, %o5, %o0			/* IEU0				*/
-6:	addcc		%o3, %o4, %g4			/* IEU1				*/
-7:	srlx		%o3, 56, %o5			/* IEU0				*/
-
-	srlx		%g4, 56, %o4			/* IEU0		Group		*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-
-	bne,pn		%xcc, 8f			/* CTI				*/
-	 srlx		%o3, 48, %o5			/* IEU0				*/
-	srlx		%g4, 48, %o4			/* IEU0		Group		*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 8f			/* CTI				*/
-	 srlx		%o3, 40, %o5			/* IEU0				*/
-
-	srlx		%g4, 40, %o4			/* IEU0		Group		*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-
-	bne,pn		%xcc, 8f			/* CTI				*/
-	 srlx		%o3, 32, %o5			/* IEU0				*/
-	srlx		%g4, 32, %o4			/* IEU0		Group		*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 8f			/* CTI				*/
-	 srlx		%o3, 24, %o5			/* IEU0				*/
-
-	srlx		%g4, 24, %o4			/* IEU0		Group		*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-
-	bne,pn		%xcc, 8f			/* CTI				*/
-	 srlx		%o3, 16, %o5			/* IEU0				*/
-	srlx		%g4, 16, %o4			/* IEU0		Group		*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-	bne,pn		%xcc, 8f			/* CTI				*/
-	 srlx		%o3, 8, %o5			/* IEU0				*/
-
-	srlx		%g4, 8, %o4			/* IEU0		Group		*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 8f			/* CTI				*/
-	 subcc		%o4, %o5, %o4			/* IEU1		Group		*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%g4, %o3, %o0			/* IEU0				*/
-8:	retl						/* CTI+IEU1	Group		*/
-	 mov		%o4, %o0			/* IEU0				*/
-
-9:	ldub		[%o0], %g4			/* Load		Group		*/
-	add		%o0, 1, %o0			/* IEU0				*/
-	ldub		[%o1], %o3			/* Load		Group		*/
-	sllx		%g1, 32, %g2			/* IEU0				*/
-
-10:	subcc		%o2, 1, %o2			/* IEU1		Group		*/
-	be,pn		%XCC, 8b			/* CTI				*/
-	 sub		%g4, %o3, %o4			/* IEU0				*/
-	add		%o1, 1, %o1			/* IEU0		Group		*/
-
-	cmp		%g4, %o3			/* IEU1				*/
-	bne,pn		%xcc, 8b			/* CTI				*/
-	 lduba		[%o0] ASI_PNF, %g4		/* Load		Group		*/
-	andcc		%o3, 0xff, %g0			/* IEU1				*/
-
-	be,pn		%icc, 4b			/* CTI				*/
-	 lduba		[%o1] ASI_PNF, %o3		/* Load		Group		*/
-	andcc		%o0, 7, %g0			/* IEU1				*/
-	bne,a,pn	%icc, 10b			/* CTI				*/
-
-	 add		%o0, 1, %o0			/* IEU0		Group		*/
-	or		%g1, %g2, %g1			/* IEU1				*/
-	andcc		%o1, 7, %g3			/* IEU1		Group		*/
-	be,pn		%icc, 1b			/* CTI				*/
-
-	 ldxa		[%o0] ASI_PNF, %g4		/* Load				*/
-11:	sllx		%g3, 3, %g5			/* IEU0		Group		*/
-	mov		64, %g6				/* IEU1				*/
-	or		%g1, %g2, %g1			/* IEU0		Group		*/
-	sub		%o1, %g3, %o1			/* IEU1				*/
-
-	sub		%g6, %g5, %g6			/* IEU0		Group		*/
-	ldxa		[%o1] ASI_PNF, %o4		/* Load				*/
-	sllx		%g1, 7, %g2			/* IEU1				*/
-	add		%o1, 8, %o1			/* IEU0		Group		*/
-							/* %g1 = 0101010101010101
-							   %g2 = 8080808080808080
-							   %g3 = %o1 alignment
-							   %g5 = number of bits to shift left
-							   %g6 = number of bits to shift right */
-
-12:	sllx		%o4, %g5, %o3			/* IEU0		Group		*/
-	ldxa		[%o1] ASI_PNF, %o4		/* Load				*/
-	add		%o1, 8, %o1			/* IEU1				*/
-13:	ldxa		[%o0] ASI_PNF, %g4		/* Load		Group		*/
-
-	addcc		%o0, 8, %o0			/* IEU1				*/
-	srlx		%o4, %g6, %o5			/* IEU0				*/
-	subcc		%o2, 8, %o2			/* IEU1		Group		*/
-	bcs,pn		%XCC, 5b			/* CTI				*/
-
-	 or		%o3, %o5, %o3			/* IEU0				*/
-	cmp		%g4, %o3			/* IEU1		Group		*/
-	bne,pn		%xcc, 7b			/* CTI				*/
-	 sub		%g4, %g1, %o5			/* IEU0				*/
-
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o5, %g4, %o5			/* IEU0		Group		*/
-#endif
-	andcc		%o5, %g2, %g0			/* IEU1		Group		*/
-	be,pt		%xcc, 12b			/* CTI				*/
-	 srlx		%o5, 32, %o5			/* IEU0				*/
-	andcc		%o5, %g2, %g0			/* IEU1		Group		*/
-
-	be,pt		%xcc, 14f			/* CTI				*/
-	 srlx		%g4, 56, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-
-	 srlx		%g4, 48, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-	 srlx		%g4, 40, %o5			/* IEU0				*/
-
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-	 srlx		%g4, 32, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 4b			/* CTI				*/
-14:	 srlx		%g4, 24, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-
-	 srlx		%g4, 16, %o5			/* IEU0				*/
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-	 srlx		%g4, 8, %o5			/* IEU0				*/
-
-	andcc		%o5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-	 andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 4b			/* CTI				*/
-
-	 sllx		%o4, %g5, %o3			/* IEU0				*/
-	ldxa		[%o1] ASI_PNF, %o4		/* Load		Group		*/
-	ba,pt		%xcc, 13b			/* CTI				*/
-	 add		%o1, 8, %o1			/* IEU0				*/
-END(strncmp)
-libc_hidden_builtin_def (strncmp)
diff --git a/sysdeps/sparc/sparc64/strncpy.S b/sysdeps/sparc/sparc64/strncpy.S
deleted file mode 100644
index f8c801f552..0000000000
--- a/sysdeps/sparc/sparc64/strncpy.S
+++ /dev/null
@@ -1,396 +0,0 @@
-/* strncpy(DST, SRC, COUNT) - Copy no more than COUNT bytes of the
-   null-terminated string from SRC to DST.  If SRC does not cover all of
-   COUNT, the balance is zeroed.
-   For SPARC v9.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
-                  Jakub Jelinek <jj@ultra.linux.cz>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define USE_BPR
-	.register	%g2, #scratch
-	.register	%g3, #scratch
-	.register	%g6, #scratch
-#endif
-
-	/* Normally, this uses
-	   ((xword - 0x0101010101010101) & 0x8080808080808080) test
-	   to find out if any byte in xword could be zero. This is fast, but
-	   also gives false alarm for any byte in range 0x81-0xff. It does
-	   not matter for correctness, as if this test tells us there could
-	   be some zero byte, we check it byte by byte, but if bytes with
-	   high bits set are common in the strings, then this will give poor
-	   performance. You can #define EIGHTBIT_NOT_RARE and the algorithm
-	   will use one tick slower, but more precise test
-	   ((xword - 0x0101010101010101) & (~xword) & 0x8080808080808080),
-	   which does not give any false alarms (but if some bits are set,
-	   one cannot assume from it which bytes are zero and which are not).
-	   It is yet to be measured, what is the correct default for glibc
-	   in these days for an average user.
-	 */
-
-	.text
-	.align		32
-ENTRY(strncpy)
-	sethi		%hi(0x01010101), %g1		/* IEU0		Group		*/
-#ifdef USE_BPR
-	brz,pn		%o2, 19f			/* CTI+IEU1			*/
-#else
-	tst		%o2				/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-#endif
-	 mov		%o0, %g6			/* IEU0		Group		*/
-	or		%g1, %lo(0x01010101), %g1	/* IEU1				*/
-
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	sllx		%g1, 32, %g2			/* IEU0				*/
-	bne,pn		%icc, 26f			/* CTI				*/
-	 or		%g1, %g2, %g1			/* IEU0		Group		*/
-
-	andcc		%o1, 7, %g3			/* IEU1				*/
-	bne,pn		%icc, 28f			/* CTI				*/
-	 sllx		%g1, 7, %g2			/* IEU0		Group		*/
-	ldx		[%o1], %o3			/* Load				*/
-
-1:	add		%o1, 8, %o1			/* IEU1				*/
-2:	subcc		%o2, 8, %o2			/* IEU1		Group		*/
-	bl,pn		%XCC, 18f			/* CTI				*/
-	 sub		%o3, %g1, %o4			/* IEU0				*/
-
-	add		%o0, 8, %o0			/* IEU0		Group		*/
-#ifdef EIGHTBIT_NOT_MORE
-	andn		%o4, %o3, %o4			/* IEU1				*/
-#endif
-	mov		%o3, %g3			/* IEU1				*/
-	ldxa		[%o1] ASI_PNF, %o3		/* Load				*/
-	add		%o1, 8, %o1			/* IEU0		Group		*/
-
-	andcc		%o4, %g2, %g0			/* IEU1				*/
-	be,a,pt		%xcc, 2b			/* CTI				*/
-	 stx		%g3, [%o0-8]			/* Store	Group		*/
-	srlx		%g3, 56, %g5			/* IEU0		Group		*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 16f			/* CTI				*/
-	 srlx		%g3, 48, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 15f			/* CTI				*/
-	 srlx		%g3, 40, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 14f			/* CTI				*/
-
-	 srlx		%g3, 32, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 13f			/* CTI				*/
-	 srlx		%g3, 24, %g5			/* IEU0				*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 12f			/* CTI				*/
-	 srlx		%g3, 16, %g4			/* IEU0				*/
-	andcc		%g4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 11f			/* CTI				*/
-	 srlx		%g3, 8, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 10f			/* CTI				*/
-
-	 andcc		%g3, 0xff, %g0			/* IEU1		Group		*/
-	bne,pt		%icc, 2b			/* CTI				*/
-3:	 stx		%g3, [%o0-8]			/* Store			*/
-	andncc		%o2, 31, %g3			/* IEU1		Group		*/
-
-4:	be,pn		%XCC, 41f			/* CTI				*/
-	 and		%o2, 31, %o2			/* IEU1		Group		*/
-40:	stx		%g0, [%o0]			/* Store			*/
-	stx		%g0, [%o0 + 8]			/* Store	Group		*/
-
-	subcc		%g3, 32, %g3			/* IEU1				*/
-	stx		%g0, [%o0 + 16]			/* Store	Group		*/
-	stx		%g0, [%o0 + 24]			/* Store	Group		*/
-	bne,pt		%XCC, 40b			/* CTI				*/
-
-	 add		%o0, 32, %o0			/* IEU0				*/
-41:	subcc		%o2, 8, %o2			/* IEU1		Group		*/
-	bl,a,pn		%XCC, 6f			/* CTI				*/
-	 andcc		%o2, 4, %g0			/* IEU1		Group		*/
-
-5:	stx		%g0, [%o0]			/* Store			*/
-	subcc		%o2, 8, %o2			/* IEU1		Group		*/
-	bge,pt		%XCC, 5b			/* CTI				*/
-	 add		%o0, 8, %o0			/* IEU0				*/
-
-	andcc		%o2, 4, %g0			/* IEU1		Group		*/
-6:	be,a,pn		%icc, 7f			/* CTI				*/
-	 andcc		%o2, 2, %g0			/* IEU1		Group		*/
-	stw		%g0, [%o0]			/* Store			*/
-
-	add		%o0, 4, %o0			/* IEU0				*/
-	andcc		%o2, 2, %g0			/* IEU1		Group		*/
-7:	be,a,pn		%icc, 8f			/* CTI				*/
-	 andcc		%o2, 1, %g0			/* IEU1		Group		*/
-
-	sth		%g0, [%o0]			/* Store			*/
-	add		%o0, 2, %o0			/* IEU0				*/
-	andcc		%o2, 1, %g0			/* IEU1		Group		*/
-8:	bne,a,pn	%icc, 9f			/* CTI				*/
-
-	 stb		%g0, [%o0]			/* Store			*/
-9:	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-
-	.align		16
-10:	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%g5, 8, %g3			/* IEU0				*/
-11:	ba,pt		%xcc, 3b			/* CTI		Group		*/
-	 sllx		%g4, 16, %g3			/* IEU0				*/
-
-12:	ba,pt		%xcc, 3b			/* CTI		Group		*/
-	 sllx		%g5, 24, %g3			/* IEU0				*/
-13:	ba,pt		%xcc, 3b			/* CTI		Group		*/
-	 sllx		%g4, 32, %g3			/* IEU0				*/
-
-14:	ba,pt		%xcc, 3b			/* CTI		Group		*/
-	 sllx		%g5, 40, %g3			/* IEU0				*/
-15:	ba,pt		%xcc, 3b			/* CTI		Group		*/
-	 sllx		%g4, 48, %g3			/* IEU0				*/
-
-16:	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%g5, 56, %g3			/* IEU0				*/
-17:	or		%o3, %o4, %o3			/* IEU0		Group		*/
-	sub		%o3, %g1, %o4			/* IEU1				*/
-
-18:	addcc		%o2, 8, %o2			/* IEU1		Group		*/
-	be,pn		%XCC, 19f			/* CTI				*/
-	 andcc		%o4, %g2, %g0			/* IEU1		Group		*/
-	be,pt		%xcc, 21f			/* CTI				*/
-
-	 srlx		%o3, 56, %g5			/* IEU0				*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-	 stb		%g5, [%o0]			/* Store			*/
-
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-	 srlx		%o3, 48, %g5			/* IEU0		Group		*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-	 stb		%g5, [%o0]			/* Store			*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-	 srlx		%o3, 40, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 20f			/* CTI				*/
-	 stb		%g5, [%o0]			/* Store			*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-
-	be,pn		%XCC, 19f			/* CTI				*/
-	 srlx		%o3, 32, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-
-	 stb		%g5, [%o0]			/* Store			*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-
-	 srlx		%o3, 24, %g5			/* IEU0		Group		*/
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-	 stb		%g5, [%o0]			/* Store			*/
-
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-	 srlx		%o3, 16, %g5			/* IEU0		Group		*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 20f			/* CTI				*/
-	 stb		%g5, [%o0]			/* Store			*/
-	add		%o0, 1, %o0			/* IEU0		Group		*/
-
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	be,pn		%XCC, 19f			/* CTI				*/
-	 srlx		%o3, 8, %g5			/* IEU0		Group		*/
-	stb		%g5, [%o0]			/* Store			*/
-
-19:	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-50:	stb		%g0, [%o0]			/* Store	Group		*/
-20:	subcc		%o2, 1, %o2			/* IEU1		Group		*/
-
-	bne,pt		%XCC, 50b			/* CTI				*/
-	 add		%o0, 1, %o0			/* IEU0				*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-
-21:	andcc		%o2, 4, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 22f			/* CTI				*/
-	 srlx		%o3, 32, %g5			/* IEU0				*/
-	stw		%g5, [%o0]			/* Store	Group		*/
-
-	add		%o0, 4, %o0			/* IEU0				*/
-	mov		%o3, %g5			/* IEU1				*/
-22:	andcc		%o2, 2, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 23f			/* CTI				*/
-
-	 srlx		%g5, 16, %g4			/* IEU0				*/
-	sth		%g4, [%o0]			/* Store	Group		*/
-	add		%o0, 2, %o0			/* IEU0				*/
-	mov		%g5, %g4			/* IEU1				*/
-
-23:	srlx		%g4, 8, %g4			/* IEU0		Group		*/
-	andcc		%o2, 1, %g0			/* IEU1				*/
-	bne,a,pn	%icc, 24f			/* CTI				*/
-	 stb		%g4, [%o0]			/* Store	Group		*/
-
-24:	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-25:	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	be,a,pn		%icc, 4b			/* CTI				*/
-
-	 andncc		%o2, 31, %g3			/* IEU1		Group		*/
-	stb		%g0, [%o0]			/* Store	Group		*/
-	subcc		%o2, 1, %o2			/* IEU1				*/
-	bne,pt		%XCC, 25b			/* CTI				*/
-
-	 add		%o0, 1, %o0			/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 mov		%g6, %o0			/* IEU0				*/
-
-	.align		16
-26:	ldub		[%o1], %o3			/* Load				*/
-	sllx		%g1, 7, %g2			/* IEU0		Group		*/
-	stb		%o3, [%o0]			/* Store			*/
-27:	subcc		%o2, 1, %o2			/* IEU1				*/
-
-	be,pn		%XCC, 9b			/* CTI				*/
-	 add		%o1, 1, %o1			/* IEU0		Group		*/
-	add		%o0, 1, %o0			/* IEU1				*/
-	andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 25b			/* CTI				*/
-	 lduba		[%o1] ASI_PNF, %o3		/* Load				*/
-	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	bne,a,pt	%icc, 27b			/* CTI				*/
-
-	 stb		%o3, [%o0]			/* Store			*/
-	andcc		%o1, 7, %g3			/* IEU1		Group		*/
-	be,a,pt		%icc, 1b			/* CTI				*/
-	 ldx		[%o1], %o3			/* Load				*/
-
-28:	orcc		%g0, 64, %g4			/* IEU1		Group		*/
-	sllx		%g3, 3, %g5			/* IEU0				*/
-	sub		%g4, %g5, %g4			/* IEU0		Group		*/
-	sub		%o1, %g3, %o1			/* IEU1				*/
-							/* %g1 = 0101010101010101
-							   %g2 = 8080808080808080
-							   %g3 = source alignment
-							   %g5 = number of bits to shift left
-							   %g4 = number of bits to shift right */
-
-	ldxa		[%o1] ASI_PNF, %o5		/* Load		Group		*/
-	addcc		%o1, 8, %o1			/* IEU1				*/
-
-29:	sllx		%o5, %g5, %o3			/* IEU0		Group		*/
-	ldxa		[%o1] ASI_PNF, %o5		/* Load				*/
-	subcc		%o2, 8, %o2			/* IEU1				*/
-	bl,pn		%XCC, 17b			/* CTI				*/
-
-	 srlx		%o5, %g4, %o4			/* IEU0		Group		*/
-	add		%o1, 8, %o1			/* IEU1				*/
-	or		%o3, %o4, %o3			/* IEU0		Group		*/
-	add		%o0, 8, %o0			/* IEU1				*/
-
-	sub		%o3, %g1, %o4			/* IEU0		Group		*/
-#ifdef EIGHTBIT_NOT_RARE
-	andn		%o4, %o3, %o4			/* IEU0		Group		*/
-#endif
-	andcc		%o4, %g2, %g0			/* IEU1		Group		*/
-	be,a,pt		%xcc, 29b			/* CTI				*/
-	 stx		%o3, [%o0-8]			/* Store			*/
-
-	srlx		%o3, 56, %o4			/* IEU0		Group		*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 36f			/* CTI				*/
-	 srlx		%o3, 48, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 35f			/* CTI				*/
-	 srlx		%o3, 40, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 34f			/* CTI				*/
-	 srlx		%o3, 32, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 33f			/* CTI				*/
-
-	 srlx		%o3, 24, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 32f			/* CTI				*/
-	 srlx		%o3, 16, %o4			/* IEU0				*/
-
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-	be,pn		%icc, 31f			/* CTI				*/
-	 srlx		%o3, 8, %o4			/* IEU0				*/
-	andcc		%o4, 0xff, %g0			/* IEU1		Group		*/
-
-	be,pn		%icc, 30f			/* CTI				*/
-	 andcc		%o3, 0xff, %g0			/* IEU1		Group		*/
-	bne,pn		%icc, 29b			/* CTI				*/
-	 stx		%o3, [%o0-8]			/* Store			*/
-
-	ba,pt		%xcc, 4b			/* CTI		Group		*/
-	 andncc		%o2, 31, %g3			/* IEU1				*/
-30:	srlx		%o3, 8, %o4			/* IEU0				*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-
-	 sllx		%o4, 8, %g3			/* IEU0		Group		*/
-31:	srlx		%o3, 16, %o4			/* IEU0		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%o4, 16, %g3			/* IEU0		Group		*/
-
-32:	srlx		%o3, 24, %o4			/* IEU0		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%o4, 24, %g3			/* IEU0		Group		*/
-33:	srlx		%o3, 32, %o4			/* IEU0		Group		*/
-
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%o4, 32, %g3			/* IEU0		Group		*/
-34:	srlx		%o3, 40, %o4			/* IEU0		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-
-	 sllx		%o4, 40, %g3			/* IEU0		Group		*/
-35:	srlx		%o3, 48, %o4			/* IEU0		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%o4, 48, %g3			/* IEU0		Group		*/
-
-36:	srlx		%o3, 56, %o4			/* IEU0		Group		*/
-	ba,pt		%xcc, 3b			/* CTI				*/
-	 sllx		%o4, 56, %g3			/* IEU0		Group		*/
-END(strncpy)
-libc_hidden_builtin_def (strncpy)
diff --git a/sysdeps/sparc/sparc64/strpbrk.S b/sysdeps/sparc/sparc64/strpbrk.S
deleted file mode 100644
index 08e0c2f30f..0000000000
--- a/sysdeps/sparc/sparc64/strpbrk.S
+++ /dev/null
@@ -1,230 +0,0 @@
-/* strpbrk (s, accept) -- Find the first occurrence in S of any character in
-			  ACCEPT.
-   For SPARC v9.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define STACK_SIZE	128
-#define STACK_OFFSET	128+0x7ff
-	.register	%g2, #scratch
-#else
-#define STACK_SIZE	64
-#define STACK_OFFSET	64
-#endif
-
-	.text
-	.align		32
-ENTRY(strpbrk)
-	sub		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	mov		1, %o4				/* IEU1				*/
-	stx		%o4, [%sp + STACK_OFFSET]	/* Store	Group		*/
-	stx		%g0, [%sp + STACK_OFFSET + 8]	/* Store	Group		*/
-
-	add		%sp, STACK_OFFSET, %o5		/* IEU0				*/
-	stx		%g0, [%sp + STACK_OFFSET + 16]	/* Store	Group		*/
-	stx		%g0, [%sp + STACK_OFFSET + 24]	/* Store	Group		*/
-1:	ldub		[%o1], %o2			/* Load		Group		*/
-
-	brz,pn		%o2, 2f				/* CTI+IEU1	Group		*/
-	 srl		%o2, 3, %o3			/* IEU0				*/
-	and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%o2, 0x3f, %o2			/* IEU1				*/
-
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %o2, %g1			/* IEU0				*/
-	add		%o1, 1, %o1			/* IEU1				*/
-	or		%g2, %g1, %g2			/* IEU0		Group		*/
-
-	ba,pt		%xcc, 1b			/* CTI				*/
-	 stx		%g2, [%o5 + %o3]		/* Store			*/
-2:	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	be,a,pt		%xcc, 4f			/* CTI				*/
-
-	 ldx		[%o0], %o2			/* Load				*/
-	ldub		[%o0], %o2			/* Load		Group		*/
-3:	srl		%o2, 3, %o3			/* IEU0		Group		*/
-	and		%o2, 0x3f, %o2			/* IEU1				*/
-
-	and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %o2, %g1			/* IEU0				*/
-	add		%o0, 1, %o0			/* IEU1				*/
-
-	andcc		%g2, %g1, %g0			/* IEU1		Group		*/
-	bne,pn		%xcc, 12f			/* CTI				*/
-	 andcc		%o0, 7, %g0			/* IEU1		Group		*/
-	bne,a,pt	%icc, 3b			/* CTI				*/
-
-	 ldub		[%o0], %o2			/* Load				*/
-	ldx		[%o0], %o2			/* Load		Group		*/
-4:	srlx		%o2, 59, %o3			/* IEU0		Group		*/
-	srlx		%o2, 56, %g4			/* IEU0		Group		*/
-
-5:	and		%o3, 0x18, %o3			/* IEU1				*/
-	andcc		%g4, 0x3f, %g4			/* IEU1		Group		*/
-	ldx		[%o5 + %o3], %g2		/* Load				*/
-	srlx		%o2, 51, %o3			/* IEU0				*/
-
-	sllx		%o4, %g4, %g1			/* IEU0		Group		*/
-	srlx		%o2, 48, %g4			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-	bne,pn		%xcc, 13f			/* CTI				*/
-
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g4, 0x3f, %g4			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	srlx		%o2, 43, %o3			/* IEU0				*/
-
-	sllx		%o4, %g4, %g1			/* IEU0		Group		*/
-	srlx		%o2, 40, %g4			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-	bne,pn		%xcc, 14f			/* CTI				*/
-
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g4, 0x3f, %g4			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	srlx		%o2, 35, %o3			/* IEU0				*/
-
-	sllx		%o4, %g4, %g1			/* IEU0		Group		*/
-	srlx		%o2, 32, %g4			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-	bne,pn		%xcc, 15f			/* CTI				*/
-
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g4, 0x3f, %g4			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	srlx		%o2, 27, %o3			/* IEU0				*/
-
-	sllx		%o4, %g4, %g1			/* IEU0		Group		*/
-	srlx		%o2, 24, %g4			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-	bne,pn		%xcc, 16f			/* CTI				*/
-
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g4, 0x3f, %g4			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	srlx		%o2, 19, %o3			/* IEU0				*/
-
-	sllx		%o4, %g4, %g1			/* IEU0		Group		*/
-	srlx		%o2, 16, %g4			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-	bne,pn		%xcc, 17f			/* CTI				*/
-
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g4, 0x3f, %g4			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	srlx		%o2, 11, %o3			/* IEU0				*/
-
-	sllx		%o4, %g4, %g1			/* IEU0		Group		*/
-	add		%o0, 8, %o0			/* IEU1				*/
-	srlx		%o2, 8, %g4			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	bne,pn		%xcc, 18f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g4, 0x3f, %g4			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	sllx		%o4, %g4, %g1			/* IEU0				*/
-	mov		%o2, %g5			/* IEU1				*/
-	srlx		%o2, 3, %o3			/* IEU0		Group		*/
-	ldxa		[%o0] ASI_PNF, %o2		/* Load				*/
-
-	andcc		%g2, %g1, %g2			/* IEU1		Group		*/
-	bne,pn		%xcc, 19f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g4			/* IEU1				*/
-
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %g4, %g1			/* IEU0				*/
-	srlx		%o2, 59, %o3			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1		Group		*/
-
-	be,pt		%xcc, 5b			/* CTI				*/
-	 srlx		%o2, 56, %g4			/* IEU0		Group		*/
-	sub		%o0, 1, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-
-	andcc		%g5, 0xff, %g0			/* IEU1				*/
-	retl						/* CTI+IEU1	Group		*/
-	 move		%icc, 0, %o0			/* Single	Group		*/
-
-	.align		16
-19:	sub		%o0, 2, %o0			/* IEU1				*/
-	srl		%g5, 8, %g1			/* IEU0		Group		*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	andcc		%g1, 0xff, %g0			/* IEU1		Group		*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 move		%icc, 0, %o0			/* Single	Group		*/
-18:	sub		%o0, 3, %o0			/* IEU1				*/
-	srl		%o2, 16, %g1			/* IEU0		Group		*/
-
-	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	andcc		%g1, 0xff, %g0			/* IEU1		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 move		%icc, 0, %o0			/* Single	Group		*/
-
-17:	add		%o0, 4, %o0			/* IEU1				*/
-	srl		%o2, 24, %g1			/* IEU0		Group		*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 movrz		%g1, 0, %o0			/* Single	Group		*/
-16:	add		%o0, 3, %o0			/* IEU1				*/
-	srlx		%o2, 32, %g1			/* IEU0		Group		*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-
-	andcc		%g1, 0xff, %g0			/* IEU1		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 move		%icc, 0, %o0			/* Single	Group		*/
-
-	.align		16
-15:	add		%o0, 2, %o0			/* IEU1				*/
-	srlx		%o2, 40, %g1			/* IEU0		Group		*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	andcc		%g1, 0xff, %g0			/* IEU1		Group		*/
-
-	retl						/* CTI+IEU1	Group		*/
-	 move		%icc, 0, %o0			/* Single	Group		*/
-14:	add		%o0, 1, %o0			/* IEU1				*/
-	srlx		%o2, 48, %g1			/* IEU0		Group		*/
-
-	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	andcc		%g1, 0xff, %g0			/* IEU1		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 move		%icc, 0, %o0			/* Single	Group		*/
-
-13:	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	srlx		%o2, 56, %g1			/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 movrz		%g1, 0, %o0			/* Single	Group		*/
-
-	.align		16
-12:	sub		%o0, 1, %o0			/* IEU0		Group		*/
-	or		%o3, %o2, %g1			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-
-	 movrz		%g1, 0, %o0			/* Single	Group		*/
-END(strpbrk)
-libc_hidden_builtin_def (strpbrk)
diff --git a/sysdeps/sparc/sparc64/strrchr.c b/sysdeps/sparc/sparc64/strrchr.c
deleted file mode 100644
index ec608d6ab3..0000000000
--- a/sysdeps/sparc/sparc64/strrchr.c
+++ /dev/null
@@ -1 +0,0 @@
-/* strrchr is in strchr.S */
diff --git a/sysdeps/sparc/sparc64/strspn.S b/sysdeps/sparc/sparc64/strspn.S
deleted file mode 100644
index 7c560b9bc2..0000000000
--- a/sysdeps/sparc/sparc64/strspn.S
+++ /dev/null
@@ -1,212 +0,0 @@
-/* strspn (str, ss) -- Return the length of the maximum initial segment
-		       of S which contains only characters in ACCEPT.
-   For SPARC v9.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <asm/asi.h>
-#ifndef XCC
-#define XCC xcc
-#define STACK_SIZE	128
-#define STACK_OFFSET	128+0x7ff
-	.register	%g2, #scratch
-#else
-#define STACK_SIZE	64
-#define STACK_OFFSET	64
-#endif
-
-	.text
-	.align		32
-ENTRY(strspn)
-	sub		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	mov		1, %o4				/* IEU1				*/
-	stx		%g0, [%sp + STACK_OFFSET]	/* Store	Group		*/
-	mov		%o0, %g4			/* IEU0				*/
-
-	stx		%g0, [%sp + STACK_OFFSET + 8]	/* Store	Group		*/
-	add		%sp, STACK_OFFSET, %o5		/* IEU0				*/
-	stx		%g0, [%sp + STACK_OFFSET + 16]	/* Store	Group		*/
-	stx		%g0, [%sp + STACK_OFFSET + 24]	/* Store	Group		*/
-
-1:	ldub		[%o1], %o2			/* Load		Group		*/
-	brz,pn		%o2, 2f				/* CTI+IEU1	Group		*/
-	 srl		%o2, 3, %o3			/* IEU0				*/
-	and		%o3, 0x18, %o3			/* IEU0		Group		*/
-
-	and		%o2, 0x3f, %o2			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %o2, %g1			/* IEU0				*/
-	add		%o1, 1, %o1			/* IEU1				*/
-
-	or		%g2, %g1, %g2			/* IEU0		Group		*/
-	ba,pt		%xcc, 1b			/* CTI				*/
-	 stx		%g2, [%o5 + %o3]		/* Store			*/
-2:	andcc		%o0, 7, %g0			/* IEU1		Group		*/
-
-	be,a,pt		%xcc, 4f			/* CTI				*/
-	 ldx		[%o0], %o2			/* Load				*/
-	ldub		[%o0], %o2			/* Load		Group		*/
-3:	srl		%o2, 3, %o3			/* IEU0		Group		*/
-
-	and		%o2, 0x3f, %o2			/* IEU1				*/
-	and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %o2, %g1			/* IEU0				*/
-
-	add		%o0, 1, %o0			/* IEU1				*/
-	andcc		%g2, %g1, %g0			/* IEU1		Group		*/
-	be,pn		%xcc, 12f			/* CTI				*/
-	 andcc		%o0, 7, %g0			/* IEU1		Group		*/
-
-	bne,a,pt	%icc, 3b			/* CTI				*/
-	 ldub		[%o0], %o2			/* Load				*/
-	ldx		[%o0], %o2			/* Load		Group		*/
-4:	srlx		%o2, 59, %o3			/* IEU0		Group		*/
-
-	srlx		%o2, 56, %g5			/* IEU0		Group		*/
-5:	and		%o3, 0x18, %o3			/* IEU1				*/
-	andcc		%g5, 0x3f, %g5			/* IEU1		Group		*/
-	ldx		[%o5 + %o3], %g2		/* Load				*/
-
-	srlx		%o2, 51, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 48, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	be,pn		%xcc, 13f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 43, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 40, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	be,pn		%xcc, 14f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 35, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 32, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	be,pn		%xcc, 15f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 27, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 24, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	be,pn		%xcc, 16f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 19, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	srlx		%o2, 16, %g5			/* IEU0		Group		*/
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-
-	be,pn		%xcc, 17f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-
-	srlx		%o2, 11, %o3			/* IEU0				*/
-	sllx		%o4, %g5, %g1			/* IEU0		Group		*/
-	add		%o0, 8, %o0			/* IEU1				*/
-	srlx		%o2, 8, %g5			/* IEU0		Group		*/
-
-	andcc		%g2, %g1, %g2			/* IEU1				*/
-	be,pn		%xcc, 18f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %g5, %g1			/* IEU0				*/
-	mov		%o2, %g5			/* IEU1				*/
-	srlx		%o2, 3, %o3			/* IEU0		Group		*/
-
-	ldxa		[%o0] ASI_PNF, %o2		/* Load				*/
-	andcc		%g2, %g1, %g2			/* IEU1		Group		*/
-	be,pn		%xcc, 19f			/* CTI				*/
-	 and		%o3, 0x18, %o3			/* IEU0		Group		*/
-
-	and		%g5, 0x3f, %g5			/* IEU1				*/
-	ldx		[%o5 + %o3], %g2		/* Load		Group		*/
-	sllx		%o4, %g5, %g1			/* IEU0				*/
-	srlx		%o2, 59, %o3			/* IEU0		Group		*/
-
-	andcc		%g2, %g1, %g2			/* IEU1		Group		*/
-	bne,pt		%xcc, 5b			/* CTI				*/
-	 srlx		%o2, 56, %g5			/* IEU0		Group		*/
-	sub		%o0, 1, %o0			/* IEU1				*/
-
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-	.align		16
-19:	sub		%o0, 2, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-18:	sub		%o0, 3, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-17:	add		%o0, 4, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-16:	add		%o0, 3, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-15:	add		%o0, 2, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-14:	add		%o0, 1, %o0			/* IEU1				*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU0		Group		*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-13:	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-
-	.align		16
-12:	sub		%o0, 1, %o0			/* IEU0		Group		*/
-	add		%sp, STACK_SIZE+32, %sp		/* IEU1				*/
-	retl						/* CTI+IEU1	Group		*/
-	 sub		%o0, %g4, %o0			/* IEU0				*/
-END(strspn)
-libc_hidden_builtin_def (strspn)
diff --git a/sysdeps/sparc/sparc64/sub_n.S b/sysdeps/sparc/sparc64/sub_n.S
deleted file mode 100644
index 006ae809c8..0000000000
--- a/sysdeps/sparc/sparc64/sub_n.S
+++ /dev/null
@@ -1,54 +0,0 @@
-/* SPARC v9 __mpn_sub_n -- Subtract two limb vectors of the same length > 0
-   and store difference in a third limb vector.
-
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
-
-   This file is part of the GNU MP Library.
-
-   The GNU MP Library is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 2.1 of the License, or (at your
-   option) any later version.
-
-   The GNU MP Library is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-   License for more details.
-
-   You should have received a copy of the GNU Lesser General Public License
-   along with the GNU MP Library; see the file COPYING.LIB.  If not,
-   see <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-/* INPUT PARAMETERS
-   res_ptr	%o0
-   s1_ptr	%o1
-   s2_ptr	%o2
-   size		%o3  */
-
-ENTRY(__mpn_sub_n)
-
-	sub %g0,%o3,%g5
-	sllx %o3,3,%g1
-	add %o1,%g1,%o1			! make s1_ptr point at end
-	add %o2,%g1,%o2			! make s2_ptr point at end
-	add %o0,%g1,%o0			! make res_ptr point at end
-	mov 0,%o4			! clear carry variable
-	sllx %g5,3,%o5			! compute initial address index
-
-1:	ldx [%o2+%o5],%g1		! load s2 limb
-	add %g5,1,%g5			! increment loop count
-	ldx [%o1+%o5],%o3		! load s1 limb
-	addcc %g1,%o4,%g1		! add s2 limb and carry variable
-	movcc %xcc,0,%o4		! if carry-out, o4 was 1; clear it
-	subcc %o3,%g1,%g1		! subtract s1 limb from sum
-	stx %g1,[%o0+%o5]		! store result
-	add %o5,8,%o5			! increment address index
-	brnz,pt %g5,1b
-	 movcs %xcc,1,%o4		! if s1 subtract gave carry, record it
-
-	retl
-	 mov %o4,%o0
-
-END(__mpn_sub_n)
diff --git a/sysdeps/sparc/sparc64/submul_1.S b/sysdeps/sparc/sparc64/submul_1.S
deleted file mode 100644
index 03e62b668b..0000000000
--- a/sysdeps/sparc/sparc64/submul_1.S
+++ /dev/null
@@ -1,82 +0,0 @@
-/* SPARC v9 __mpn_submul_1 -- Multiply a limb vector with a single limb and
-   subtract the product from a second limb vector.
-
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
-
-   This file is part of the GNU MP Library.
-
-   The GNU MP Library is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 2.1 of the License, or (at your
-   option) any later version.
-
-   The GNU MP Library is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-   License for more details.
-
-   You should have received a copy of the GNU Lesser General Public License
-   along with the GNU MP Library; see the file COPYING.LIB.  If not,
-   see <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-
-
-/* INPUT PARAMETERS
-   res_ptr	o0
-   s1_ptr	o1
-   size		o2
-   s2_limb	o3  */
-
-ENTRY(__mpn_submul_1)
-	save	%sp,-192,%sp
-
-	sub	%g0,%i2,%o7
-	mov	0,%o0			! zero cy_limb
-	sllx	%o7,3,%o7
-	sethi	%hi(0x80000000),%o2
-	srl	%i3,0,%o1		! extract low 32 bits of s2_limb
-	sub	%i1,%o7,%o3
-	srlx	%i3,32,%i3		! extract high 32 bits of s2_limb
-	sub	%i0,%o7,%o4
-	add	%o2,%o2,%o2		! o2 = 0x100000000
-
-	!   hi   !
-             !  mid-1 !
-             !  mid-2 !
-		 !   lo   !
-1:
-	ldx	[%o3+%o7],%g5
-	srl	%g5,0,%i0		! zero hi bits
-	ldx	[%o4+%o7],%l1
-	srlx	%g5,32,%g5
-	mulx	%o1,%i0,%i4		! lo product
-	mulx	%i3,%i0,%i1		! mid-1 product
-	mulx	%o1,%g5,%l2		! mid-2 product
-	mulx	%i3,%g5,%i5		! hi product
-	srlx	%i4,32,%i0		! extract high 32 bits of lo product...
-	add	%i1,%i0,%i1		! ...and add it to the mid-1 product
-	addcc	%i1,%l2,%i1		! add mid products
-	mov	0,%l0			! we need the carry from that add...
-	movcs	%xcc,%o2,%l0		! ...compute it and...
-	sllx	%i1,32,%i0		!  align low bits of mid product
-	add	%i5,%l0,%i5		! ...add to bit 32 of the hi product
-	srl	%i4,0,%g5		! zero high 32 bits of lo product
-	add	%i0,%g5,%i0		! combine into low 64 bits of result
-	srlx	%i1,32,%i1		! extract high bits of mid product...
-	addcc	%i0,%o0,%i0		!  add cy_limb to low 64 bits of result
-	add	%i5,%i1,%i1		! ...and add them to the high result
-	mov	0,%g5
-	movcs	%xcc,1,%g5
-	subcc	%l1,%i0,%i0
-	stx	%i0,[%o4+%o7]
-	add	%g5,1,%l1
-	movcs	%xcc,%l1,%g5
-	addcc	%o7,8,%o7
-	bne,pt	%xcc,1b
-	 add	%i1,%g5,%o0		! compute new cy_limb
-
-	jmpl	%i7+8, %g0
-	 restore %o0,%g0,%o0
-
-END(__mpn_submul_1)
diff --git a/sysdeps/sparc/sparc64/tls-macros.h b/sysdeps/sparc/sparc64/tls-macros.h
deleted file mode 100644
index bb0d8035fc..0000000000
--- a/sysdeps/sparc/sparc64/tls-macros.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#define TLS_LE(x) \
-  ({ int *__l;								      \
-     asm ("sethi %%tle_hix22(" #x "), %0" : "=r" (__l));		      \
-     asm ("xor %1, %%tle_lox10(" #x "), %0" : "=r" (__l) : "r" (__l));	      \
-     asm ("add %%g7, %1, %0" : "=r" (__l) : "r" (__l));			      \
-     __l; })
-
-#ifdef __PIC__
-# define TLS_LOAD_PIC \
-  ({ long pc, got;							      \
-     asm ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t"			      \
-	  "rd %%pc, %0\n\t"						      \
-	  "add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t"		      \
-	  "add %1, %0, %1\n\t"						      \
-	  : "=r" (pc), "=r" (got));					      \
-     got; })
-#else
-# define TLS_LOAD_PIC \
-   ({ long got;								      \
-      asm (".hidden _GLOBAL_OFFSET_TABLE_\n\t"				      \
-	   "sethi %%hi(_GLOBAL_OFFSET_TABLE_), %0\n\t"			      \
-	   "or %0, %%lo(_GLOBAL_OFFSET_TABLE_), %0"			      \
-	   : "=r" (got));						      \
-      got; })
-#endif
-
-#define TLS_IE(x) \
-  ({ int *__l;								      \
-     asm ("sethi %%tie_hi22(" #x "), %0" : "=r" (__l));			      \
-     asm ("add %1, %%tie_lo10(" #x "), %0" : "=r" (__l) : "r" (__l));	      \
-     asm ("ldx [%1 + %2], %0, %%tie_ldx(" #x ")"			      \
-	  : "=r" (__l) : "r" (TLS_LOAD_PIC), "r" (__l));		      \
-     asm ("add %%g7, %1, %0, %%tie_add(" #x ")" : "=r" (__l) : "r" (__l));    \
-     __l; })
-
-#define TLS_LD(x) \
-  ({ int *__l; register void *__o0 asm ("%o0");				      \
-     long __o;								      \
-     asm ("sethi %%tldm_hi22(" #x "), %0" : "=r" (__l));		      \
-     asm ("add %1, %%tldm_lo10(" #x "), %0" : "=r" (__l) : "r" (__l));	      \
-     asm ("add %1, %2, %0, %%tldm_add(" #x ")"				      \
-	  : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l));		      \
-     asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t"			      \
-	  " nop"							      \
-	  : "=r" (__o0) : "0" (__o0)					      \
-	  : "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4",	      \
-	    "o5", "o7", "cc");						      \
-     asm ("sethi %%tldo_hix22(" #x "), %0" : "=r" (__o));		      \
-     asm ("xor %1, %%tldo_lox10(" #x "), %0" : "=r" (__o) : "r" (__o));	      \
-     asm ("add %1, %2, %0, %%tldo_add(" #x ")" : "=r" (__l)		      \
-	  : "r" (__o0), "r" (__o));					      \
-     __l; })
-
-#define TLS_GD(x) \
-  ({ int *__l; register void *__o0 asm ("%o0");				      \
-     asm ("sethi %%tgd_hi22(" #x "), %0" : "=r" (__l));			      \
-     asm ("add %1, %%tgd_lo10(" #x "), %0" : "=r" (__l) : "r" (__l));	      \
-     asm ("add %1, %2, %0, %%tgd_add(" #x ")"				      \
-	  : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l));		      \
-     asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t"			      \
-	  " nop"							      \
-	  : "=r" (__o0) : "0" (__o0)					      \
-	  : "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4",	      \
-	    "o5", "o7", "cc");						      \
-     __o0; })
diff --git a/sysdeps/sparc/sparc64/tst-audit.h b/sysdeps/sparc/sparc64/tst-audit.h
deleted file mode 100644
index f7123e0ef1..0000000000
--- a/sysdeps/sparc/sparc64/tst-audit.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Definitions for testing PLT entry/exit auditing.  SPARC64 version.
-
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define pltenter la_sparc64_gnu_pltenter
-#define pltexit la_sparc64_gnu_pltexit
-#define La_regs La_sparc64_regs
-#define La_retval La_sparc64_retval
-#define int_retval lrv_reg[0]