git: 8ff32ab58e32 - main - mips: remove libc

From: Warner Losh <imp_at_FreeBSD.org>
Date: Fri, 31 Dec 2021 07:15:34 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=8ff32ab58e3294a02cdf760faaff5210866fe285

commit 8ff32ab58e3294a02cdf760faaff5210866fe285
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2021-12-31 05:50:28 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2021-12-31 07:14:53 +0000

    mips: remove libc
    
    Remove mips specific libc code and build infrasturcture.
    
    Sponsored by:           Netflix
---
 lib/libc/Makefile                         |   5 +-
 lib/libc/mips/Makefile.inc                |   5 -
 lib/libc/mips/SYS.h                       | 153 ---------------
 lib/libc/mips/Symbol.map                  |  52 -----
 lib/libc/mips/_fpmath.h                   |  58 ------
 lib/libc/mips/arith.h                     |  26 ---
 lib/libc/mips/gd_qnan.h                   |  48 -----
 lib/libc/mips/gen/Makefile.inc            |  11 --
 lib/libc/mips/gen/_ctx_start.S            |  55 ------
 lib/libc/mips/gen/_setjmp.S               | 200 -------------------
 lib/libc/mips/gen/fabs.S                  |  58 ------
 lib/libc/mips/gen/fabs.c                  |  47 -----
 lib/libc/mips/gen/flt_rounds.c            |  42 ----
 lib/libc/mips/gen/hardfloat/fpgetmask.c   |  29 ---
 lib/libc/mips/gen/hardfloat/fpgetround.c  |  29 ---
 lib/libc/mips/gen/hardfloat/fpgetsticky.c |  29 ---
 lib/libc/mips/gen/hardfloat/fpsetmask.c   |  38 ----
 lib/libc/mips/gen/hardfloat/fpsetround.c  |  37 ----
 lib/libc/mips/gen/hardfloat/fpsetsticky.c |  38 ----
 lib/libc/mips/gen/infinity.c              |  26 ---
 lib/libc/mips/gen/ldexp.S                 | 219 ---------------------
 lib/libc/mips/gen/makecontext.c           | 123 ------------
 lib/libc/mips/gen/setjmp.S                | 237 ----------------------
 lib/libc/mips/gen/signalcontext.c         |  55 ------
 lib/libc/mips/gen/sigsetjmp.S             |  76 -------
 lib/libc/mips/net/Makefile.inc            |   4 -
 lib/libc/mips/net/htonl.S                 |  51 -----
 lib/libc/mips/net/htons.S                 |  47 -----
 lib/libc/mips/net/ntohl.S                 |  51 -----
 lib/libc/mips/net/ntohs.S                 |  46 -----
 lib/libc/mips/softfloat/milieu.h          |  48 -----
 lib/libc/mips/softfloat/mips-gcc.h        |  91 ---------
 lib/libc/mips/softfloat/softfloat.h       | 315 ------------------------------
 lib/libc/mips/static_tls.h                |  58 ------
 lib/libc/mips/string/Makefile.inc         |  13 --
 lib/libc/mips/string/bcmp.S               | 130 ------------
 lib/libc/mips/string/bcopy.S              | 297 ----------------------------
 lib/libc/mips/string/bzero.S              |  83 --------
 lib/libc/mips/string/ffs.S                |  59 ------
 lib/libc/mips/string/memcpy.S             |   7 -
 lib/libc/mips/string/memmove.S            |   7 -
 lib/libc/mips/string/strchr.S             |  66 -------
 lib/libc/mips/string/strcmp.S             |  68 -------
 lib/libc/mips/string/strlen.S             |  55 ------
 lib/libc/mips/string/strrchr.S            |  64 ------
 lib/libc/mips/sys/Makefile.inc            |   9 -
 lib/libc/mips/sys/Ovfork.S                |  64 ------
 lib/libc/mips/sys/cerror.S                |  72 -------
 lib/libc/mips/sys/syscall.S               |  44 -----
 49 files changed, 1 insertion(+), 3444 deletions(-)

