Home | History | Annotate | only in /src/lib/libc/arch/mips
History log of /src/lib/libc/arch/mips
RevisionDateAuthorComments
 1.2 19-Oct-2001  tv Remove files beginning with ":", which is invalid on other host OS's
(particularly those made by Microsoft). These ex/vi-macro files are not
actually needed at this point, anyway....
 1.1 24-May-1994  glass branches: 1.1.26;
libc support for mips. libkern hooks are disabled
 1.1.26.1 16-Nov-2001  thorpej Fix merge errors from last sync w/ -current.
 1.16 31-Oct-2021  thorpej Tidy up how __sigaction14_sigtramp.c is added to SRCS.
 1.15 25-Apr-2021  christos Use ${MACHINE_MIPS64}
 1.14 24-Jan-2016  christos assym.h needs _KERNTYPES
 1.13 30-Jan-2014  joerg Use fixunssfsi and fixunsdfsi from compiler-rt.
 1.12 09-Jul-2011  matt branches: 1.12.2; 1.12.8;
Don't build tf (long double) if building for O32.
 1.11 09-Jul-2011  matt Add ieee754 versions of the compiler runtime functions
__fixuns{sf,df,tf}{si,di}.
Add an ieee754 version of the compiler runtime function __floatuntfdi
 1.10 26-Jan-2011  pooka Add support for the Extensible MIPS ("eMIPS") platform. The
NetBSD/emips port runs on Xilinx and Beecube FPGA systems and the
Giano system simulator.

eMIPS is a platform developed at Microsoft Research for researching
reconfigurable computing. eMIPS allows dynamic loading and scheduling
of application-specific circuits for the purpose of accelerating
computations based on the current workload.

NetBSD eMIPS support for NetBSD 4.x was written at Microsoft Research
by Alessandro Forin and Neil Pittman. Microsoft Corporation has
donated full copyright to The NetBSD Foundation.

Platform support for eMIPS is the first part of Microsoft's
contribution. The second part includes the hardware accelerator
framework and will be proposed on tech-kern soon.
 1.9 14-Dec-2009  matt branches: 1.9.2;
Merge from matt-nb5-mips64.
 1.8 17-Jun-2006  uwe branches: 1.8.34;
G/c KMSRCS and KMINCLUDES now that we have common/lib/libc
 1.7 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.6 02-Nov-2003  christos Add userland portion of siginfo for mips. Many thanks to simon for letting
me use his machines down under.
 1.5 10-Jul-2002  thorpej Enable the libc-provided signal trampoline. The old __sigaction14
entry point has been replaced by the new __sigaction14() which is a
wrapper around the __sigaction_sigtramp system call (which is itself
not directly exposed outside of libc).

No shared library version change is necessary; no new symbols
are exposed outside of libc.
 1.4 05-Mar-2000  shin branches: 1.4.6;
remove MIPS SOFTFLOAT.
 1.3 29-Sep-1999  takemura Hpcmips needs completely FPU instruction free user land.
XXX, this modification is kinda ad-hoc.
 1.2 16-Sep-1996  jonathan branches: 1.2.8;
Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.2.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.4.6.1 01-Aug-2002  nathanw Catch up to -current.
 1.8.34.3 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.8.34.2 27-Aug-2009  matt Add MKSOFTFLOAT support for mips and mips64. Some more work is needed to
complete support FLOAT128.
 1.8.34.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.9.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.12.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.12.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.21 23-Jul-2023  skrll Indentation consistency. NFCI.
 1.20 25-Feb-2017  joerg Switch from __ABICALLS__ to __mips_abicalls like upstream GCC does in
the generic MIPS target logic.
 1.19 14-Dec-2009  matt branches: 1.19.28; 1.19.32;
Merge from matt-nb5-mips64.
 1.18 29-Oct-2003  pooka branches: 1.18.46;
caps "Jonathan STone" in comment less dramatically
 1.17 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.16 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.15 26-May-2002  wiz Revert previous: .S files are currently compiled with -traditional-cpp,
so __STDC__ is _not_ always defined.
 1.14 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.13 14-Jan-2002  thorpej * Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).
 1.12 23-Mar-2000  mycroft branches: 1.12.6;
Do a little rearrangement here. No functional change, but it's a little
clearer what's going on.
The assembler still whines about the lack of `.cprestore' when profiling,
but I'm not going there right now.
 1.11 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.10 17-Jun-1997  jonathan #include <machine/machAsmDefs.h> -> #include <mips/asm.h>
 1.9 02-May-1997  kleink Consistency: distinguish between PSEUDO() and PSEUDO_NOERROR().
 1.8 15-Mar-1997  jonathan Remove lint (missing END() directive) in NOERROR syscalls.
 1.7 19-Oct-1996  jonathan Rewrite from scratch.
 1.6 19-Oct-1996  jtc Added new macros:
SYSCALL_NOERROR(x): Like SYSCALL except that "x" is a syscall
that can never fail.

RSYSCALL_NOERROR(x): Like RSYSCALL except that "x" is a syscall
that can never fail.

These macros simply call SYSCALL / RSYSCALL, and serve as placeholders
until an optimized implementation is done.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 12-Dec-1994  dean underscore changes
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.12.6.3 11-Nov-2002  nathanw Catch up to -current
 1.12.6.2 21-Jun-2002  nathanw Catch up to -current.
 1.12.6.1 28-Jan-2002  nathanw Catch up to -current.
 1.18.46.3 05-Sep-2009  matt LP64 cleanup --> s/la/PTR_LA/
 1.18.46.2 18-Aug-2009  matt Remove PIC_xCALL - unused
Fix NewABI PIC_* macros (now that a NewABI toolchain mostly works).
 1.18.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.19.32.1 21-Apr-2017  bouyer Sync with HEAD
 1.19.28.1 20-Mar-2017  pgoyette Sync with HEAD
 1.5 18-Nov-2021  thorpej Decorate the MIPS signal trampoline with the appropriate .cfi
directives to allow exception unwind / backtrace across a signal
handler.
 1.4 15-Oct-2020  skrll Remove '_OFFSETOF' prefix for genassm(1) generate CPP identifers for
consistency with other arches.

NFCI and libc.so is the same before and after.
 1.3 12-Aug-2016  skrll Provide _OFFSETOF_UC_GREGS_GP and use _OFFSETOF_UC_GREGS_* in getcontext
 1.2 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.1 16-Aug-2009  matt branches: 1.1.2;
file genassym.cf was initially added on branch matt-nb5-mips64.
 1.1.2.3 03-Sep-2009  matt Make sure STACK_T_SIZE is dual-register_t aligned.
 1.1.2.2 18-Aug-2009  matt Add _OFFSETOF_SC_MASK13 for compat setjmp/longjmp.
 1.1.2.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.5 25-Apr-2021  christos Use ${MACHINE_MIPS64}
 1.4 20-Jan-2011  matt Remove CPUFLAGS?= since it's no longer needed.
 1.3 18-Jan-2011  matt branches: 1.3.2;
Cleanup the o32 compat build test.
 1.2 17-Jan-2011  matt Make the MIPS N32/N64 ABIs properly support 128-bit long doubles. With this
change, we should be fully conformant with the N32 and N64 ABIs.
Add {fpclassify,infinity,isnan,ininf,signbit}l_ieee754.c back to lib/libc/gen.
Note that infinityl_ieee754.c will work with either 64-bit, 80-bit, or
128-bit long doubles.
 1.1 15-Mar-2006  kleink branches: 1.1.34;
Add strtof(3) and strtold(3); welcome libc 12.137.
 1.1.34.1 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.3.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.1 25-Jan-2006  kleink Add machine-dependent definitions for gdtoa.
 1.2 17-Jan-2011  matt Make the MIPS N32/N64 ABIs properly support 128-bit long doubles. With this
change, we should be fully conformant with the N32 and N64 ABIs.
Add {fpclassify,infinity,isnan,ininf,signbit}l_ieee754.c back to lib/libc/gen.
Note that infinityl_ieee754.c will work with either 64-bit, 80-bit, or
128-bit long doubles.
 1.1 25-Jan-2006  kleink branches: 1.1.34;
Add machine-dependent definitions for gdtoa.
 1.1.34.1 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.35 07-Oct-2016  christos Sync with compat and remove dup implementations of ldexp and modf, switching
mips and m68k to the compat copies.
 1.34 24-Jan-2016  christos branches: 1.34.2;
cache stuff needs _KERNTYPES
 1.33 15-Mar-2011  matt Properly support the MIPS TLS ABI.
 1.32 17-Jan-2011  matt Make the MIPS N32/N64 ABIs properly support 128-bit long doubles. With this
change, we should be fully conformant with the N32 and N64 ABIs.
Add {fpclassify,infinity,isnan,ininf,signbit}l_ieee754.c back to lib/libc/gen.
Note that infinityl_ieee754.c will work with either 64-bit, 80-bit, or
128-bit long doubles.
 1.31 03-Sep-2010  matt Pullup fixes from matt-nb5-mips64.
This makes setjmp/longjmp work again.
 1.30 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.29 06-Dec-2009  uebayasi Rename ${SRCS.{alpha,arm,...}.gen} to ${LSRCS.{alpha,arm,...}.gen} because
they ended up in ${LSRCS}, not ${SRCS}. ${SRCS.*} namespace will be used
for more useful things. No functional changes intended.
 1.28 03-Jul-2006  drochner branches: 1.28.34;
build frexp_ieee754 in the "compat" subtree
(There are assembler versions of ldexp and modf which need to be checked.
I'm in doubt they are metter than those in libm.)
 1.27 07-Oct-2005  tsutsui Follow compat libc changes on i386:
> _setjmp and _longjmp are not compat functions. Noticed by Havard Eidnes
 1.26 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.25 15-Apr-2005  kleink Push back the descriptions of NaN formats, and descriptions of the
distinction between signalling NaNs and quiet NaNs back into the
machine-dependent headers; treat the implementation of __nanf in the
same spirit.

IEEE 754 leaves the distinction between signalling NaNs and quiet NANs
to the implementation, and unlike our headers used to suggest they're
not identical in the interpretation of the fraction's MSb; in due
course, make those of hppa, mips, sh3, and sh5 reflect reality.
 1.24 23-Mar-2004  simonb branches: 1.24.6;
Actually compile __longjmp14.c.
 1.23 04-Mar-2004  kleink * Turn isinf(3) and isnan(3) into C99-style macros.
* Make it possible for ports to override these (i.e., VAX).
* Remove isnanl(), which was internal to libc only.
 1.22 15-Jan-2004  kleink Add C99 fpclassify(), isfinite(), isnormal(), and signbit() macros.
 1.21 26-Oct-2003  kleink Add __infinityf and __infinityl, float respectively long double analogs
of __infinity.
 1.20 25-Oct-2003  he Correct another typo.
 1.19 25-Oct-2003  kleink Pasto in previous.
 1.18 24-Oct-2003  kleink * Since there is no single portable IEEE 754 format for a long double,
keep a common implementation of isinfl() and isnanl() to be used by
platforms where `long double' == `double'; move others into
machine-dependent code.
* In due course, consider __VFP_FP__ on arm.
 1.17 01-Aug-2003  lukem Rework how dependency generation is performed:

* DPSRCS contains extra dependencies, but is _NOT_ added to CLEANFILES.
This is a change of behaviour. If a Makefile wants the clean semantics
it must specifically append to CLEANFILES.
Resolves PR toolchain/5204.

* To recap: .d (depend) files are generated for all files in SRCS and DPSRCS
that have a suffix of: .c .m .s .S .C .cc .cpp .cxx

* If YHEADER is set, automatically add the .y->.h to DPSRCS & CLEANFILES

* Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d depend upon ${DPSRCS}

* Deprecate the (short lived) DEPENDSRCS