diff --git a/lib/libc/Makefile b/lib/libc/Makefile
index fdf6aa49932b..b6e4dd1787b4 100644
--- a/lib/libc/Makefile
+++ b/lib/libc/Makefile
@@ -111,9 +111,7 @@ NOASM=
 .if ${LIBC_ARCH} != "aarch64" && \
     ${LIBC_ARCH} != "amd64" && \
     ${LIBC_ARCH} != "powerpc64" && \
-    ${LIBC_ARCH} != "riscv" && \
-    ${MACHINE_ARCH:Mmipsn32*} == "" && \
-    ${MACHINE_ARCH:Mmips64*} == ""
+    ${LIBC_ARCH} != "riscv"
 .include "${LIBC_SRCTOP}/quad/Makefile.inc"
 .endif
 .include "${LIBC_SRCTOP}/regex/Makefile.inc"
@@ -130,7 +128,6 @@ NOASM=
 .include "${LIBC_SRCTOP}/xdr/Makefile.inc"
 .if (${LIBC_ARCH} == "arm" && \
 	(${MACHINE_ARCH:Marmv[67]*} == "" || (defined(CPUTYPE) && ${CPUTYPE:M*soft*}))) || \
-    (${LIBC_ARCH} == "mips" && ${MACHINE_ARCH:Mmips*hf} == "") || \
     (${LIBC_ARCH} == "riscv" && ${MACHINE_ARCH:Mriscv*sf} != "")
 .include "${LIBC_SRCTOP}/softfloat/Makefile.inc"
 .endif
diff --git a/lib/libc/mips/Makefile.inc b/lib/libc/mips/Makefile.inc
deleted file mode 100644
index f340477ad22a..000000000000
--- a/lib/libc/mips/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-#	$NetBSD: Makefile.inc,v 1.7 2005/09/17 11:49:39 tsutsui Exp $
-# $FreeBSD$
-
-SRCS+= machdep_ldisd.c
-SYM_MAPS+= ${LIBC_SRCTOP}/mips/Symbol.map
diff --git a/lib/libc/mips/SYS.h b/lib/libc/mips/SYS.h
deleted file mode 100644
index c4767a5cd96b..000000000000
--- a/lib/libc/mips/SYS.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*	$NetBSD: SYS.h,v 1.19 2009/12/14 01:07:41 matt Exp $ */
-/* $FreeBSD$ */
-
-/*-
- * SPDX-License-Identifier: (BSD-4-Clause AND BSD-3-Clause)
- *
- * Copyright (c) 1996 Jonathan Stone
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed by Jonathan Stone for
- *      the NetBSD Project.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*-
- * Copyright (c) 1991, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Ralph Campbell.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)SYS.h	8.1 (Berkeley) 6/4/93
- */
-
-#include <sys/syscall.h>
-
-#include <machine/asm.h>
-
-/*
- * If compiling for shared libs, Emit sysV ABI PIC segment pseudo-ops.
- *
- * i)  Emit .abicalls before .LEAF entrypoint, and .cpload/.cprestore after.
- * ii) Do interprocedure jumps indirectly via t9, with the side-effect of
- *     preserving the callee's entry address in t9.
- */
-#ifdef __ABICALLS__
-	.abicalls
-# if defined(__mips_o32) || defined(__mips_o64)
-#  define PIC_PROLOGUE(x)	SETUP_GP
-#  define PIC_TAILCALL(l)	PTR_LA t9, _C_LABEL(l); jr t9
-#  define PIC_RETURN()		j ra
-# else
-#  define PIC_PROLOGUE(x)	SETUP_GP64(t3, x)
-#  define PIC_TAILCALL(l)	PTR_LA t9, _C_LABEL(l); RESTORE_GP64; jr t9
-#  define PIC_RETURN()		RESTORE_GP64; j ra
-# endif
-#else
-# define PIC_PROLOGUE(x)
-# define PIC_TAILCALL(l)	j  _C_LABEL(l)
-# define PIC_RETURN()		j ra
-#endif /* __ABICALLS__ */
-
-# define SYSTRAP(x)	li v0,SYS_ ## x; syscall;
-
-/*
- * Do a syscall that cannot fail (sync, get{p,u,g,eu,eg)id)
- */
-#define RSYSCALL_NOERROR(x)						\
-LEAF(__sys_ ## x);							\
-	.weak _C_LABEL(x);						\
-	_C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x));			\
-	.weak _C_LABEL(__CONCAT(_,x));					\
-	_C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x));		\
-	SYSTRAP(x);							\
-	j ra;								\
-END(__sys_ ## x)
-
-/*
- * Do a normal syscall.
- */
-#define RSYSCALL(x)							\
-LEAF(__sys_ ## x);							\
-	.weak _C_LABEL(x);						\
-	_C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x));			\
-	.weak _C_LABEL(__CONCAT(_,x));					\
-	_C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x));		\
-	PIC_PROLOGUE(__sys_ ## x);					\
-	SYSTRAP(x);							\
-	bne a3,zero,err;						\
-	PIC_RETURN();							\
-err:									\
-	PIC_TAILCALL(__cerror);						\
-END(__sys_ ## x)
-
-/*
- * Do a renamed or pseudo syscall (e.g., _exit()), where the entrypoint
- * and syscall name are not the same.
- */
-#define PSEUDO_NOERROR(x)						\
-LEAF(__sys_ ## x);							\
-	.weak _C_LABEL(__CONCAT(_,x));					\
-	_C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x));		\
-	SYSTRAP(x);							\
-	j ra;								\
-END(__sys_ ## x)
-
-#define PSEUDO(x)							\
-LEAF(__sys_ ## x);							\
-	.weak _C_LABEL(__CONCAT(_,x));					\
-	_C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x));		\
-	PIC_PROLOGUE(__sys_ ## x);					\
-	SYSTRAP(x);							\
-	bne a3,zero,err;						\
-	PIC_RETURN();							\
-err:									\
-	PIC_TAILCALL(__cerror);						\
-END(__sys_ ## x)
diff --git a/lib/libc/mips/Symbol.map b/lib/libc/mips/Symbol.map
deleted file mode 100644
index 03c6ef2057c0..000000000000
--- a/lib/libc/mips/Symbol.map
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * $FreeBSD$
- */
-
-/*
- * This only needs to contain symbols that are not listed in
- * symbol maps from other parts of libc (i.e., not found in
- * stdlib/Symbol.map, string/Symbol.map, sys/Symbol.map, ...).
- */
-FBSD_1.0 {
-	/* PSEUDO syscalls */
-	_exit;
-
-	_mcount;
-	_setjmp;
-	_longjmp;
-	alloca;
-	fabs;
-	__infinity;
-	__nan;
-	makecontext;
-	setjmp;
-	longjmp;
-	sigsetjmp;
-	siglongjmp;
-	htonl;
-	htons;
-	ntohl;
-	ntohs;
-	vfork;
-	brk;
-	sbrk;
-};
-
-FBSD_1.3 {
-	__flt_rounds;
-};
-
-FBSDprivate_1.0 {
-	/* PSEUDO syscalls */
-	_getlogin;
-
-	___longjmp;
-	__makecontext;
-	__longjmp;
-	signalcontext;
-	_signalcontext;
-	__siglongjmp;
-	_vfork;
-	_brk;
-	_sbrk;
-};
diff --git a/lib/libc/mips/_fpmath.h b/lib/libc/mips/_fpmath.h
deleted file mode 100644
index cece2fa81cb6..000000000000
--- a/lib/libc/mips/_fpmath.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2002, 2003 David Schultz <das@FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-union IEEEl2bits {
-	long double	e;
-	struct {
-#ifndef __MIPSEB__
-		unsigned int	manl	:32;
-		unsigned int	manh	:20;
-		unsigned int	exp	:11;
-		unsigned int	sign	:1;
-#else
-		unsigned int		sign	:1;
-		unsigned int		exp	:11;
-		unsigned int		manh	:20;
-		unsigned int		manl	:32;
-#endif
-	} bits;
-};
-
-#define	LDBL_NBIT	0
-#define	mask_nbit_l(u)	((void)0)
-#define	LDBL_IMPLICIT_NBIT
-
-#define	LDBL_MANH_SIZE	20
-#define	LDBL_MANL_SIZE	32
-
-#define	LDBL_TO_ARRAY32(u, a) do {			\
-	(a)[0] = (uint32_t)(u).bits.manl;		\
-	(a)[1] = (uint32_t)(u).bits.manh;		\
-} while(0)
diff --git a/lib/libc/mips/arith.h b/lib/libc/mips/arith.h
deleted file mode 100644
index 61f3930f4a89..000000000000
--- a/lib/libc/mips/arith.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * MD header for contrib/gdtoa
- *
- * $FreeBSD$
- */
-
-/*
- * NOTE: The definitions in this file must be correct or strtod(3) and
- * floating point formats in printf(3) will break!  The file can be
- * generated by running contrib/gdtoa/arithchk.c on the target
- * architecture.  See contrib/gdtoa/gdtoaimp.h for details.
- */
-#include <machine/endian.h>
-
-#if BYTE_ORDER == BIG_ENDIAN
-#define IEEE_MC68k
-#define Arith_Kind_ASL 2
-#define Double_Align
-#else
-/* TODO: Generate these values on a LE machine */
-#define IEEE_8087
-#define Arith_Kind_ASL 1
-#define Long int
-#define Intcast (int)(long)
-#define Double_Align
-#endif
diff --git a/lib/libc/mips/gd_qnan.h b/lib/libc/mips/gd_qnan.h
deleted file mode 100644
index 69eeaf988fa0..000000000000
--- a/lib/libc/mips/gd_qnan.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * MD header for contrib/gdtoa
- *
- * This file can be generated by compiling and running contrib/gdtoa/qnan.c
- * on the target architecture after arith.h has been generated.
- *
- * $FreeBSD$
- */
-
-
-#include <machine/endian.h>
-
-#if BYTE_ORDER == BIG_ENDIAN
-/* These values were gained on a running
- * Octeon in Big Endian order. They were gotten
- * by running ./qnan after arithchk was ran and
- * got us the proper values for arith.h.
- */
-#define f_QNAN 0x7f900000
-#define d_QNAN0 0x7ff80000
-#define d_QNAN1 0x0
-#define ld_QNAN0 0x7ff80000
-#define ld_QNAN1 0x0
-#define ld_QNAN2 0x0
-#define ld_QNAN3 0x0
-#define ldus_QNAN0 0x7ff8
-#define ldus_QNAN1 0x0
-#define ldus_QNAN2 0x0
-#define ldus_QNAN3 0x0
-#define ldus_QNAN4 0x0
-#else
-/* FIX FIX, need to run this on a Little Endian
- * machine and get the proper values, these here
- * were stolen fromn i386/gd_qnan.h
- */
-#define f_QNAN 0x7fc00000
-#define d_QNAN0 0x0
-#define d_QNAN1 0x7ff80000
-#define ld_QNAN0 0x0
-#define ld_QNAN1 0xc0000000
-#define ld_QNAN2 0x7fff
-#define ld_QNAN3 0x0
-#define ldus_QNAN0 0x0
-#define ldus_QNAN1 0x0
-#define ldus_QNAN2 0x0
-#define ldus_QNAN3 0xc000
-#define ldus_QNAN4 0x7fff
-#endif
diff --git a/lib/libc/mips/gen/Makefile.inc b/lib/libc/mips/gen/Makefile.inc
deleted file mode 100644
index c04f5356698f..000000000000
--- a/lib/libc/mips/gen/Makefile.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-#	$NetBSD: Makefile.inc,v 1.27 2005/10/07 17:16:40 tsutsui Exp $
-# $FreeBSD$
-
-SRCS+=	infinity.c fabs.c ldexp.c flt_rounds.c
-
-# SRCS+=	flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
-#	fpsetround.c fpsetsticky.c
-
-SRCS+=	_ctx_start.S _setjmp.S makecontext.c \
-	setjmp.S signalcontext.c sigsetjmp.S \
-	trivial-getcontextx.c
diff --git a/lib/libc/mips/gen/_ctx_start.S b/lib/libc/mips/gen/_ctx_start.S
deleted file mode 100644
index f1f5cdc32641..000000000000
--- a/lib/libc/mips/gen/_ctx_start.S
+++ /dev/null
@@ -1,55 +0,0 @@
-/*-
- * Copyright (c) 2010 Juli Mallett.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * This requires makecontext() to setup a valid GP for locating
- * _ctx_done rather than deriving GP from T9 on entry.  Currently this
- * uses the GP inherited from getcontext() assuming that getcontext()
- * is in the same shared object as _ctx_done().  For N32 and N64, GP
- * is caller-save so will be preserved across the call to the callback
- * function.  For O32, GP is callee-save, so save it in a different
- * caller-save register (S1) while invoking the callback.  This is
- * done instead of the usual SETUP_GP/SAVE_GP to avoid disturbing the
- * stack frame setup by makecontext() for the callback function.
- */
-ENTRY(_ctx_start)
-#ifdef __mips_o32
-	move	s1, gp
-#endif
-	jalr	t9
-
-#ifdef __mips_o32
-	move	gp, s1
-#endif
-	move	a0, s0
-	PTR_LA	t9, _ctx_done
-	jalr	t9
-
-	break	0
-END(_ctx_start)
diff --git a/lib/libc/mips/gen/_setjmp.S b/lib/libc/mips/gen/_setjmp.S
deleted file mode 100644
index 10c4cda5e0c1..000000000000
--- a/lib/libc/mips/gen/_setjmp.S
+++ /dev/null
@@ -1,200 +0,0 @@
-/*	$NetBSD: _setjmp.S,v 1.20.34.5 2010/02/03 23:46:47 matt Exp $	*/
-
-/*-
- * Copyright (c) 1991, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Ralph Campbell.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-#include "SYS.h"
-
-#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
-	RCSID("from: @(#)_setjmp.s	8.1 (Berkeley) 6/4/93")
-#else
-	RCSID("$NetBSD: _setjmp.S,v 1.20.34.5 2010/02/03 23:46:47 matt Exp $")
-#endif
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * C library -- _setjmp, _longjmp
- *
- *	_longjmp(a,v)
- * will generate a "return(v)" from
- * the last call to
- *	_setjmp(a)
- * by restoring registers from the stack,
- * The previous signal state is NOT restored.
- */
-
-	.set	noreorder
-
-LEAF(_setjmp)
-	REG_PROLOGUE
-	REG_LI	v0, _JB_MAGIC__SETJMP		# sigcontext magic number
-	REG_S	v0, (_JB_MAGIC  * SZREG)(a0)
-	REG_S	ra, (_JB_REG_RA * SZREG)(a0)
-	/*
-	 * From "MIPSpro N32 ABI Handbook", Table 2-1:
-	 * Registers s0..s7 are callee-saved.
-	 * The sp register is callee-saved.
-	 * The fp (or s8) register is callee-saved.
-	 * The gp register is callee-saved (for n32/n64).
-	 */
-	REG_S	s0, (_JB_REG_S0 * SZREG)(a0)
-	REG_S	s1, (_JB_REG_S1 * SZREG)(a0)
-	REG_S	s2, (_JB_REG_S2 * SZREG)(a0)
-	REG_S	s3, (_JB_REG_S3 * SZREG)(a0)
-	REG_S	s4, (_JB_REG_S4 * SZREG)(a0)
-	REG_S	s5, (_JB_REG_S5 * SZREG)(a0)
-	REG_S	s6, (_JB_REG_S6 * SZREG)(a0)
-	REG_S	s7, (_JB_REG_S7 * SZREG)(a0)
-	REG_S	sp, (_JB_REG_SP * SZREG)(a0)
-	REG_S	s8, (_JB_REG_S8 * SZREG)(a0)
-#if defined(__mips_n32) || defined(__mips_n64)
-	REG_S	gp, (_JB_REG_GP * SZREG)(a0)	# newabi gp is callee-saved
-#endif
-	/*
-	 * From "MIPSpro N32 ABI Handbook", Table 2-1:
-	 * In N32, FP registers F20, F22, F24, F26, F28, F30 are callee-saved.
-	 * In N64, FP registers F24 .. F31 are callee-saved.
-	 * In O32, FP registers F20 .. F23 are callee-saved.
-	 */
-#ifndef __mips_soft_float
-	cfc1	v0, $31				# too bad can't check if FP used
-#if defined(__mips_n64) || defined(__mips_n32)
-	FP_S	$f30, (_JB_FPREG_F30 * SZREG)(a0)
-	FP_S	$f28, (_JB_FPREG_F28 * SZREG)(a0)
-	FP_S	$f26, (_JB_FPREG_F26 * SZREG)(a0)
-	FP_S	$f24, (_JB_FPREG_F24 * SZREG)(a0)
-#endif
-#if defined(__mips_n32) || defined(__mips_o32) || defined(__mips_o64)
-	FP_S	$f22, (_JB_FPREG_F22 * SZREG)(a0)
-	FP_S	$f20, (_JB_FPREG_F20 * SZREG)(a0)
-#endif
-#if defined(__mips_o32) || defined(__mips_o64)
-	FP_S	$f21, (_JB_FPREG_F21 * SZREG)(a0)
-	FP_S	$f23, (_JB_FPREG_F23 * SZREG)(a0)
-#endif
-#if defined(__mips_n64)
-	FP_S	$f25, (_JB_FPREG_F25 * SZREG)(a0)
-	FP_S	$f27, (_JB_FPREG_F27 * SZREG)(a0)
-	FP_S	$f29, (_JB_FPREG_F29 * SZREG)(a0)
-	FP_S	$f31, (_JB_FPREG_F31 * SZREG)(a0)
-#endif
-	INT_S	v0, (_JB_FPREG_FCSR * SZREG)(a0)
-#endif /* ! __mips_soft_float */
-	REG_EPILOGUE
-
-	j	ra
-	move	v0, zero
-END(_setjmp)
-
-LEAF(_longjmp)
-	PIC_PROLOGUE(_longjmp)
-	PTR_SUBU	sp, sp, CALLFRAME_SIZ
-	SAVE_GP(CALLFRAME_GP)
-
-	REG_PROLOGUE
-	REG_L		v0, (_JB_MAGIC  * SZREG)(a0)	# get magic number
-	REG_L		ra, (_JB_REG_RA * SZREG)(a0)
-	REG_LI		t0, _JB_MAGIC__SETJMP
-	bne		v0, t0, botch		# jump if error
-	PTR_ADDU	sp, sp, CALLFRAME_SIZ	# does not matter, sanity
-	/*
-	 * From "MIPSpro N32 ABI Handbook", Table 2-1:
-	 * Registers s0..s7 are callee-saved.
-	 * The sp register is callee-saved.
-	 * The fp (or s8) register is callee-saved.
-	 * The gp register is callee-saved (for n32/n64).
-	 */
-	REG_L		s0, (_JB_REG_S0 * SZREG)(a0)
-	REG_L		s1, (_JB_REG_S1 * SZREG)(a0)
-	REG_L		s2, (_JB_REG_S2 * SZREG)(a0)
-	REG_L		s3, (_JB_REG_S3 * SZREG)(a0)
-	REG_L		s4, (_JB_REG_S4 * SZREG)(a0)
-	REG_L		s5, (_JB_REG_S5 * SZREG)(a0)
-	REG_L		s6, (_JB_REG_S6 * SZREG)(a0)
-	REG_L		s7, (_JB_REG_S7 * SZREG)(a0)
-	REG_L		sp, (_JB_REG_SP * SZREG)(a0)
-	REG_L		s8, (_JB_REG_S8 * SZREG)(a0)
-#if defined(__mips_n32) || defined(__mips_n64)
-	REG_L		gp, (_JB_REG_GP * SZREG)(a0)
-#endif
-#ifndef __mips_soft_float
-	# get fpu status
-	INT_L		v0, (_JB_FPREG_FCSR * SZREG)(a0)
-	ctc1		v0, $31
-	/*
-	 * From "MIPSpro N32 ABI Handbook", Table 2-1:
-	 * In N32, FP registers F20, F22, F24, F26, F28, F30 are callee-saved.
-	 * In N64, FP registers F24 .. F31 are callee-saved.
-	 * In O32, FP registers F20 .. F23 are callee-saved.
-	 */
-#if defined(__mips_n64) || defined(__mips_n32)
-	FP_L	$f30, (_JB_FPREG_F30 * SZREG)(a0)
-	FP_L	$f28, (_JB_FPREG_F28 * SZREG)(a0)
-	FP_L	$f26, (_JB_FPREG_F26 * SZREG)(a0)
-	FP_L	$f24, (_JB_FPREG_F24 * SZREG)(a0)
-#endif
-#if defined(__mips_n32) || defined(__mips_o32) || defined(__mips_o64)
-	FP_L	$f22, (_JB_FPREG_F22 * SZREG)(a0)
-	FP_L	$f20, (_JB_FPREG_F20 * SZREG)(a0)
-#endif
-#if defined(__mips_o32) || defined(__mips_o64)
-	FP_L	$f21, (_JB_FPREG_F21 * SZREG)(a0)
-	FP_L	$f23, (_JB_FPREG_F23 * SZREG)(a0)
-#endif
-#if defined(__mips_n64)
-	FP_L	$f25, (_JB_FPREG_F25 * SZREG)(a0)
-	FP_L	$f27, (_JB_FPREG_F27 * SZREG)(a0)
-	FP_L	$f29, (_JB_FPREG_F29 * SZREG)(a0)
-	FP_L	$f31, (_JB_FPREG_F31 * SZREG)(a0)
-#endif
-#endif	/* ! __mips_soft_float */
-
-	REG_EPILOGUE
-	move	v0, a1			# get return value in 1st arg
-	j	ra
-	nop
-
-botch:
-	/*
-	 * We know we aren't returning so we don't care about restoring
-	 * our caller's GP.
-	 */
-	PTR_LA	t9, _C_LABEL(longjmperror)
-	jalr	t9
-	nop
-
-	PIC_TAILCALL(abort)
-END(_longjmp)
diff --git a/lib/libc/mips/gen/fabs.S b/lib/libc/mips/gen/fabs.S
deleted file mode 100644
index 3b79249864d1..000000000000
--- a/lib/libc/mips/gen/fabs.S
+++ /dev/null
@@ -1,58 +0,0 @@
-/*	$NetBSD: fabs.S,v 1.7 2003/08/07 16:42:15 agc Exp $	*/
-
-/*-
- * Copyright (c) 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Ralph Campbell.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-#if defined(LIBC_SCCS) && !defined(lint)
-	ASMSTR("from: @(#)fabs.s	8.1 (Berkeley) 2/16/94")
-	ASMSTR("$NetBSD: fabs.S,v 1.7 2003/08/07 16:42:15 agc Exp $")
-#endif /* LIBC_SCCS and not lint */
-
-
-#ifdef __ABICALLS__
-	.abicalls
-#endif
-	.set	noreorder
-
-/*
- * fabs(x)
- *	double x;
- *
- * Return absolute value of x.
- */
-LEAF(fabs)
-	j	ra
-	abs.d	$f0, $f12		# compute absolute value of x
-END(fabs)
diff --git a/lib/libc/mips/gen/fabs.c b/lib/libc/mips/gen/fabs.c
deleted file mode 100644
index 9c51f43ff4e7..000000000000
--- a/lib/libc/mips/gen/fabs.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*	$NetBSD: fabs.c,v 1.2 2002/05/26 11:48:01 wiz Exp $	*/
-
-/*-
- * SPDX-License-Identifier: BSD-4-Clause
- *
- * Copyright (c) 1996 Mark Brinicombe
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by Mark Brinicombe
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * fabs(x) returns the absolute value of x.
- */
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-double
-fabs(double x)
-{
-
-	return (__builtin_fabs(x));
-}
diff --git a/lib/libc/mips/gen/flt_rounds.c b/lib/libc/mips/gen/flt_rounds.c
deleted file mode 100644
index 27d8bf35315f..000000000000
--- a/lib/libc/mips/gen/flt_rounds.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*	$NetBSD: flt_rounds.c,v 1.5 2005/12/24 23:10:08 perry Exp $	*/
-
-/*
- * Written by J.T. Conklin, Apr 11, 1995
- * Public domain.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: flt_rounds.c,v 1.5 2005/12/24 23:10:08 perry Exp $");
-#endif /* LIBC_SCCS and not lint */
-
-#include <fenv.h>
-#include <float.h>
-
-#ifdef	__mips_soft_float
-#include "softfloat-for-gcc.h"
-#include "milieu.h"
-#include "softfloat.h"
-#endif
-
-static const int map[] = {
-	1,	/* round to nearest */
-	0,	/* round to zero */
-	2,	/* round to positive infinity */
-	3	/* round to negative infinity */
-};
-
-int
-__flt_rounds()
-{
-	int mode;
-
-#ifdef __mips_soft_float
-	mode = __softfloat_float_rounding_mode;
-#else
-	__asm __volatile("cfc1 %0,$31" : "=r" (mode));
-#endif
-
-	return map[mode & 0x03];
-}
diff --git a/lib/libc/mips/gen/hardfloat/fpgetmask.c b/lib/libc/mips/gen/hardfloat/fpgetmask.c
deleted file mode 100644
index 505a74c68466..000000000000
--- a/lib/libc/mips/gen/hardfloat/fpgetmask.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/*	$NetBSD: fpgetmask.c,v 1.5 2005/12/24 23:10:08 perry Exp $	*/
-
-/*
- * Written by J.T. Conklin, Apr 11, 1995
- * Public domain.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: fpgetmask.c,v 1.5 2005/12/24 23:10:08 perry Exp $");
-#endif /* LIBC_SCCS and not lint */
-
-#include "namespace.h"
-
-#include <ieeefp.h>
-
-#ifdef __weak_alias
-__weak_alias(fpgetmask,_fpgetmask)
-#endif
-
-fp_except_t
-fpgetmask()
-{
-	int x;
-
-	__asm("cfc1 %0,$31" : "=r" (x));
-	return (x >> 7) & 0x1f;
-}
diff --git a/lib/libc/mips/gen/hardfloat/fpgetround.c b/lib/libc/mips/gen/hardfloat/fpgetround.c
deleted file mode 100644
index 6d0f11a5cb6e..000000000000
--- a/lib/libc/mips/gen/hardfloat/fpgetround.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/*	$NetBSD: fpgetround.c,v 1.5 2005/12/24 23:10:08 perry Exp $	*/
-
-/*
- * Written by J.T. Conklin, Apr 11, 1995
- * Public domain.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: fpgetround.c,v 1.5 2005/12/24 23:10:08 perry Exp $");
-#endif /* LIBC_SCCS and not lint */
-
-#include "namespace.h"
-
-#include <ieeefp.h>
-
-#ifdef __weak_alias
-__weak_alias(fpgetround,_fpgetround)
-#endif
-
-fp_rnd_t
-fpgetround()
-{
-	int x;
-
-	__asm("cfc1 %0,$31" : "=r" (x));
-	return x & 0x03;
-}
*** 2831 LINES SKIPPED ***