Update the various Makefiles to these new semantics; generally either
adding to CLEANFILES (because DPSRCS doesn't do that anymore), or replacing
specific .o dependencies with DPSRCS entries.

Tested with "make -j 8 distribution" and "make distribution".
 1.16 17-May-2003  thorpej Build _isinfl() and _isnanl().
 1.15 12-May-2003  kleink Rename ieee754_function.c to function_ieee754.c, following the convention
used in exec_format.c, loadfile_format.c, subsys_machdep.c etc.
Per discussion with Christos.
 1.14 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.13 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.12 05-Mar-2000  shin branches: 1.12.6;
remove MIPS SOFTFLOAT.
 1.11 23-Dec-1999  kleink C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
 1.10 29-Sep-1999  takemura Hpcmips needs completely FPU instruction free user land.
XXX, this modification is kinda ad-hoc.
 1.9 29-Aug-1999  mycroft branches: 1.9.2;
Use C versions of isinf() and isnan(). The assembler code is basically
identical, but was endian-dependent.
 1.8 18-Jan-1999  castor * Fix typo in Makefile.inc -- byte_swap_2.4 -> byte_swap_4.S
* Change bytes_swap_4.S to have consistent NLEAF and END for swap routine.
 1.7 15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.6 27-Sep-1998  jonathan mips libc stubs for sig*14 signal API (128bit sigset_t),
plus backward-compatibility for the old 1.3 libc entrypoints.
 1.5 17-Oct-1997  jonathan Cacheflush support code for mips CPUs.
Used by GCC's lexical-closure trampoline code.
 1.4 15-Dec-1995  jonathan Add sigsetjmp.S for mips, and add it to the makefile.
 1.3 11-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2 25-Feb-1995  cgd don't forget inifinity.c
 1.1 25-Feb-1995  cgd need these for new gen/Makefile
 1.9.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.12.6.4 22-Mar-2002  nathanw Catch up to -current.
 1.12.6.3 08-Mar-2002  nathanw Catch up to -current.
 1.12.6.2 28-Nov-2001  wdk Add _lwp.c and _resumecontext.S
 1.12.6.1 21-Nov-2001  wdk ucontext support Klaus Klein <kleink@netbsd.org>
 1.24.6.1 19-Apr-2005  tron Pull up revision 1.25 (requested by kleink in ticket #163):
Push back the descriptions of NaN formats, and descriptions of the
distinction between signalling NaNs and quiet NaNs back into the
machine-dependent headers; treat the implementation of __nanf in the
same spirit.
IEEE 754 leaves the distinction between signalling NaNs and quiet NANs
to the implementation, and unlike our headers used to suggest they're
not identical in the interpretation of the fraction's MSb; in due
course, make those of hppa, mips, sh3, and sh5 reflect reality.
 1.28.34.3 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.28.34.2 27-Jan-2010  matt Don't use cfc1/ctc1 in softfloat. Use the "common" fabs/modf/ldexp when
using softfloat.
 1.28.34.1 05-Sep-2009  matt Add an assmebly version of bswap64
 1.34.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.6 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.5 14-Sep-2005  martin Add missing <compat/include/setjmp.h>
 1.4 03-Jul-2004  simonb Copy the sparc/sparc64 __longjmp14() way of dealing with signal masks:
* Restore the signal mask with sigprocmask() instead of _UC_SIGMASK,
* since libpthread may want to interpose on signal handling.

Fixes regress/lib/libpthread/siglongjmp1.
 1.3 03-Jul-2004  simonb Catch up with changes to __fpregset_t.
In __longjmp14(), copy the FP CSR from the correct array and array slot.

Completes fix for PR port-mips/25942.
 1.2 23-Mar-2004  simonb branches: 1.2.2;
Restore the PC as well; also use mcontext register defines for accessing
the mcontext.
 1.1 23-Mar-2004  simonb Use setcontext() instead of sigreturn() to implement longjmp().
 1.2.2.1 04-Jul-2004  he Pull up revisions 1.3-1.4 (requested by simonb in tickets #591 and #592):
Changes fixing PR#25942:
o Catch up with changes to __fpregset_t. In __longjmp14(),
copy the FP CSR from the correct array and array slot.
o Copy the sparc/sparc64 __longjmp14() way of dealing with
the signal mask: Restore the signal mask with sigprocmask()
instead of _UC_SIGMASK, since libpthread may want to
interpose on signal handling.
 1.11 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.10 23-Mar-2004  simonb Use setcontext() instead of sigreturn() to implement longjmp().
 1.9 26-Nov-2003  he Hide the register number constants behind an _R_ prefix, and also
rename FPBASE to _FPBASE, so that we avoid polluting the user's
name space when e.g. <sys/ptrace.h> is included. Previously, the
PC symbol in mips/regnum.h would conflict with the declaration of
the external variable by the same name in termcap.h, as discovered
by the ``okheaders'' regression test.
 1.8 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.7 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.6 05-Mar-2000  shin branches: 1.6.6;
remove MIPS SOFTFLOAT.
 1.5 11-Oct-1999  shin adjust #endif position (SOFTFLOAT)
 1.4 29-Sep-1999  takemura Hpcmips needs completely FPU instruction free user land.
XXX, this modification is kinda ad-hoc.
 1.3 31-Jan-1999  castor branches: 1.3.4;
Regularize with removal of genpubassym.cf. Structure offsets
now obtained from signal.h
 1.2 15-Jan-1999  castor Userland support for 64-bit safe sigcontexts.
 1.1 27-Sep-1998  jonathan mips libc stubs for sig*14 signal API (128bit sigset_t),
plus backward-compatibility for the old 1.3 libc entrypoints.
 1.3.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.6.6.1 11-Nov-2002  nathanw Catch up to -current
 1.5 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.2 15-Jan-1999  castor branches: 1.2.12;
Userland support for 64-bit safe sigcontexts.
 1.1 27-Sep-1998  jonathan mips libc stubs for sig*14 signal API (128bit sigset_t),
plus backward-compatibility for the old 1.3 libc entrypoints.
 1.2.12.1 11-Nov-2002  nathanw Catch up to -current
 1.11 25-Apr-2025  riastradh mips _lwp_makecontext: Align sp.

PR kern/59327: user stack pointer is not aligned properly
 1.10 24-Apr-2025  riastradh lib/libc/arch/mips/gen/_lwp.c: Sort includes.

No functional change intended.

Preparation for:

PR kern/59327: user stack pointer is not aligned properly
 1.9 30-Nov-2024  christos Create a new header lwp_private.h to contain _lwp_getprivate_fast,
_lwp_gettcb_fast, _lwp_settcb and remove them from mcontext.h, so that:
1. we don't need special hacks to hide them
2. we can include <lwp.h> where needed to get the necessary prototypes
without redefining them locally.
 1.8 29-Apr-2011  matt branches: 1.8.56;
Use correct CALLFRAME_SIZ depending on ABI.
 1.7 15-Mar-2011  matt Properly support the MIPS TLS ABI.
 1.6 24-Feb-2011  joerg Allow storing and receiving the LWP private pointer via ucontext_t
on all platforms except VAX and IA64. Add fast access via register for
AMD64, i386 and SH3 ports. Use this fast access in libpthread to replace
the stack based pthread_self(). Implement skeleton support for Alpha,
HPPA, PowerPC, SPARC and SPARC64, but leave it disabled.

Ports that support this feature provide __HAVE____LWP_GETPRIVATE_FAST in
machine/types.h and a corresponding __lwp_getprivate_fast in
machine/mcontext.h.

This material is based upon work partially supported by
The NetBSD Foundation under a contract with Joerg Sonnenberger.
 1.5 28-Apr-2008  martin branches: 1.5.8; 1.5.14; 1.5.20;
Remove clause 3 and 4 from TNF licenses
 1.4 12-Jun-2005  lukem branches: 1.4.20;
Add missing __RCSID()
 1.3 07-Apr-2003  kleink Make sure we reference getcontext() by its internal name.
 1.2 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 20-Nov-2001  wdk branches: 1.1.2;
file _lwp.c was initially added on branch nathanw_sa.
 1.1.2.3 02-Jan-2002  wdk Leave space for a callframe when bootstrapping a new LWP. The function
called my save the register passed arguments back onto the stack frame that
it assumed the caller created for it. For this reason we have to ensure
24 bytes (the standard call frame size) of stack space is writable *ABOVE*
the stack pointer for a newly create LWP.

XXX: We cannot include <machine/asm.h> to declare CALLFRAME_SIZ since
it isn't Lint-proof
 1.1.2.2 24-Nov-2001  wdk MIPS ABI calls require function target address to be stored in $t9
which is later used for calculating the correct $gp value for PIC
references

Therefore if we are forcing the program counter to call a function, we must
set the same address in the $t9 register
 1.1.2.1 20-Nov-2001  wdk MIPS specific context functions and LWP support

Compile tested only.
 1.4.20.1 18-May-2008  yamt sync with head.
 1.5.20.1 05-Mar-2011  bouyer Sync with HEAD
 1.5.14.2 29-Apr-2011  matt Both N32/N64 use 64-bit stack slots.
 1.5.14.1 29-Apr-2011  matt Pull in fixes from -current.
 1.5.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.5.8.1 28-Apr-2008  martin file _lwp.c was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.8.56.1 02-Aug-2025  perseant Sync with HEAD
 1.14 25-Apr-2025  riastradh mips __resumecontext: Align private stack frame size.

On mips64, UCONTEXT_SIZE is 664=0x298 (n32) or 744=0x2e8 (n64), but
sp is required to have 16-byte alignment in the ABI, so we need to
round the stack frame allocation up to 0x2a0 or 0x2f0.

No functional change intended on mips o32. Unlikely to have a
practical change on mips n32/n64, but possible if signal delivery
wins a race -- until we fix sp alignment in signal handler calls,
coming soon.

Based on a patch by rin@.

PR kern/59327: user stack pointer is not aligned properly
 1.13 15-Oct-2020  skrll branches: 1.13.8;
Remove '_OFFSETOF' prefix for genassm(1) generate CPP identifers for
consistency with other arches.

NFCI and libc.so is the same before and after.
 1.12 15-Oct-2020  skrll Trailing whitespace
 1.11 21-Sep-2016  skrll Fix for [on]{32,64}

/usr/tests/lib/libc/sys/t_getcontext
/usr/tests/lib/libc/sys/t_swapcontext
/usr/tests/lib/libc/sys/t_ucontext
/usr/tests/lib/libpthread/t_swapcontext

All pass now.

Changes amount to

- saving GP from caller in context for n{32,64}
- performing (the equivalient of) PIC_PROLOGUE for swapcontext and
__resumecontext
- Call setcontext via the PLT in __resumecontext
 1.10 13-Aug-2016  skrll Add a NOP_L
 1.9 13-Aug-2016  skrll PIC_TAILCALL on n32/n64 would mess up GP, so just use SYSTRAP to call
setcontext.

Fixes tests/lib/libc/sys/t_getcontext.c:setcontext_link
 1.8 12-Aug-2016  skrll Trailing whitespace
 1.7 12-Sep-2012  manu branches: 1.7.14;
setcontext() used to be incompatible with -lpthread since it affected
the TLS pointer, therefore wrecking the pthread environement.

Some ports had _UC_TLSBASE flag or equivalent (_UC_UNIQUE on alpha)
that controlled whether setcontext() would change the TLS pointer.
This change let libpthread override setcontext() with its own version
that unsets _UC_TLSBASE, enabling safe usage of setcontext() with
-lpthread.

We also have the following required changes here:
- rename alpha's _UC_UNIQUE into _UC_TLSBASE
- add _UC_TLSBASE definition in header file for all ports
(powerpc, sh3, sparc and sparc64 lack the implementation for now)
- introduce a libc stub that can be overriden for setcontext()
- modify MD libcs swapcontext() implementations so that they use the
setcontext() libc stub instead of doing a plain system call.

While we are there:
- document various MD _UC_* flags in header file
- add libc and libpthread tests for swapcontext() behavior
(hopefully helpful to spot MD problems introduced with this change)

Future work:
- Deciding whether kernel support or _UC_TLSBASE should be added for
powerpc, sh3, sparc and sparc64 is left to portmasters
sparc64

Approved by core@
 1.6 14-Dec-2009  matt branches: 1.6.6;
Merge from matt-nb5-mips64.
 1.5 28-Apr-2008  martin branches: 1.5.8; 1.5.14;
Remove clause 3 and 4 from TNF licenses
 1.4 01-Mar-2004  drochner branches: 1.4.32;
optimize this: we can use %ra for relocation directly
(saves 1 insn)
 1.3 01-Mar-2004  drochner get the offset to gp right
 1.2 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 28-Nov-2001  wdk branches: 1.1.2;
file _resumecontext.S was initially added on branch nathanw_sa.
 1.1.2.2 05-Jan-2003  wdk Tidy up delay slot usage
 1.1.2.1 28-Nov-2001  wdk _resumecontext was called by forcing the return address of a newly
created context. The global pointer calculation requires the function
address to be in $t9 - because it was not a proper ABI call to
_resumecontext we need a helper function to build the correct $gp
 1.4.32.1 18-May-2008  yamt sync with head.
 1.5.14.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.5.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.5.8.1 28-Apr-2008  martin file _resumecontext.S was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.6.6.1 30-Oct-2012  yamt sync with head
 1.7.14.1 04-Nov-2016  pgoyette Sync with HEAD
 1.13.8.1 02-Aug-2025  perseant Sync with HEAD
 1.27 22-Apr-2025  riastradh mips: Fix _longjmp(..., 0) so _setjmp returns 1 as intended.

_setjmp (like setjmp and sigsetjmp) is only permitted to return 0 the
first time around.

PR port-mips/59285: _longjmp(..., 0) makes setjmp return 0, not 1
 1.26 15-Oct-2020  skrll branches: 1.26.8;
Remove '_OFFSETOF' prefix for genassm(1) generate CPP identifers for
consistency with other arches.

NFCI and libc.so is the same before and after.
 1.25 15-Oct-2020  skrll Trailing whitespace
 1.24 08-Jul-2012  matt Slight optimization.
 1.23 09-Mar-2011  tsutsui branches: 1.23.4;
Reorder insns to fix more load delay hazard botches on R3000.
Fixes floating point exceptions in _longjmp() during /etc/rc and
now NWS-3470D boots up to multi user with -current userland binaries.

Also fill BDslots in error path properly.
 1.22 03-Sep-2010  matt Pullup fixes from matt-nb5-mips64.
This makes setjmp/longjmp work again.
 1.21 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.20 07-Oct-2005  tsutsui branches: 1.20.34;
Follow compat libc changes on i386:
> _setjmp and _longjmp are not compat functions. Noticed by Havard Eidnes
 1.19 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.18 26-Nov-2003  he Hide the register number constants behind an _R_ prefix, and also
rename FPBASE to _FPBASE, so that we avoid polluting the user's
name space when e.g. <sys/ptrace.h> is included. Previously, the
PC symbol in mips/regnum.h would conflict with the declaration of
the external variable by the same name in termcap.h, as discovered
by the ``okheaders'' regression test.
 1.17 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.16 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.15 05-Mar-2000  shin branches: 1.15.6;
remove MIPS SOFTFLOAT.
 1.14 11-Oct-1999  shin remove extra lw (SOFTFLOAT)
 1.13 11-Oct-1999  shin adjust #endif position (SOFTFLOAT)
 1.12 29-Sep-1999  takemura Hpcmips needs completely FPU instruction free user land.
XXX, this modification is kinda ad-hoc.
 1.11 05-Feb-1999  jonathan branches: 1.11.4;
_setjmp.S needs OFFSETOF_SC_{FP,}REGS, so include <machine/signal.h>
even tho _setjmp()/_longjmp() don't manipulate signals. (more thought?)
 1.10 15-Jan-1999  castor Userland support for 64-bit safe sigcontexts.
 1.9 28-May-1998  simonb Remove single ' from comment to keep cross-assemblers happy; fixes PR 5451.
 1.8 07-Jul-1997  jonathan Back out previous revision, which is reported to break signal-handing
in the GNU awk in our tree.
Leave the change in but commented out, it may be a ld.so problem.
 1.7 18-Jun-1997  jonathan Add .set noreorder/.set reorder around .cpload
 1.6 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.5 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.4 22-Dec-1995  jonathan Change mips assembly code for {,_,sig}setjmp.S to get register names
from <machine/regnum.h>, not <machine/reg.h> (which also defines structs.)
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.11.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.15.6.1 11-Nov-2002  nathanw Catch up to -current
 1.20.34.6 29-Apr-2011  matt Pull in fixes from -current.
 1.20.34.5 03-Feb-2010  matt Fix setjmp/longjmp (longjmp(a,v) was not returning v)
Fix __setjmp14 to not mark fp as used when running softfloat.
 1.20.34.4 27-Jan-2010  matt Don't use cfc1/ctc1 in softfloat. Use the "common" fabs/modf/ldexp when
using softfloat.
 1.20.34.3 12-Dec-2009  cliff #ifndef SOFTFLOAT_FOR_GCC around blocks of FP code.
 1.20.34.2 18-Aug-2009  matt Make arch/gen/_setjmp.S and compat/arch/gen/compat_setjmp.S as identical
as possible.
Use RCSID. Use FP_L/FP_S
 1.20.34.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.23.4.1 30-Oct-2012  yamt sync with head
 1.26.8.1 02-Aug-2025  perseant Sync with HEAD
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.6 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.3 27-Feb-2001  cgd branches: 1.3.2;
make these more amenable to being copied into libkern. (Gee, why wasn't
this done before? it's not like it was hard...)
 1.2 27-Feb-2001  cgd pull up <machine/endian.h> and use BYTE_ORDER to decide endianness,
rather than MIPSEL and MIPSEB definitions.
 1.1 15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.3.2.1 11-Nov-2002  nathanw Catch up to -current
 1.7 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.6 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.4 27-Feb-2001  cgd branches: 1.4.2;
make these more amenable to being copied into libkern. (Gee, why wasn't
this done before? it's not like it was hard...)
 1.3 27-Feb-2001  cgd pull up <machine/endian.h> and use BYTE_ORDER to decide endianness,
rather than MIPSEL and MIPSEB definitions.
 1.2 18-Jan-1999  castor * Fix typo in Makefile.inc -- byte_swap_2.4 -> byte_swap_4.S
* Change bytes_swap_4.S to have consistent NLEAF and END for swap routine.
 1.1 15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.4.2.1 11-Nov-2002  nathanw Catch up to -current
 1.6 29-Mar-2012  christos nbytes is now size_t
 1.5 29-Mar-2012  christos fix lint, should nbytes be changed to size_t to match with the struct passed?
 1.4 28-Apr-2008  martin branches: 1.4.4; 1.4.8;
Remove clause 3 and 4 from TNF licenses
 1.3 10-Jan-1999  simonb branches: 1.3.46;
s/vm_offset_t/vaddr_t/
 1.2 25-Feb-1998  perry change second parm of sysarch() from char * to void *
 1.1 17-Oct-1997  jonathan Cacheflush support code for mips CPUs.
Used by GCC's lexical-closure trampoline code.
 1.3.46.1 18-May-2008  yamt sync with head.
 1.4.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4.8.1 28-Apr-2008  martin file cacheflush.c was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.4.4.1 17-Apr-2012  yamt sync with head
 1.9 07-Nov-2018  riastradh On ports without __HAVE_LONG_DOUBLE, make fabsl alias fabs.

For some reason, fabs lives in libc, not in libm, and our tests now
detect when fabs or fabsl is missing from libm. For those ports that
sometimes have long double and sometimes don't, make it conditional.

Still missing: fabs _and_ fabsl on ia64. Need help from an itanium
wizard! Other portmasters: Please take a look and see if I missed
any ports that might have long double where this alias will not work.
 1.8 14-Dec-2009  matt branches: 1.8.44; 1.8.46;
Merge from matt-nb5-mips64.
 1.7 07-Aug-2003  agc branches: 1.7.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.5 17-Sep-1996  jonathan branches: 1.5.16;
* Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.5.16.1 11-Nov-2002  nathanw Catch up to -current
 1.7.46.2 18-Aug-2009  matt Cleanup/Add RCSIDs.
Cleanup/fix setjmp
Cleanup includes. (assym.h is your friend)
 1.7.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.8.46.1 10-Jun-2019  christos Sync with HEAD
 1.8.44.1 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.9 19-Mar-2015  joerg Call libc's fpgetround.
 1.8 17-Sep-2014  joerg Explicitly set noat around instructions using $at.
 1.7 24-Jun-2012  christos branches: 1.7.10;
fix old style definitions; XXX: gcc should have picked them up but it did not.
 1.6 03-Sep-2010  matt branches: 1.6.6;
Pullup fixes from matt-nb5-mips64.
This makes setjmp/longjmp work again.
 1.5 24-Dec-2005  perry branches: 1.5.34;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 18-Oct-1997  jonathan Prototype __flt_rounds().
 1.2 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 11-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.5.34.1 27-Jan-2010  matt Don't use cfc1/ctc1 in softfloat. Use the "common" fabs/modf/ldexp when
using softfloat.
 1.6.6.1 30-Oct-2012  yamt sync with head
 1.7.10.1 21-Mar-2015  snj Pull up following revision(s) (requested by joerg in ticket #632):
lib/libc/arch/arm/gen/flt_rounds.c: revision 1.5
lib/libc/arch/mips/gen/flt_rounds.c: revision 1.9
lib/libc/arch/powerpc/gen/flt_rounds.c: revision 1.12
lib/libc/arch/powerpc64/gen/flt_rounds.c: revision 1.2
lib/libc/arch/sh3/gen/flt_rounds.c: revision 1.6
Call libc's fpgetround.
 1.9 17-Sep-2014  joerg Explicitly set noat around instructions using $at.
 1.8 20-Mar-2012  matt Revert unneeded casts.
 1.7 20-Mar-2012  he Cast to unsigned int before doing shift operations, to appease lint.
 1.6 19-Mar-2012  matt Convert to C89 definitions.
Cleanup up type usage.
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 16-Sep-1996  jonathan branches: 1.2.16;
Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 11-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.16.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.7 17-Sep-2014  joerg Explicitly set noat around instructions using $at.
 1.6 19-Mar-2012  matt Convert to C89 definitions.
Cleanup up type usage.
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 16-Sep-1996  jonathan branches: 1.2.16;
Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 11-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.16.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.9 17-Sep-2014  joerg Explicitly set noat around instructions using $at.
 1.8 20-Mar-2012  matt Revert unneeded casts.
 1.7 20-Mar-2012  he Cast to unsigned int before doing shift operations, to appease lint.
 1.6 19-Mar-2012  matt Convert to C89 definitions.
Cleanup up type usage.
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 16-Sep-1996  jonathan branches: 1.2.16;
Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 11-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.16.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.10 27-Feb-2017  chs fix asm operands: "ctc1" uses the register as an input, not an output.
 1.9 17-Sep-2014  joerg branches: 1.9.2; 1.9.4;
Explicitly set noat around instructions using $at.
 1.8 20-Mar-2012  matt Revert unneeded casts.
 1.7 20-Mar-2012  he Cast to unsigned int before doing shift operations, to appease lint.
 1.6 19-Mar-2012  matt Convert to C89 definitions.
Cleanup up type usage.
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 16-Sep-1996  jonathan branches: 1.2.16;
Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 11-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.16.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.9.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.9.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.8 27-Feb-2017  chs fix asm operands: "ctc1" uses the register as an input, not an output.
 1.7 17-Sep-2014  joerg branches: 1.7.2; 1.7.4;
Explicitly set noat around instructions using $at.
 1.6 19-Mar-2012  matt Convert to C89 definitions.
Cleanup up type usage.
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 16-Sep-1996  jonathan branches: 1.2.16;
Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 11-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.16.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.7.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.7.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.10 27-Feb-2017  chs fix asm operands: "ctc1" uses the register as an input, not an output.
 1.9 17-Sep-2014  joerg branches: 1.9.2; 1.9.4;
Explicitly set noat around instructions using $at.
 1.8 20-Mar-2012  matt Revert unneeded casts.
 1.7 20-Mar-2012  he Cast to unsigned int before doing shift operations, to appease lint.
 1.6 19-Mar-2012  matt Convert to C89 definitions.
Cleanup up type usage.
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 16-Sep-1996  jonathan branches: 1.2.16;
Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 11-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.16.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.9.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.9.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.7 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.6 29-Aug-1999  mycroft branches: 1.6.10;
Trivial KNF.
 1.5 29-Aug-1999  mycroft Make the C version of frexp() consitent across platforms, and handle the
Inf/NaN case.
 1.4 29-Aug-1999  mycroft Use ieee.h.
 1.3 13-Jul-1997  christos Fix RCSID's
 1.2 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.6.10.1 08-Mar-2002  nathanw Catch up to -current.
 1.2 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.6 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.5 14-Nov-1998  christos branches: 1.5.12;
delint
 1.4 26-Jul-1998  mycroft const poisoning.
 1.3 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.2 28-Jun-1995  jonathan *** empty log message ***
 1.1 18-Jan-1995  mellon +Infinity for MIPS
 1.5.12.1 08-Mar-2002  nathanw Catch up to -current.
 1.7 29-Aug-1999  mycroft Use C versions of isinf() and isnan(). The assembler code is basically
identical, but was endian-dependent.
 1.6 13-Oct-1998  kleink Need internal names for isinf() and isnan().
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.3 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.2 22-Jan-2000  mycroft branches: 1.2.6;
Delint.
 1.1 29-Aug-1999  mycroft Use C versions of isinf() and isnan(). The assembler code is basically
identical, but was endian-dependent.
 1.2.6.1 08-Mar-2002  nathanw Catch up to -current.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.3 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.2 22-Jan-2000  mycroft branches: 1.2.6;
Delint.
 1.1 29-Aug-1999  mycroft Use C versions of isinf() and isnan(). The assembler code is basically
identical, but was endian-dependent.
 1.2.6.1 08-Mar-2002  nathanw Catch up to -current.
 1.10 17-Sep-2014  joerg Use canonical three operand form of add.d.
 1.9 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.8 07-Aug-2003  agc branches: 1.8.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.7 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.6 05-Nov-2002  thorpej t4 -> ta0
 1.5 17-Sep-1996  jonathan branches: 1.5.16;
* Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.5.16.1 11-Nov-2002  nathanw Catch up to -current
 1.8.46.2 18-Aug-2009  matt Cleanup/Add RCSIDs.
Cleanup/fix setjmp
Cleanup includes. (assym.h is your friend)
 1.8.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.7 24-Apr-2025  riastradh mips longjmp: Use _UC_SIGMASK to restore signal mask.

This way, restoring the signal mask and restoring the stack pointer
happen atomically with respect to signal handler calls, whereas using
sigprocmask would restore the signal mask _before_ the stack pointer,
breaking sigaltstack.

The motivation for using sigprocmask first and then setcontext later,
rather than _UC_SIGMASK in setcontext, was to get SA-based libpthead
sigprocmask interposition. But that's long gone and unlikely to come
back.

PR lib/57946: longjmp fails to restore stack first before restoring
signal mask on most architectures
 1.6 24-Jan-2016  christos branches: 1.6.28;
Use namespace protected types.
 1.5 29-Mar-2012  christos make constant explicitly unsigned
 1.4 03-Sep-2010  matt branches: 1.4.6;
Pullup fixes from matt-nb5-mips64.
This makes setjmp/longjmp work again.
 1.3 16-Feb-2009  lukem fix -Wsign-compare issue
 1.2 28-Apr-2008  martin branches: 1.2.8; 1.2.10; 1.2.14;
Remove clause 3 and 4 from TNF licenses
 1.1 17-Sep-2005  tsutsui branches: 1.1.20;
Switch mips to the new libc compat code layout.
 1.1.20.1 18-May-2008  yamt sync with head.
 1.2.14.3 29-Apr-2011  matt Pull in fixes from -current.
 1.2.14.2 30-Apr-2010  matt Semantic change: Use _REG_x with gregs, no binary difference
 1.2.14.1 30-Apr-2010  matt For N32/N64, GP is callee-saved
 1.2.10.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.2.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2.8.1 28-Apr-2008  martin file longjmp.c was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.4.6.1 17-Apr-2012  yamt sync with head
 1.6.28.1 02-Aug-2025  perseant Sync with HEAD
 1.10 24-Apr-2025  riastradh mips/makecontext.c: Use STACK_ALIGNBYTES for clarity.

No functional change intended.

Tidying to make stack alignment more obvious, prompted by:

PR kern/59327: user stack pointer is not aligned properly

Part of a patch by rin@.
 1.9 24-Apr-2025  riastradh mips/makecontext.c: Sort includes.

No functional change intended.

Preparation for:

PR kern/59327: user stack pointer is not aligned properly
 1.8 10-Aug-2016  skrll branches: 1.8.26;
Fix comments
 1.7 20-Sep-2011  joerg Explicitly add back __resumecontext wrapper
 1.6 19-Sep-2011  joerg Mark _resumecontext as dead. ANSIfy all declarations for it.
 1.5 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.4 28-Apr-2008  martin branches: 1.4.8; 1.4.14;
Remove clause 3 and 4 from TNF licenses
 1.3 19-Jan-2003  matt branches: 1.3.32;
Cast with uintptr_t instead of u_long.
 1.2 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 20-Nov-2001  wdk branches: 1.1.2;
file makecontext.c was initially added on branch nathanw_sa.
 1.1.2.5 28-Nov-2001  wdk _resumecontext was called by forcing the return address of a newly
created context. The global pointer calculation requires the function
address to be in $t9 - because it was not a proper ABI call to
_resumecontext we need a helper function to build the correct $gp
 1.1.2.4 24-Nov-2001  wdk MIPS ABI calls require function target address to be stored in $t9
which is later used for calculating the correct $gp value for PIC
references

Therefore if we are forcing the program counter to call a function, we must
set the same address in the $t9 register
 1.1.2.3 21-Nov-2001  wdk Fix Lint warnings
 1.1.2.2 21-Nov-2001  wdk ucontext support Klaus Klein <kleink@netbsd.org>
 1.1.2.1 20-Nov-2001  wdk MIPS specific context functions and LWP support

Compile tested only.
 1.3.32.1 18-May-2008  yamt sync with head.
 1.4.14.2 18-Aug-2009  matt Dont case pointers to __greg_t, use intptr_t (pointers on mips are signed)
 1.4.14.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4.8.1 28-Apr-2008  martin file makecontext.c was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.8.26.1 02-Aug-2025  perseant Sync with HEAD
 1.11 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.10 07-Aug-2003  agc branches: 1.10.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.9 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.8 19-Aug-1997  jonathan branches: 1.8.14;
Do a .cpload if compiling with PIC.
Examining the .so output from binutils 2.8 and 2.8.1 shows the
li.d $f2, 4503599627370496e0
is (incorrectly?) emitted as GP-relative loads when PIC is in effect.
 1.7 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.6 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.5 29-Sep-1995  jonathan Copy the input argument to $f0 so we handle negative inputs properly
in the tail.

Doesn't yet handle +/- inf as cleanly as other implementations.
 1.4 25-Sep-1995  jonathan The old mips modf didn't work (pr 1048). This replaces it with
a version that does work on little-endian MIPS CPUs. Not tested on
big-endian MIPS; the "li.d" may be byteorder-dependent.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.8.14.1 11-Nov-2002  nathanw Catch up to -current
 1.10.46.2 18-Aug-2009  matt Cleanup/Add RCSIDs.
Cleanup/fix setjmp
Cleanup includes. (assym.h is your friend)
 1.10.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.4 22-Feb-2009  martin Make NAN a compile time constant (with help from the compiler). Suggested
by krister. Fixes PR 40695.
Make references to the old construct (which we can't remove for binary
compatibility reasons) emit a linker warning.
 1.3 15-Apr-2005  kleink branches: 1.3.2; 1.3.32; 1.3.36;
Push back the descriptions of NaN formats, and descriptions of the
distinction between signalling NaNs and quiet NaNs back into the
machine-dependent headers; treat the implementation of __nanf in the
same spirit.

IEEE 754 leaves the distinction between signalling NaNs and quiet NANs
to the implementation, and unlike our headers used to suggest they're
not identical in the interpretation of the fraction's MSb; in due
course, make those of hppa, mips, sh3, and sh5 reflect reality.
 1.2 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.1 23-Dec-1999  kleink branches: 1.1.6;
C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
 1.1.6.1 08-Mar-2002  nathanw Catch up to -current.
 1.3.36.1 29-Apr-2011  matt Use GCC builtin for NAN (sync with current)
 1.3.32.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.3.2.2 19-Apr-2005  tron Pull up revision 1.3 (requested by kleink in ticket #163):
Push back the descriptions of NaN formats, and descriptions of the
distinction between signalling NaNs and quiet NaNs back into the
machine-dependent headers; treat the implementation of __nanf in the
same spirit.
IEEE 754 leaves the distinction between signalling NaNs and quiet NANs
to the implementation, and unlike our headers used to suggest they're
not identical in the interpretation of the fraction's MSb; in due
course, make those of hppa, mips, sh3, and sh5 reflect reality.
 1.3.2.1 15-Apr-2005  tron file nanf.c was added on branch netbsd-3 on 2005-04-19 12:30:50 +0000
 1.5 19-Sep-2011  joerg Mark _resumecontext as dead. ANSIfy all declarations for it.
 1.4 28-Apr-2008  martin branches: 1.4.8;
Remove clause 3 and 4 from TNF licenses
 1.3 08-Dec-2006  martin branches: 1.3.12;
Sync all resumecontext.c versions with the changes originally made
by Matthias Drochner to i386 and alpha:

-check for a NULL uc_link before calling setcontext(2); do a real exit(3)
instead with exit handlers and all that
-If setcontext(2) returns (which it shouldn't), do an _exit(-1) rather
than relying on a sensible return value to use as exit code. Makes
it less likely that an ucontext corruption goes unnoticed.
 1.2 18-Jan-2003  thorpej branches: 1.2.16;
Merge the nathanw_sa branch.
 1.1 20-Nov-2001  wdk branches: 1.1.2;
file resumecontext.c was initially added on branch nathanw_sa.
 1.1.2.2 21-Nov-2001  wdk ucontext support Klaus Klein <kleink@netbsd.org>
 1.1.2.1 20-Nov-2001  wdk MIPS specific context functions and LWP support

Compile tested only.
 1.2.16.1 09-Dec-2006  bouyer Pull up following revision(s) (requested by martin in ticket #264):
lib/libc/arch/sh5/gen/resumecontext.c: revision 1.2
lib/libc/arch/sh3/gen/resumecontext.c: revision 1.3
lib/libc/arch/sparc/gen/resumecontext.c: revision 1.3
lib/libc/arch/powerpc/gen/resumecontext.c: revision 1.3
lib/libc/arch/arm/gen/resumecontext.c: revision 1.3
lib/libc/arch/mips/gen/resumecontext.c: revision 1.3
lib/libc/arch/vax/gen/resumecontext.c: revision 1.2
lib/libc/arch/powerpc64/gen/resumecontext.c: revision 1.2
lib/libc/arch/hppa/gen/resumecontext.c: revision 1.2
Sync all resumecontext.c versions with the changes originally made
by Matthias Drochner to i386 and alpha:
-check for a NULL uc_link before calling setcontext(2); do a real exit(3)
instead with exit handlers and all that
-If setcontext(2) returns (which it shouldn't), do an _exit(-1) rather
than relying on a sensible return value to use as exit code. Makes
it less likely that an ucontext corruption goes unnoticed.
 1.3.12.1 18-May-2008  yamt sync with head.
 1.4.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4.8.1 28-Apr-2008  martin file resumecontext.c was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.20 15-Oct-2020  skrll Remove '_OFFSETOF' prefix for genassm(1) generate CPP identifers for
consistency with other arches.

NFCI and libc.so is the same before and after.
 1.19 03-Sep-2010  matt Pullup fixes from matt-nb5-mips64.
This makes setjmp/longjmp work again.
 1.18 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.17 17-Sep-2005  tsutsui branches: 1.17.34;
Switch mips to the new libc compat code layout.
 1.16 26-Nov-2003  he Hide the register number constants behind an _R_ prefix, and also
rename FPBASE to _FPBASE, so that we avoid polluting the user's
name space when e.g. <sys/ptrace.h> is included. Previously, the
PC symbol in mips/regnum.h would conflict with the declaration of
the external variable by the same name in termcap.h, as discovered
by the ``okheaders'' regression test.
 1.15 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.14 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.13 05-Mar-2000  shin branches: 1.13.6;
remove MIPS SOFTFLOAT.
 1.12 11-Oct-1999  shin adjust #endif position (SOFTFLOAT)
 1.11 29-Sep-1999  takemura Hpcmips needs completely FPU instruction free user land.
XXX, this modification is kinda ad-hoc.
 1.10 31-Jan-1999  castor branches: 1.10.4;
Regularize with removal of genpubassym.cf. Structure offsets
now obtained from signal.h
 1.9 15-Jan-1999  castor Userland support for 64-bit safe sigcontexts.
 1.8 27-Sep-1998  jonathan mips libc stubs for sig*14 signal API (128bit sigset_t),
plus backward-compatibility for the old 1.3 libc entrypoints.
 1.7 05-Dec-1997  thorpej Use __sigaltstack14(), not sigaltstack().
 1.6 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.5 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.4 22-Dec-1995  jonathan Change mips assembly code for {,_,sig}setjmp.S to get register names
from <machine/regnum.h>, not <machine/reg.h> (which also defines structs.)
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.10.4.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.13.6.1 11-Nov-2002  nathanw Catch up to -current
 1.17.34.7 30-Apr-2010  matt When .set reorder, the move goes before the jump, not after.
 1.17.34.6 03-Feb-2010  matt Cleanup #ifdefs.
 1.17.34.5 03-Feb-2010  matt Fix setjmp/longjmp (longjmp(a,v) was not returning v)
Fix __setjmp14 to not mark fp as used when running softfloat.
 1.17.34.4 27-Jan-2010  matt Don't use cfc1/ctc1 in softfloat. Use the "common" fabs/modf/ldexp when
using softfloat.
 1.17.34.3 12-Dec-2009  cliff #ifndef SOFTFLOAT_FOR_GCC around blocks of FP code.
 1.17.34.2 18-Aug-2009  matt Cleanup/Add RCSIDs.
Cleanup/fix setjmp
Cleanup includes. (assym.h is your friend)
 1.17.34.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.2 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.2 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.4 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.3 22-Feb-2000  mycroft Do the minimum work to make this compile with -Werror.
 1.2 26-Dec-1999  shin fix name space pollution by adding prefix '_mips_'.
closes PR 8770.
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.5 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.4 25-Feb-2000  mycroft Remove pointless #ifdef.
 1.3 22-Feb-2000  mycroft Do the minimum work to make this compile with -Werror.
 1.2 26-Dec-1999  shin fix name space pollution by adding prefix '_mips_'.
closes PR 8770.
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.4 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.3 22-Feb-2000  mycroft Do the minimum work to make this compile with -Werror.
 1.2 26-Dec-1999  shin fix name space pollution by adding prefix '_mips_'.
closes PR 8770.
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.5 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.4 22-Feb-2000  mycroft Fix bogons.
 1.3 22-Feb-2000  mycroft Do the minimum work to make this compile with -Werror.
 1.2 26-Dec-1999  shin fix name space pollution by adding prefix '_mips_'.
closes PR 8770.
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.5 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.4 22-Feb-2000  mycroft Fix bogons.
 1.3 22-Feb-2000  mycroft Do the minimum work to make this compile with -Werror.
 1.2 26-Dec-1999  shin fix name space pollution by adding prefix '_mips_'.
closes PR 8770.
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.5 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.4 22-Feb-2000  mycroft Fix bogons.
 1.3 22-Feb-2000  mycroft Do the minimum work to make this compile with -Werror.
 1.2 26-Dec-1999  shin fix name space pollution by adding prefix '_mips_'.
closes PR 8770.
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.3 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.2 22-Jan-2000  mycroft Delint.
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.2 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.4 11-Jan-2009  christos merge christos-time_t
 1.3 13-Mar-2000  soren branches: 1.3.2; 1.3.16;
Fix doubled 'the's.
 1.2 05-Mar-2000  shin remove unused files (MIPS SOFTFLOAT).
 1.1 16-Sep-1999  takemura branches: 1.1.1;
Initial revision
 1.1.1.1 16-Sep-1999  takemura Import NetBSD/hpcmips source files from hpcmips repository.
file list:
sys/arch/hpcmips/
distrib/hpcmips/
etc/etc.hpcmips/
lib/libc/arch/mips/fplib/
lib/libc/arch/mips/fplib/Makefile.inc
lib/libc/arch/mips/fplib/environment.h
lib/libc/arch/mips/fplib/fplib_glue.c
lib/libc/arch/mips/fplib/fplib_libc.c
lib/libc/arch/mips/fplib/hpcmips-gcc.h
lib/libc/arch/mips/fplib/softfloat-macros.h
lib/libc/arch/mips/fplib/softfloat-specialize.h
lib/libc/arch/mips/fplib/softfloat.c
lib/libc/arch/mips/fplib/softfloat.h
lib/libc/arch/mips/gen/ieee.h
lib/libc/arch/mips/gen/sf_fabs.c
lib/libc/arch/mips/gen/sf_flt_rounds.c
lib/libc/arch/mips/gen/sf_fpgetmask.c
lib/libc/arch/mips/gen/sf_fpgetround.c
lib/libc/arch/mips/gen/sf_fpgetsticky.c
lib/libc/arch/mips/gen/sf_fpsetmask.c
lib/libc/arch/mips/gen/sf_fpsetround.c
lib/libc/arch/mips/gen/sf_fpsetsticky.c
lib/libc/arch/mips/gen/sf_isinf.c
lib/libc/arch/mips/gen/sf_ldexp.c
lib/libc/arch/mips/gen/sf_modf.c
 1.3.16.1 04-Jan-2009  christos merge with head.
 1.3.2.3 13-Aug-2002  nathanw Catch up to -current.
 1.3.2.2 08-Mar-2002  nathanw Catch up to -current.
 1.3.2.1 16-Nov-2001  thorpej Fix merge errors from last sync w/ -current.
 1.9 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.8 17-Sep-2005  tsutsui branches: 1.8.34;
Switch mips to the new libc compat code layout.
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.5 31-Jan-1999  castor branches: 1.5.12;
Regularize with removal of genpubassym.cf. Structure offsets
now obtained from signal.h
 1.4 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.3 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.2 22-Dec-1995  jonathan Change mips assembly code for {,_,sig}setjmp.S to get register names
from <machine/regnum.h>, not <machine/reg.h> (which also defines structs.)
 1.1 15-Dec-1995  jonathan Add sigsetjmp.S for mips, and add it to the makefile.
 1.5.12.1 11-Nov-2002  nathanw Catch up to -current
 1.8.34.3 23-Aug-2009  matt savemask goes into the slot at _JBLEN
 1.8.34.2 18-Aug-2009  matt Cleanup/Add RCSIDs.
Cleanup/fix setjmp
Cleanup includes. (assym.h is your friend)
 1.8.34.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.8 15-Oct-2020  skrll Remove '_OFFSETOF' prefix for genassm(1) generate CPP identifers for
consistency with other arches.

NFCI and libc.so is the same before and after.
 1.7 21-Sep-2016  skrll Fix for [on]{32,64}

/usr/tests/lib/libc/sys/t_getcontext
/usr/tests/lib/libc/sys/t_swapcontext
/usr/tests/lib/libc/sys/t_ucontext
/usr/tests/lib/libpthread/t_swapcontext

All pass now.

Changes amount to

- saving GP from caller in context for n{32,64}
- performing (the equivalient of) PIC_PROLOGUE for swapcontext and
__resumecontext
- Call setcontext via the PLT in __resumecontext
 1.6 21-Sep-2016  skrll Trailing whitespace.
 1.5 12-Sep-2012  manu branches: 1.5.14;
setcontext() used to be incompatible with -lpthread since it affected
the TLS pointer, therefore wrecking the pthread environement.

Some ports had _UC_TLSBASE flag or equivalent (_UC_UNIQUE on alpha)
that controlled whether setcontext() would change the TLS pointer.
This change let libpthread override setcontext() with its own version
that unsets _UC_TLSBASE, enabling safe usage of setcontext() with
-lpthread.

We also have the following required changes here:
- rename alpha's _UC_UNIQUE into _UC_TLSBASE
- add _UC_TLSBASE definition in header file for all ports
(powerpc, sh3, sparc and sparc64 lack the implementation for now)
- introduce a libc stub that can be overriden for setcontext()
- modify MD libcs swapcontext() implementations so that they use the
setcontext() libc stub instead of doing a plain system call.

While we are there:
- document various MD _UC_* flags in header file
- add libc and libpthread tests for swapcontext() behavior
(hopefully helpful to spot MD problems introduced with this change)

Future work:
- Deciding whether kernel support or _UC_TLSBASE should be added for
powerpc, sh3, sparc and sparc64 is left to portmasters
sparc64

Approved by core@
 1.4 14-Dec-2009  matt branches: 1.4.6;
Merge from matt-nb5-mips64.
 1.3 28-Apr-2008  martin branches: 1.3.8; 1.3.14;
Remove clause 3 and 4 from TNF licenses
 1.2 18-Jan-2003  thorpej branches: 1.2.32;
Merge the nathanw_sa branch.
 1.1 20-Nov-2001  wdk branches: 1.1.2;
file swapcontext.S was initially added on branch nathanw_sa.
 1.1.2.5 05-Jan-2003  wdk Tidy up delay slot usage
 1.1.2.4 20-Nov-2002  wdk Be debugger friendly:
When saving register passed argumants (in a0 and a1) for later use,
place them in their respective place in the stack frame
and not elsewhere.
 1.1.2.3 24-Nov-2001  wdk Use inline syscalls for [gs]etcontext instead of calling the library
functions which are just simple wrappers around the same sycall
 1.1.2.2 21-Nov-2001  wdk ucontext support Klaus Klein <kleink@netbsd.org>
 1.1.2.1 20-Nov-2001  wdk MIPS specific context functions and LWP support

Compile tested only.
 1.2.32.1 18-May-2008  yamt sync with head.
 1.3.14.4 18-Aug-2009  uebayasi REGSZ -> SZREG
 1.3.14.3 18-Aug-2009  uebayasi Include assym.h. Fix build.
 1.3.14.2 18-Aug-2009  matt Cleanup/Add RCSIDs.
Cleanup/fix setjmp
Cleanup includes. (assym.h is your friend)
 1.3.14.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.3.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3.8.1 28-Apr-2008  martin file swapcontext.S was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.4.6.1 30-Oct-2012  yamt sync with head
 1.5.14.1 04-Nov-2016  pgoyette Sync with HEAD
 1.4 06-Dec-2009  uebayasi Rename ${SRCS.{alpha,arm,...}.gen} to ${LSRCS.{alpha,arm,...}.gen} because
they ended up in ${LSRCS}, not ${SRCS}. ${SRCS.*} namespace will be used
for more useful things. No functional changes intended.
 1.3 01-Aug-2003  lukem branches: 1.3.46;
Rework how dependency generation is performed:

* DPSRCS contains extra dependencies, but is _NOT_ added to CLEANFILES.
This is a change of behaviour. If a Makefile wants the clean semantics
it must specifically append to CLEANFILES.
Resolves PR toolchain/5204.

* To recap: .d (depend) files are generated for all files in SRCS and DPSRCS
that have a suffix of: .c .m .s .S .C .cc .cpp .cxx

* If YHEADER is set, automatically add the .y->.h to DPSRCS & CLEANFILES

* Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d depend upon ${DPSRCS}

* Deprecate the (short lived) DEPENDSRCS


Update the various Makefiles to these new semantics; generally either
adding to CLEANFILES (because DPSRCS doesn't do that anymore), or replacing
specific .o dependencies with DPSRCS entries.

Tested with "make -j 8 distribution" and "make distribution".
 1.2 15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.1 25-Feb-1995  cgd need these now, with new net Makefile.inc
 1.3.46.1 29-Apr-2011  matt Pull in fixes from -current.
 1.6 15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.6 15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.2 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.1 27-Aug-2009  matt branches: 1.1.2;
file milieu.h was initially added on branch matt-nb5-mips64.
 1.1.2.1 27-Aug-2009  matt Add MKSOFTFLOAT support for mips and mips64. Some more work is needed to
complete support FLOAT128.
 1.5 27-Jun-2011  matt Fix softfloat for mips*el
 1.4 25-Feb-2011  pooka fix my whitespace copypaste
 1.3 25-Feb-2011  pooka Fix LE softfloat (mostly theoretical) and comment.

from Alessandro Forin
 1.2 14-Dec-2009  matt branches: 1.2.2;
Merge from matt-nb5-mips64.
 1.1 27-Aug-2009  matt branches: 1.1.2;
file mips-gcc.h was initially added on branch matt-nb5-mips64.
 1.1.2.3 01-Jun-2011  matt Kill a section copied from arm-gcc.h. MIPS is "normal" (well, more normal)
than ARM for FP.
 1.1.2.2 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.1.2.1 27-Aug-2009  matt Add MKSOFTFLOAT support for mips and mips64. Some more work is needed to
complete support FLOAT128.
 1.2.2.1 05-Mar-2011  bouyer Sync with HEAD
 1.5 07-Jul-2011  matt Don't define a new enum. Just #define round_* to their FP_Rx instead.
 1.4 04-Jul-2011  matt Add __floatunsidf __floatunsisf __floatunsitf routines.
XXX i think they are correct but not sure.
 1.3 17-Jan-2011  matt Make the MIPS N32/N64 ABIs properly support 128-bit long doubles. With this
change, we should be fully conformant with the N32 and N64 ABIs.
Add {fpclassify,infinity,isnan,ininf,signbit}l_ieee754.c back to lib/libc/gen.
Note that infinityl_ieee754.c will work with either 64-bit, 80-bit, or
128-bit long doubles.
 1.2 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.1 27-Aug-2009  matt branches: 1.1.2;
file softfloat.h was initially added on branch matt-nb5-mips64.
 1.1.2.3 20-May-2011  matt Fix botched definition of float128_to_uint32_round_to_zero
 1.1.2.2 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.1.2.1 27-Aug-2009  matt Add MKSOFTFLOAT support for mips and mips64. Some more work is needed to
complete support FLOAT128.
 1.5 31-Jul-2009  dsl Add the 'abs', 'div' and 'erand48' sources to stdlib/Makefile.inc.
Change the arch files only include the .S files.
This adds imaxdiv() to some archs where it was missing.
 1.4 04-Aug-2008  matt branches: 1.4.6;
Add C99 functions imaxabs and imaxdiv.
 1.3 22-Mar-2006  drochner branches: 1.3.22;
build erand48_ieee754.c on everything but vax
 1.2 06-Mar-2000  kleink Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.
 1.1 05-Nov-1997  cgd branches: 1.1.2;
A foolish consistency... gen, net, and string all get MD sources
specified by including a Makefile.inc from the appropriate MD directory.
stdlib doesn't do that, but there's no reason that it shouldn't (and
it'd be nice to eliminate the 'if's from the MI stdlib Makefile.inc).
 1.1.2.2 08-Nov-1997  veego pull up changes from the trunk (approved by perry) from cgd:
>A foolish consistency... gen, net, and string all get MD sources
>specified by including a Makefile.inc from the appropriate MD directory.
>stdlib doesn't do that, but there's no reason that it shouldn't (and
>it'd be nice to eliminate the 'if's from the MI stdlib Makefile.inc).
 1.1.2.1 05-Nov-1997  veego file Makefile.inc was added on branch netbsd-1-3 on 1997-11-08 21:56:39 +0000
 1.3.22.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.4.6.2 04-Aug-2008  matt Add C99 functions imaxabs and imaxdiv.
 1.4.6.1 04-Aug-2008  matt file Makefile.inc was added on branch christos-time_t on 2008-08-04 21:29:29 +0000
 1.6 02-Nov-2024  jakllsch Fix mips build failure caused by new ffsl.c
 1.5 14-Dec-2009  matt branches: 1.5.58;
Merge from matt-nb5-mips64.
 1.4 30-Jul-2009  dsl If SRCS contains any .S files then remove the corresponding .c file from
SRCS and add to LSRCS (for lint).
Change the 'string' Makefiles so that the arch/*/string/Makefile.inc
need only specify the .S files for that architecture and not the .c
files for all the files they don't override.
 1.3 17-Jul-2009  dsl Change all archs so that strchr.[cS] and strrchr.[cS] exist and generate
duplicate symbols for index() and rindex().
libc and kernel build ok for affected archs (i386, amd64, vax, sun3,
evbmips-eb) all seem ok.
(vax might lose an asm index() - but comments imply it is worse than the C)
 1.2 10-Oct-2000  jeffs branches: 1.2.50;
Make memcpy and memmove use bcopy assembly for mips. Tweak forward copy
code for backward copy to make overlap copy faster. This happens in
some SW like sleepycat db. Use temp labels in order to not confused
the profiling tools.
 1.1 20-Mar-1995  mycroft Separate machine dependencies.
 1.2.50.1 18-Aug-2009  matt Enable use of memset2.c/bzero2.c
Cleanup RCSIDs
 1.5.58.1 02-Aug-2025  perseant Sync with HEAD
 1.9 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.8 07-Aug-2003  agc branches: 1.8.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.7 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.6 20-Oct-1997  jonathan branches: 1.6.14;
Pull up endian-independent changes from locore, userland bcopy.S.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.6.14.1 11-Nov-2002  nathanw Catch up to -current
 1.8.46.2 18-Aug-2009  matt Enable use of memset2.c/bzero2.c
Cleanup RCSIDs
 1.8.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.10 21-Dec-2005  christos moved to common.
 1.9 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.8 10-Oct-2000  jeffs branches: 1.8.2;
Make memcpy and memmove use bcopy assembly for mips. Tweak forward copy
code for backward copy to make overlap copy faster. This happens in
some SW like sleepycat db. Use temp labels in order to not confused
the profiling tools.
 1.7 18-Oct-1997  jonathan Pull up endian diffs from kernel bcopy().
 1.6 09-Aug-1997  jonathan Substitute Mach 3.0 kernel bcopy() which is unrolled for aligned copies.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.8.2.1 11-Nov-2002  nathanw Catch up to -current
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.10 14-Dec-2009  matt Fix typo.
 1.9 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.8 07-Aug-2003  agc branches: 1.8.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.7 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.6 19-Oct-1997  jonathan branches: 1.6.14;
Pull up ambi-endian diffs from kernel bzero().
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.6.14.1 11-Nov-2002  nathanw Catch up to -current
 1.8.46.3 29-Apr-2011  matt Pull in fixes from -current.
 1.8.46.2 18-Aug-2009  matt Checkin a fix for 8byte access even though we are now using the C version.
 1.8.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.8 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.5 17-Sep-1996  jonathan branches: 1.5.16;
* Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.5.16.1 11-Nov-2002  nathanw Catch up to -current
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.9 17-Jul-2009  dsl Change all archs so that strchr.[cS] and strrchr.[cS] exist and generate
duplicate symbols for index() and rindex().
libc and kernel build ok for affected archs (i386, amd64, vax, sun3,
evbmips-eb) all seem ok.
(vax might lose an asm index() - but comments imply it is worse than the C)
 1.8 22-Apr-2005  simonb branches: 1.8.34;
Branch to a local symbol instead of a global symbol.
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.5 17-Sep-1996  jonathan branches: 1.5.16;
* Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.5.16.1 11-Nov-2002  nathanw Catch up to -current
 1.8.34.2 18-Aug-2009  matt Enable use of memset2.c/bzero2.c
Cleanup RCSIDs
 1.8.34.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.2 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.1 10-Oct-2000  jeffs Make memcpy and memmove use bcopy assembly for mips. Tweak forward copy
code for backward copy to make overlap copy faster. This happens in
some SW like sleepycat db. Use temp labels in order to not confused
the profiling tools.
 1.2 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.1 10-Oct-2000  jeffs Make memcpy and memmove use bcopy assembly for mips. Tweak forward copy
code for backward copy to make overlap copy faster. This happens in
some SW like sleepycat db. Use temp labels in order to not confused
the profiling tools.
 1.2 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.1 15-Mar-1999  jonathan Assembly-coded, word-at-a-time unrolled memset().
 1.8 17-Jul-2009  dsl Change all archs so that strchr.[cS] and strrchr.[cS] exist and generate
duplicate symbols for index() and rindex().
libc and kernel build ok for affected archs (i386, amd64, vax, sun3,
evbmips-eb) all seem ok.
(vax might lose an asm index() - but comments imply it is worse than the C)
 1.7 07-Aug-2003  agc branches: 1.7.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.5 17-Sep-1996  jonathan branches: 1.5.16;
* Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.5.16.1 11-Nov-2002  nathanw Catch up to -current
 1.7.46.2 18-Aug-2009  matt Enable use of memset2.c/bzero2.c
Cleanup RCSIDs
 1.7.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.8 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.5 17-Sep-1996  jonathan branches: 1.5.16;
* Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.5.16.1 11-Nov-2002  nathanw Catch up to -current
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.8 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.5 17-Sep-1996  jonathan branches: 1.5.16;
* Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.5.16.1 11-Nov-2002  nathanw Catch up to -current
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.11 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.10 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.9 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.8 13-Dec-2000  simonb branches: 1.8.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.7 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.6 02-Dec-1998  thorpej Warn about references to the compatibility vfork() (i.e. the vfork() with
the 4.4BSD non-shared-address-space semantics), and direct the user to
include <unistd.h> to generate the correct reference.

This warning isn't about an ABI compatibility issue, but the new vfork() is
considerably faster.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.8.2.1 11-Nov-2002  nathanw Catch up to -current
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.8 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.7 28-Apr-2008  martin branches: 1.7.8; 1.7.14;
Remove clause 3 and 4 from TNF licenses
 1.6 08-Feb-2003  simonb branches: 1.6.32;
Fix a tyop in a comment.
 1.5 08-Feb-2003  cgd * fix handling of invalid arguments (was jumping to wrong label!)
(found by... running the regress test!)
* clean up punctuation.
* create a proper frame for the child fn that follows the o32 calling
conventions. In particular, leave 4 stack slots that the child
fn can write on, put the GP above them, and invoke .cprestore
properly in light of the child fn arg area. (realized it was a
problem upon inspection, verified using the regress test compiled
-O0.)
 1.4 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.3 20-Jul-2001  thorpej branches: 1.3.2;
Duh, call the clone's entry point w/ jal, so that when it returns,
it returns to the correct $ra (not the parent's!!).
 1.2 17-Jul-2001  thorpej Cosmetic change.
 1.1 17-Jul-2001  thorpej Add a __clone(2) entry point.
 1.3.2.3 11-Nov-2002  nathanw Catch up to -current
 1.3.2.2 08-Oct-2001  nathanw Catch up to -current.
 1.3.2.1 20-Jul-2001  nathanw file __clone.S was added on branch nathanw_sa on 2001-10-08 20:17:49 +0000
 1.6.32.1 18-May-2008  yamt sync with head.
 1.7.14.2 19-Aug-2009  matt Make this a bit closer to the orignal. Make the disassembled diff easier.
 1.7.14.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.7.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.7.8.1 28-Apr-2008  martin file __clone.S was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.2 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.1 25-Aug-1999  thorpej Add __msgctl13(), __semctl13(), and __shmctl13() (symbols are __RENAME()'d
in their respective header files). Add PSEUDO stubs for the old versions
of these system calls.

Note that __semctl13() doesn't require the extra stub that the old
semctl()/__semctl() did, as the SUSv2 version takes variable arguments,
and thus does not require the extra indirection.
 1.8 26-Oct-2021  christos Merge all MD __sigaction14_sigtramp.c copies into one:
- sparc and sparc64 were not using version 0 sigcontext when there were
no arguments in the signal version. This was probably a bug.
- vax is using +1 the version numbers of the other archs.
- Only hppa was defining __LIBC12_SOURCE__ so it was getting a working
sigcontext before. all the other ports that supported sigcontext had
the compat code disabled.
[pointed out by thorpej, thanks!]
If we want to remove sigcontext support from userland at least now there
is less work to do so.
 1.7 28-Apr-2008  martin branches: 1.7.8;
Remove clause 3 and 4 from TNF licenses
 1.6 19-Feb-2006  christos branches: 1.6.20;
make these consistent.
 1.5 12-Jun-2005  lukem Add missing __RCSID()
 1.4 23-Mar-2004  drochner save errno while trying to install a !SA_SIGINFO trampoline -- this
is expected to fail with !COMPAT_16 kernels, and we shouldn't
overwrite errno in this case
 1.3 02-Nov-2003  christos Add userland portion of siginfo for mips. Many thanks to simon for letting
me use his machines down under.
 1.2 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 09-Jul-2002  thorpej branches: 1.1.2;
New __sigaction14() system call stub which registers the signal
trampoline, and the signal trampolines themselves.

NOTE: These are not yet enabled; they will be enabled after further
testing on more architectures.
 1.1.2.3 02-Oct-2002  thorpej libc:
Internally rename __sigaction14 to __libc_sigaction14. Provide a
weak alias of __sigaction14 -> __libc_sigaction14.

libpthread:
Use __libc_sigaction14 to actually register the signal handler, rather
than using __sigaction_sigtramp() directly with a hard-coded trampoline
version. While we don't actually use the libc trampoline, we want to
avoid depending on any COMPAT_* kernel options down the road (this is
already the case for the VAX port).

Be explicit about which version of the signal interface we're interposing
(...14), and build pthread_sig.c with __LIBC12_SOURCE__ (required to get
the libc-internal interfaces).
 1.1.2.2 01-Aug-2002  nathanw Catch up to -current.
 1.1.2.1 09-Jul-2002  nathanw file __sigaction14_sigtramp.c was added on branch nathanw_sa on 2002-08-01 03:27:58 +0000
 1.6.20.1 18-May-2008  yamt sync with head.
 1.7.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.7.8.1 28-Apr-2008  martin file __sigaction14_sigtramp.c was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.5 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.4 26-Mar-2004  drochner fix references to the syscall formerly known as SYS___sigreturn14
 1.3 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.2 13-Dec-2000  simonb Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.1 27-Sep-1998  jonathan mips libc stubs for sig*14 signal API (128bit sigset_t),
plus backward-compatibility for the old 1.3 libc entrypoints.
 1.3 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.2 26-Mar-2004  drochner fix references to the syscall formerly known as SYS___sigreturn14
 1.1 09-Jul-2002  thorpej branches: 1.1.2;
New __sigaction14() system call stub which registers the signal
trampoline, and the signal trampolines themselves.

NOTE: These are not yet enabled; they will be enabled after further
testing on more architectures.
 1.1.2.2 01-Aug-2002  nathanw Catch up to -current.
 1.1.2.1 09-Jul-2002  nathanw file __sigtramp1.S was added on branch nathanw_sa on 2002-08-01 03:27:58 +0000
 1.5 07-Apr-2022  andvar s/psuedo/pseudo/
 1.4 18-Nov-2021  thorpej Decorate the MIPS signal trampoline with the appropriate .cfi
directives to allow exception unwind / backtrace across a signal
handler.
 1.3 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.2 28-Apr-2008  martin branches: 1.2.8; 1.2.14;
Remove clause 3 and 4 from TNF licenses
 1.1 02-Nov-2003  christos branches: 1.1.32;
Add userland portion of siginfo for mips. Many thanks to simon for letting
me use his machines down under.
 1.1.32.1 18-May-2008  yamt sync with head.
 1.2.14.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.2.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2.8.1 28-Apr-2008  martin file __sigtramp2.S was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.4 19-Feb-2021  simonb Remove the incorrect register shuffle - we pass SYS___syscall as the
syscall number in v0 and pass all the original __syscall() args in their
original slots/regs.
 1.3 18-Apr-2020  thorpej Rename "syscall" to "_syscall" and provide "syscall" as a weak alias.
 1.2 31-Jan-2014  matt branches: 1.2.26;
Since N32/N64 pass the first 8 arguments in registers, we can load all
the arguments into those registers before invoking the syscall having
the kernel syscall handler from having to do that.
 1.1 13-Dec-2000  simonb branches: 1.1.60; 1.1.66;
Another bare minimum __syscall.
 1.1.66.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.60.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.26.1 21-Apr-2020  martin Sync with HEAD
 1.6 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.5 07-Aug-2003  agc branches: 1.5.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.3 13-Dec-2000  simonb branches: 1.3.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.2 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.1 04-Jan-1998  thorpej Add syscall stubs for __vfork14(). These are basically copies of Ovfork.S
with the syscall numbers changed.

Since 4.4BSD vfork(2) did not share address space, Ovfork.S could be changed
to be identical to fork.S (modulo syscall numbers). __vfork14.S, however,
needs to remain separate since with a shared address space, the stub needs to
pre-decrement the stack and do an indirect jump to the return address, so that
the shared stackframe is still there when the parent returns. (Obviously,
this does not apply to systems which to not build stackframes on leaf calls.)
 1.3.2.1 11-Nov-2002  nathanw Catch up to -current
 1.5.46.2 18-Aug-2009  matt Cleanup RCSIDs.
Use SYSTRAP instead li v0, SYS_*; syscall since that's what SYSTRAP does.
 1.5.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.18 12-Dec-2010  tsutsui brk(2) should update __curbrk, not __minbrk or garbage.
 1.17 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.16 07-Aug-2003  agc branches: 1.16.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.15 23-May-2003  simonb Match END label with LEAF label.
 1.14 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.13 13-Dec-2000  simonb branches: 1.13.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.12 04-Jul-2000  kleink Missed in previous: replace the previously used _brk label with an ordinary
local label; problem noticed by Matthias Drochner.
 1.11 26-Jun-2000  kleink Thinko in previous: we do always use an internal name.
 1.10 23-Jun-2000  kleink Add internal names for brk() and sbrk().
 1.9 31-Mar-1999  kleink branches: 1.9.10;
Change references to `end' to `_end' as not to invade (or being invaded by)
the user's name space.
 1.8 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.7 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.6 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.5 25-Sep-1995  jonathan Fix an old bug, whereby ASMSTR() was used before #including "SYS.h", where
it was defined.
 1.4 20-Mar-1995  mycroft SYS_brk -> SYS_break, and other (minor) changes.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.9.10.1 22-Aug-2000  kleink Pull up revs. 1.10-1.12 (approved by thorpej):
Add internal names for brk(), sbrk() and fork().
 1.13.2.1 11-Nov-2002  nathanw Catch up to -current
 1.16.46.4 29-Apr-2011  matt Pull in fixes from -current.
 1.16.46.3 05-Sep-2009  matt LP64 cleanup --> s/la/PTR_LA/
 1.16.46.2 18-Aug-2009  matt Cleanup RCSIDs.
Use SYSTRAP instead li v0, SYS_*; syscall since that's what SYSTRAP does.
 1.16.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.21 03-Dec-2022  skrll Trailing whitespace
 1.20 06-Feb-2021  simonb For mips n32/n64 explicitly save the GP reg on the stack, and
restore it _after_ the call to __errno(). Fixes sending the
__errno() call off to nowhereland when this code is included
in another library (eg __posix_cerror() in libposix). Failure
picked up by the ATF lib/libposix/posix1/t_rename test.
 1.19 12-Sep-2013  joerg branches: 1.19.18; 1.19.28;
Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.18 27-Feb-2012  tsutsui branches: 1.18.2;
Fix pasto.
 1.17 27-Feb-2012  joerg Make __cerror protected to restore ABI leak in older libc versions,
where e.g. librt referenced the copy from libc. This still allows libc
to use PC-relative jumps.
 1.16 17-Jan-2011  matt branches: 1.16.6; 1.16.8;
Make __cerror hidden.
 1.15 03-Sep-2010  matt Pullup fixes from matt-nb5-mips64.
This makes setjmp/longjmp work again.
 1.14 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.13 07-Aug-2003  agc branches: 1.13.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.12 07-Feb-2003  cgd looks like nobody ever seriously tried the _REENTRANT version of this
code (which, uh, seems the default for a fresh build)... it wasn't
setting up v1 properly (the instruction to set up v1 was after the
return jump, in "reorder" code... i.e. after the end of the function).
That would break error returns from 64-bit syscalls (e.g. checks
in dd and who knows what else) to see if input or output are pipes.
It looks like the non-_REENTRANT version was broken (on the nathanw-sa
branch) in rev 1.9.2.1 and fixed in 1.9.2.2, but the _REENTRANT version
was never fixed, and the broken bits were merged back on to the trunk.
 1.11 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.10 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.9 13-Dec-2000  simonb branches: 1.9.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.8 29-May-2000  castor Make __cerror be LEAF_NOPROFILE. I relies upon having v0 and v1 be unchanged
from the caller. From Ethan Solomita <ethan@geocast.com>
 1.7 14-Jan-1999  kleink branches: 1.7.8;
* On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.6 25-Jul-1998  jonathan From Arne Juul <arnej@math.ntnu.no>:
Explicilty reload the mips-ABIcall GOT/$gp in cerror().
cerror() gets called from outside libc (e.g., from libposix's rename(),
and if we don't load $t9, cerror() makes wild references using
the libposix $gp and coredumps.
 1.5 17-Sep-1996  jonathan branches: 1.5.4;
* Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.5.4.1 27-Sep-1998  cgd pull up rev 1.6 from trunk (jonathan).
 1.7.8.1 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.9.2.3 20-Nov-2002  wdk Tidy up stack frame
 1.9.2.2 11-Nov-2002  nathanw Catch up to -current
 1.9.2.1 02-Jan-2002  wdk Use __errno() in order to be thread compliant.

Fixes bug in errno1 thread regression test
 1.13.46.5 16-Mar-2010  matt Restore GP before calling __errno() and then do a normal return (since gp is
only used to obtain address of __errno and never used afterwards). Otherwise
since __errno overwrites t3 we would restore a bogus gp value.

Bug reported by Juli Mallett from FreeBSD.
 1.13.46.4 05-Sep-2009  matt LP64 cleanup --> s/la/PTR_LA/
 1.13.46.3 24-Aug-2009  matt Fix an O32'ism. Store the error into the S0 slot, not the arguments array
above us (since that doesn't always exist in NewABI).
 1.13.46.2 18-Aug-2009  matt Cleanup RCSIDs.
Use SYSTRAP instead li v0, SYS_*; syscall since that's what SYSTRAP does.
 1.13.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.16.8.2 27-Feb-2012  bouyer Pull up following revision(s) (requested by oster in ticket #61):
lib/libc/arch/mips/sys/cerror.S: revision 1.18
Fix pasto.
 1.16.8.1 27-Feb-2012  riz Pull up following revision(s) (requested by joerg in ticket #57):
lib/libc/arch/arm/sys/cerror.S: revision 1.8
lib/libc/arch/vax/SYS.h: revision 1.12
lib/libc/arch/powerpc64/sys/cerror.S: revision 1.3
lib/libc/arch/powerpc64/sys/cerror.S: revision 1.4
lib/libc/arch/i386/sys/cerror.S: revision 1.16
lib/libc/arch/x86_64/sys/cerror.S: revision 1.5
lib/libc/arch/powerpc/sys/cerror.S: revision 1.10
lib/libc/arch/mips/sys/cerror.S: revision 1.17
lib/libc/arch/powerpc/sys/cerror.S: revision 1.9
Make __cerror protected to restore ABI leak in older libc versions,
where e.g. librt referenced the copy from libc. This still allows libc
to use PC-relative jumps.
PowerPC doesn't have CERROR since it never had a.out.
Use _C_LABEL(__cerror) instead.
 1.16.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.16.6.1 17-Apr-2012  yamt sync with head
 1.18.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.19.28.1 06-Feb-2021  martin Pull up following revision(s) (requested by simonb in ticket #1199):

lib/libc/arch/mips/sys/cerror.S: revision 1.20

For mips n32/n64 explicitly save the GP reg on the stack, and
restore it _after_ the call to __errno(). Fixes sending the
__errno() call off to nowhereland when this code is included
in another library (eg __posix_cerror() in libposix). Failure
picked up by the ATF lib/libposix/posix1/t_rename test.
 1.19.18.1 06-Feb-2021  martin Pull up following revision(s) (requested by simonb in ticket #1648):

lib/libc/arch/mips/sys/cerror.S: revision 1.20

For mips n32/n64 explicitly save the GP reg on the stack, and
restore it _after_ the call to __errno(). Fixes sending the
__errno() call off to nowhereland when this code is included
in another library (eg __posix_cerror() in libposix). Failure
picked up by the ATF lib/libposix/posix1/t_rename test.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.11 07-Feb-2017  kamil Mark exect(3) obsolete and bind it to plain execve(2) on all platforms

The original exect(2) from BSD4.2 was enabling bit for tracing
(single-step mode) and calling execve(2). The purpose of it was to generate
a signal for a tracer once the application will change its image to a new
program.

This approach no longer works as:
- exect(2) traces (single-steps) libc and it requires hundreds or
thousands steps before entering a new image
- it's vax and x86 specific code
- this functionality has been moved to the kernel - once a process is
traced it will generate SIGTRAP with si_code TRAP_EXEC and route it to
its debugger
- the side effects and unportability make this interface unusable
- there are no known users of this interface
- it apparently never worked better since day0 of NetBSD ("day0 bug")

Users are requested to move to other execve(2) variants. Calling current
execve(2) as it is the most similar behavior to this one from BSD4.2.

Discussed several times on mailing lists and in PR/51700.

Add warning to exect(3) telling about marking this function obsolete.

This function is prepared to be removed in next libc major bump.

Sponsored by <The NetBSD Foundation>
 1.10 14-Dec-2009  matt branches: 1.10.28; 1.10.32;
Merge from matt-nb5-mips64.
 1.9 07-Aug-2003  agc branches: 1.9.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.8 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.7 13-Dec-2000  simonb branches: 1.7.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.6 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.7.2.1 11-Nov-2002  nathanw Catch up to -current
 1.9.46.2 18-Aug-2009  matt Cleanup RCSIDs.
Use SYSTRAP instead li v0, SYS_*; syscall since that's what SYSTRAP does.
 1.9.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.10.32.1 21-Apr-2017  bouyer Sync with HEAD
 1.10.28.1 20-Mar-2017  pgoyette Sync with HEAD
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.12 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.11 07-Aug-2003  agc branches: 1.11.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.10 13-Feb-2003  nathanw Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).
 1.9 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.8 13-Dec-2000  simonb branches: 1.8.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.7 26-Jun-2000  kleink Need an internal name for fork().
 1.6 14-Jan-1999  kleink branches: 1.6.10;
* On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.6.10.1 22-Aug-2000  kleink Pull up rev. 1.7 (approved by thorpej):
Add internal names for brk(), sbrk() and fork().
 1.8.2.1 11-Nov-2002  nathanw Catch up to -current
 1.11.46.2 18-Aug-2009  matt Cleanup RCSIDs.
Use SYSTRAP instead li v0, SYS_*; syscall since that's what SYSTRAP does.
 1.11.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.7 15-Oct-2020  skrll Remove '_OFFSETOF' prefix for genassm(1) generate CPP identifers for
consistency with other arches.

NFCI and libc.so is the same before and after.
 1.6 12-Aug-2016  skrll Provide _OFFSETOF_UC_GREGS_GP and use _OFFSETOF_UC_GREGS_* in getcontext
 1.5 10-Aug-2016  skrll We need to save the GP of the caller in the context for n32/n64
 1.4 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.3 28-Apr-2008  martin branches: 1.3.8; 1.3.14;
Remove clause 3 and 4 from TNF licenses
 1.2 18-Jan-2003  thorpej branches: 1.2.32;
Merge the nathanw_sa branch.
 1.1 20-Nov-2001  wdk branches: 1.1.2;
file getcontext.S was initially added on branch nathanw_sa.
 1.1.2.4 05-Jan-2003  wdk Tidy up delay slot usage
 1.1.2.3 24-Nov-2001  wdk No PIC references in function, so remove PIC_PROLOGUE setup.
Also guarantees patent $gp is saved with the context instead of the $gp
local to _getcontext().
 1.1.2.2 21-Nov-2001  wdk ucontext support Klaus Klein <kleink@netbsd.org>
 1.1.2.1 20-Nov-2001  wdk MIPS specific context functions and LWP support

Compile tested only.
 1.2.32.1 18-May-2008  yamt sync with head.
 1.3.14.2 18-Aug-2009  uebayasi Include assym.h for _OFFSETOF_UC_GREGS.
 1.3.14.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.3.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3.8.1 28-Apr-2008  martin file getcontext.S was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.2 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.1 25-Aug-1999  thorpej Add __msgctl13(), __semctl13(), and __shmctl13() (symbols are __RENAME()'d
in their respective header files). Add PSEUDO stubs for the old versions
of these system calls.

Note that __semctl13() doesn't require the extra stub that the old
semctl()/__semctl() did, as the SUSv2 version takes variable arguments,
and thus does not require the extra indirection.
 1.12 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.11 22-Apr-2005  simonb branches: 1.11.34;
Use the same function name in the LEAF() and END() directives.
 1.10 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.9 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.8 13-Dec-2000  simonb branches: 1.8.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.7 28-Sep-2000  kleink Need an internal name for pipe(2).
 1.6 14-Jan-1999  kleink branches: 1.6.10;
* On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.6.10.1 29-Sep-2000  kleink Pull up rev. 1.7 (approved by thorpej):
Add internal name for pipe().
 1.8.2.1 11-Nov-2002  nathanw Catch up to -current
 1.11.34.2 18-Aug-2009  matt Cleanup RCSIDs.
Use SYSTRAP instead li v0, SYS_*; syscall since that's what SYSTRAP does.
 1.11.34.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.10 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.9 07-Aug-2003  agc branches: 1.9.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.8 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.7 13-Dec-2000  simonb branches: 1.7.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.6 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.7.2.1 11-Nov-2002  nathanw Catch up to -current
 1.9.46.2 18-Aug-2009  matt Cleanup RCSIDs.
Use SYSTRAP instead li v0, SYS_*; syscall since that's what SYSTRAP does.
 1.9.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.6 11-Nov-1996  mycroft Treat reboot() like a normal system call. From PR 2458.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.19 26-Jun-2013  matt Use t1 instead of v1
 1.18 12-Dec-2010  tsutsui branches: 1.18.6; 1.18.12;
We can't assume syscall retains t0, unless it's documented as ABI.
 1.17 14-Dec-2009  matt Merge from matt-nb5-mips64.
 1.16 22-Apr-2005  simonb branches: 1.16.34;
Use the same function name in the LEAF() and END() directives.
 1.15 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.14 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.13 13-Dec-2000  simonb branches: 1.13.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.12 26-Jun-2000  kleink Thinko in previous: we do always use an internal name.
 1.11 23-Jun-2000  kleink Add internal names for brk() and sbrk().
 1.10 31-Mar-1999  kleink branches: 1.10.10;
Change references to `end' to `_end' as not to invade (or being invaded by)
the user's name space.
 1.9 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.8 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.7 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.6 25-Sep-1995  jonathan Fix an old bug, whereby ASMSTR() was used before #including "SYS.h", where
it was defined.
 1.5 20-Mar-1995  mycroft SYS_brk -> SYS_break, and other (minor) changes.
 1.4 15-Dec-1994  mycroft More underscores...
 1.3 28-Nov-1994  dean more underscore changes.
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.10.10.1 22-Aug-2000  kleink Pull up revs. 1.11-1.12 (approved by thorpej):
Add internal names for brk(), sbrk() and fork().
 1.13.2.1 11-Nov-2002  nathanw Catch up to -current
 1.16.34.4 29-Apr-2011  matt Pull in fixes from -current.
 1.16.34.3 05-Sep-2009  matt LP64 cleanup --> s/la/PTR_LA/
 1.16.34.2 18-Aug-2009  matt Cleanup RCSIDs.
Use SYSTRAP instead li v0, SYS_*; syscall since that's what SYSTRAP does.
 1.16.34.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.18.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.18.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5 01-Mar-1995  mycroft Clean up deleted files.
 1.4 15-Dec-1994  mycroft More underscores...
 1.3 28-Nov-1994  dean more underscore changes.
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.10 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.9 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.8 13-Dec-2000  simonb branches: 1.8.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.7 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.6 16-Oct-1996  jonathan Add missing "t9, " to "la" insn in error-return case.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.8.2.1 25-Feb-2002  nathanw Move setlogin() stub to C code, and namespace-protect it.
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.1 07-Jul-2000  itohy Add special treatment of shmat(2).
On m68k ELF calling standard (__SVR4_ABI__), if a function
returns a pointer, the return value should go to a0 as well as d0.
 1.2 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.1 25-Aug-1999  thorpej Add __msgctl13(), __semctl13(), and __shmctl13() (symbols are __RENAME()'d
in their respective header files). Add PSEUDO stubs for the old versions
of these system calls.

Note that __semctl13() doesn't require the extra stub that the old
semctl()/__semctl() did, as the SUSv2 version takes variable arguments,
and thus does not require the extra indirection.
 1.3 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.2 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.1 28-Sep-1998  thorpej sigaction() that calls the compat syscall (jonathan forgot to commit this).
 1.12 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.11 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.10 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.9 13-Dec-2000  simonb branches: 1.9.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.8 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.7 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.6 27-Sep-1998  jonathan mips libc stubs for sig*14 signal API (128bit sigset_t),
plus backward-compatibility for the old 1.3 libc entrypoints.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.9.2.1 11-Nov-2002  nathanw Catch up to -current
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.12 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.11 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.10 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.9 13-Dec-2000  simonb branches: 1.9.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.8 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.7 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.6 27-Sep-1998  jonathan mips libc stubs for sig*14 signal API (128bit sigset_t),
plus backward-compatibility for the old 1.3 libc entrypoints.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.9.2.1 11-Nov-2002  nathanw Catch up to -current
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.9 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.8 26-Mar-2004  drochner the WARN_REFERENCES text "include <signal.h> for correct reference" is pointless
as <signal.h> won't help you, so remove it
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.6 13-Dec-2000  simonb Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.5 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.4 27-Sep-1998  jonathan mips libc stubs for sig*14 signal API (128bit sigset_t),
plus backward-compatibility for the old 1.3 libc entrypoints.
 1.3 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.2 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.12 17-Sep-2005  tsutsui Switch mips to the new libc compat code layout.
 1.11 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.10 10-Nov-2002  thorpej ABICALLS -> __ABICALLS__
 1.9 13-Dec-2000  simonb branches: 1.9.2;
Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.8 14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.7 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.6 27-Sep-1998  jonathan mips libc stubs for sig*14 signal API (128bit sigset_t),
plus backward-compatibility for the old 1.3 libc entrypoints.
 1.5 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.4 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.9.2.1 11-Nov-2002  nathanw Catch up to -current
 1.4 01-Mar-1995  mycroft Clean up deleted files.
 1.3 15-Dec-1994  mycroft More underscores...
 1.2 14-Nov-1994  dean Prepended underscores
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.8 18-Apr-2020  thorpej Rename "syscall" to "_syscall" and provide "syscall" as a weak alias.
 1.7 31-Jan-2014  matt branches: 1.7.26;
Since N32/N64 pass the first 8 arguments in registers, we can load all
the arguments into those registers before invoking the syscall having
the kernel syscall handler from having to do that.
 1.6 14-Dec-2009  matt branches: 1.6.6; 1.6.12;
Merge from matt-nb5-mips64.
 1.5 07-Aug-2003  agc branches: 1.5.46;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 13-Dec-2000  simonb Remove all the .abicalls assembler directives - "SYS.h" already has that.
 1.3 17-Sep-1996  jonathan * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
 1.2 16-Sep-1996  jonathan Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to "NetBSD:".
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled
 1.5.46.2 18-Aug-2009  matt Cleanup RCSIDs.
Use SYSTRAP instead li v0, SYS_*; syscall since that's what SYSTRAP does.
 1.5.46.1 16-Aug-2009  matt Move to new ABI agnostic mechanisms. Get rid of magic constants.
Use genassym.cf to generate them.
 1.6.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7.26.1 21-Apr-2020  martin Sync with HEAD
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 24-May-1994  glass libc support for mips. libkern hooks are disabled

RSS XML Feed