Home | History | Annotate | only in /src/lib/libc/softfloat
History log of /src/lib/libc/softfloat
RevisionDateAuthorComments
 1.1 10-Sep-2025  nat Switch over m68k soffloat build to libc/softfloat.

m68k would previously use softfloat functions contained in libgcc_s.

This change aligns m68k with other platforms built with softfloat.

It is still possible to build the gcc_s softfloat impementation by setting
MKSOFFTFLOAT=yes MKLIBCSOFTFLOAT=no

Addresses PR/59393.
 1.22 10-Sep-2025  nat Switch over m68k soffloat build to libc/softfloat.

m68k would previously use softfloat functions contained in libgcc_s.

This change aligns m68k with other platforms built with softfloat.

It is still possible to build the gcc_s softfloat impementation by setting
MKSOFFTFLOAT=yes MKLIBCSOFTFLOAT=no

Addresses PR/59393.
 1.21 13-Mar-2016  mrg remove some more GCC 4.5 code. make GCC 5.3 be HAVE_GCC=53, so that,
for example, HAVE_GCC >= 48 works properly.
 1.20 08-Apr-2015  martin Restrict the arm compiler optimization hack to gcc 4.5
 1.19 10-Aug-2014  matt branches: 1.19.2;
MKCOMPAT fixes for when compat MACHINE_CPU != normal MACHINE_CPU
 1.18 14-Jun-2014  mrg remove remaining makefile support for GCC < 45 that i found.
 1.17 30-Jan-2014  matt branches: 1.17.2;
Add unordtf2.c
 1.16 19-Dec-2013  joerg Only apply -fno-tree-vrp for GCC.
 1.15 30-Apr-2013  matt Match against LIBC_MACHINE_ARCH for MKCOMPAT
 1.14 16-Apr-2013  matt Use MACHINE_ARCH, not MACHINE
 1.13 16-Apr-2013  matt ARM EABI needs different floating point comparision functions.
 1.12 16-Nov-2012  he Fix make syntax problem by putting the condition on the same line as .elif.
 1.11 14-Nov-2012  msaitoh For arm, add -fno-tree-vrp to COPTS when compiling softfloat.c.
Without -fno-tree-vrp, -INF + -INF returns 0 by adddf3.
Fixes PR#46953.
 1.10 04-Jul-2011  mrg branches: 1.10.2; 1.10.4; 1.10.8; 1.10.10;
sh3 also needs -Wno-enum-compare here.
 1.9 03-Jul-2011  mrg mips wants some -Wno-enum-compare here, too.
 1.8 01-Jul-2011  mrg XXX: apply -Wno-error/friends to a few files
 1.7 17-Jan-2011  matt Add long double functions for eq,ne,gt,le,ge,lt,neg ops.
 1.6 06-Dec-2009  uebayasi Fix typo in previous.
 1.5 06-Dec-2009  uebayasi Assign quad / softfloat specific ${SRCS} to ${SRCS.quad} / ${SRCS.softfloat}
then append them to ${SRCS}. Those will be used to generate quad / softfloat
symbol lists.
 1.4 26-Sep-2004  jmmv branches: 1.4.40;
Add support to build the mac68k port with soft-float enabled (i.e., setting
MKSOFTFLOAT=yes). The main purpose of this feature is to let NetBSD work
in machines with the 68040LC chip (those that have the FPU bug).

All the work has been done by Bruce O'Neel <edoneel AT sdf.lonestar.org>,
with some very minor changes by me; the patches were being posted to the
port-mac68k mailing list. It has been tested for a long time by several
users, including me.

I have just verified that regular releases, as well as soft-float ones,
continue to build.

There have been no objections to this patch since I asked for them in July
in the port-mac68k list.
 1.3 06-May-2003  rearnsha GCC-3 requires a libcall to support testing for unordered.
 1.2 21-May-2002  bjh21 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4; 1.1.6;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.6.1 21-Jun-2002  nathanw Catch up to -current.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file Makefile.inc was added on branch minoura-xpg4dl on 2000-06-23 16:17:54 +0000
 1.4.40.1 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.10.10.1 24-Nov-2012  jdc Pull up revisions:
src/lib/libc/softfloat/Makefile.inc 1.11-1.12 via patch
src/doc/HACKS 1.124 via patch
(requested by msaitoh in ticket #703).

For arm, add -fno-tree-vrp to COPTS when compiling softfloat.c.
Without -fno-tree-vrp, -INF + -INF returns 0 by adddf3.
Fixes PR#46953.
 1.10.8.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.8.2 23-Jun-2013  tls resync from head
 1.10.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.10.4.1 24-Nov-2012  jdc Pull up revisions:
src/lib/libc/softfloat/Makefile.inc 1.11-1.12 via patch
src/doc/HACKS 1.124 via patch
(requested by msaitoh in ticket #703).

For arm, add -fno-tree-vrp to COPTS when compiling softfloat.c.
Without -fno-tree-vrp, -INF + -INF returns 0 by adddf3.
Fixes PR#46953.
 1.10.2.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.10.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.17.2.1 10-Aug-2014  tls Rebase.
 1.19.2.1 10-Apr-2015  snj Pull up following revision(s) (requested by martin in ticket #670):
lib/libc/softfloat/Makefile.inc: revision 1.20
Restrict the arm compiler optimization hack to gcc 4.5
 1.2 21-May-2002  bjh21 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4; 1.1.6;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.6.1 21-Jun-2002  nathanw Catch up to -current.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file README.NetBSD was added on branch minoura-xpg4dl on 2000-06-23 16:17:55 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file README.txt was added on branch minoura-xpg4dl on 2000-06-23 16:17:55 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file eqdf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:55 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file eqsf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:56 +0000
 1.1 17-Jan-2011  matt branches: 1.1.4;
Add long double functions for eq,ne,gt,le,ge,lt,neg ops.
 1.1.4.2 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.1.4.1 17-Jan-2011  matt file eqtf2.c was added on branch matt-nb5-mips64 on 2011-04-29 07:48:35 +0000
 1.5 10-Sep-2025  nat Fix build for gcc_s softfloat (m68k).

Now that almost all of libc/softfloat is not build when setting
LIBCSOFTFLOAT=no for m68k it was necessary to define missing variables.

Adresses PR/59393.
 1.4 28-Apr-2008  martin branches: 1.4.8;
Remove clause 3 and 4 from TNF licenses
 1.3 12-May-2002  bjh21 branches: 1.3.32;
Add SIGFPE support to SoftFloat, so fpsetmask/fpgetmask now work. A new
variable, float_exception_mask (#defined to _softfloat_float_exception_mask)
contains the current exception mask.
Also make the argument to float_raise into an fp_except.
Also synchronise file header comments between files.
 1.2 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4; 1.1.6;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.6.2 21-Jun-2002  nathanw Catch up to -current.
 1.1.6.1 28-Jan-2002  nathanw Catch up to -current.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file fpgetmask.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:56 +0000
 1.3.32.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 fpgetmask.c was added on branch christos-time_t on 2008-04-28 20:23:01 +0000
 1.3 28-Apr-2008  martin branches: 1.3.8;
Remove clause 3 and 4 from TNF licenses
 1.2 13-Jan-2002  thorpej branches: 1.2.32;
Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4; 1.1.6;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.6.1 28-Jan-2002  nathanw Catch up to -current.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file fpgetround.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:56 +0000
 1.2.32.1 18-May-2008  yamt sync with head.
 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 fpgetround.c was added on branch christos-time_t on 2008-04-28 20:23:01 +0000
 1.3 28-Apr-2008  martin branches: 1.3.8;
Remove clause 3 and 4 from TNF licenses
 1.2 13-Jan-2002  thorpej branches: 1.2.32;
Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4; 1.1.6;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.6.1 28-Jan-2002  nathanw Catch up to -current.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file fpgetsticky.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:57 +0000
 1.2.32.1 18-May-2008  yamt sync with head.
 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 fpgetsticky.c was added on branch christos-time_t on 2008-04-28 20:23:01 +0000
 1.5 10-Jan-2013  matt Add hooks to softfloat to support per-lwp exception state.
 1.4 28-Apr-2008  martin branches: 1.4.4; 1.4.8; 1.4.28;
Remove clause 3 and 4 from TNF licenses
 1.3 12-May-2002  bjh21 branches: 1.3.32;
Add SIGFPE support to SoftFloat, so fpsetmask/fpgetmask now work. A new
variable, float_exception_mask (#defined to _softfloat_float_exception_mask)
contains the current exception mask.
Also make the argument to float_raise into an fp_except.
Also synchronise file header comments between files.
 1.2 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4; 1.1.6;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.6.2 21-Jun-2002  nathanw Catch up to -current.
 1.1.6.1 28-Jan-2002  nathanw Catch up to -current.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file fpsetmask.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:57 +0000
 1.3.32.1 18-May-2008  yamt sync with head.
 1.4.28.1 25-Feb-2013  tls resync 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 fpsetmask.c was added on branch christos-time_t on 2008-04-28 20:23:01 +0000
 1.4.4.1 23-Jan-2013  yamt sync with head
 1.4 10-Jan-2013  matt Add hooks to softfloat to support per-lwp exception state.
 1.3 28-Apr-2008  martin branches: 1.3.4; 1.3.8; 1.3.28;
Remove clause 3 and 4 from TNF licenses
 1.2 13-Jan-2002  thorpej branches: 1.2.32;
Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4; 1.1.6;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.6.1 28-Jan-2002  nathanw Catch up to -current.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file fpsetround.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:57 +0000
 1.2.32.1 18-May-2008  yamt sync with head.
 1.3.28.1 25-Feb-2013  tls resync with head
 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 fpsetround.c was added on branch christos-time_t on 2008-04-28 20:23:01 +0000
 1.3.4.1 23-Jan-2013  yamt sync with head
 1.4 10-Jan-2013  matt Add hooks to softfloat to support per-lwp exception state.
 1.3 28-Apr-2008  martin branches: 1.3.4; 1.3.8; 1.3.28;
Remove clause 3 and 4 from TNF licenses
 1.2 13-Jan-2002  thorpej branches: 1.2.32;
Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4; 1.1.6;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.6.1 28-Jan-2002  nathanw Catch up to -current.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file fpsetsticky.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:58 +0000
 1.2.32.1 18-May-2008  yamt sync with head.
 1.3.28.1 25-Feb-2013  tls resync with head
 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 fpsetsticky.c was added on branch christos-time_t on 2008-04-28 20:23:01 +0000
 1.3.4.1 23-Jan-2013  yamt sync with head
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file gedf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:58 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file gesf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:58 +0000
 1.1 17-Jan-2011  matt branches: 1.1.4;
Add long double functions for eq,ne,gt,le,ge,lt,neg ops.
 1.1.4.2 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.1.4.1 17-Jan-2011  matt file getf2.c was added on branch matt-nb5-mips64 on 2011-04-29 07:48:35 +0000
 1.3 29-Sep-2025  nat Fix return values for softfloat functions to appease gcc.

Not sure if it is gcc and m68k only so it wrapped up in defines.
 1.2 27-Sep-2004  he Only compile the floatx80-using functions if the arch in question
defines the FLOATX80 macro. Fixes build problem for arm ports.
 1.1 26-Sep-2004  jmmv Add support to build the mac68k port with soft-float enabled (i.e., setting
MKSOFTFLOAT=yes). The main purpose of this feature is to let NetBSD work
in machines with the 68040LC chip (those that have the FPU bug).

All the work has been done by Bruce O'Neel <edoneel AT sdf.lonestar.org>,
with some very minor changes by me; the patches were being posted to the
port-mac68k mailing list. It has been tested for a long time by several
users, including me.

I have just verified that regular releases, as well as soft-float ones,
continue to build.

There have been no objections to this patch since I asked for them in July
in the port-mac68k list.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file gtdf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:17:58 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file gtsf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:00 +0000
 1.1 17-Jan-2011  matt branches: 1.1.4;
Add long double functions for eq,ne,gt,le,ge,lt,neg ops.
 1.1.4.2 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.1.4.1 17-Jan-2011  matt file gttf2.c was added on branch matt-nb5-mips64 on 2011-04-29 07:48:35 +0000
 1.3 29-Sep-2025  nat Fix return values for softfloat functions to appease gcc.

Not sure if it is gcc and m68k only so it wrapped up in defines.
 1.2 27-Sep-2004  he Only compile the floatx80-using functions if the arch in question
defines the FLOATX80 macro. Fixes build problem for arm ports.
 1.1 26-Sep-2004  jmmv Add support to build the mac68k port with soft-float enabled (i.e., setting
MKSOFTFLOAT=yes). The main purpose of this feature is to let NetBSD work
in machines with the 68040LC chip (those that have the FPU bug).

All the work has been done by Bruce O'Neel <edoneel AT sdf.lonestar.org>,
with some very minor changes by me; the patches were being posted to the
port-mac68k mailing list. It has been tested for a long time by several
users, including me.

I have just verified that regular releases, as well as soft-float ones,
continue to build.

There have been no objections to this patch since I asked for them in July
in the port-mac68k list.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file ledf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:00 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file lesf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:00 +0000
 1.1 17-Jan-2011  matt branches: 1.1.4;
Add long double functions for eq,ne,gt,le,ge,lt,neg ops.
 1.1.4.2 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.1.4.1 17-Jan-2011  matt file letf2.c was added on branch matt-nb5-mips64 on 2011-04-29 07:48:36 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file ltdf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:01 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file ltsf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:01 +0000
 1.1 17-Jan-2011  matt branches: 1.1.4;
Add long double functions for eq,ne,gt,le,ge,lt,neg ops.
 1.1.4.2 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.1.4.1 17-Jan-2011  matt file lttf2.c was added on branch matt-nb5-mips64 on 2011-04-29 07:48:36 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file nedf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:01 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file negdf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:02 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file negsf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:02 +0000
 1.1 17-Jan-2011  matt branches: 1.1.4;
Add long double functions for eq,ne,gt,le,ge,lt,neg ops.
 1.1.4.2 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.1.4.1 17-Jan-2011  matt file negtf2.c was added on branch matt-nb5-mips64 on 2011-04-29 07:48:36 +0000
 1.2 27-Sep-2004  he Only compile the floatx80-using functions if the arch in question
defines the FLOATX80 macro. Fixes build problem for arm ports.
 1.1 26-Sep-2004  jmmv Add support to build the mac68k port with soft-float enabled (i.e., setting
MKSOFTFLOAT=yes). The main purpose of this feature is to let NetBSD work
in machines with the 68040LC chip (those that have the FPU bug).

All the work has been done by Bruce O'Neel <edoneel AT sdf.lonestar.org>,
with some very minor changes by me; the patches were being posted to the
port-mac68k mailing list. It has been tested for a long time by several
users, including me.

I have just verified that regular releases, as well as soft-float ones,
continue to build.

There have been no objections to this patch since I asked for them in July
in the port-mac68k list.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file nesf2.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:02 +0000
 1.1 17-Jan-2011  matt branches: 1.1.4;
Add long double functions for eq,ne,gt,le,ge,lt,neg ops.
 1.1.4.2 29-Apr-2011  matt Pull in true (128-bit) long double support for MIPS from -current.
 1.1.4.1 17-Jan-2011  matt file netf2.c was added on branch matt-nb5-mips64 on 2011-04-29 07:48:36 +0000
 1.3 29-Sep-2025  nat Fix return values for softfloat functions to appease gcc.

Not sure if it is gcc and m68k only so it wrapped up in defines.
 1.2 27-Sep-2004  he Only compile the floatx80-using functions if the arch in question
defines the FLOATX80 macro. Fixes build problem for arm ports.
 1.1 26-Sep-2004  jmmv Add support to build the mac68k port with soft-float enabled (i.e., setting
MKSOFTFLOAT=yes). The main purpose of this feature is to let NetBSD work
in machines with the 68040LC chip (those that have the FPU bug).

All the work has been done by Bruce O'Neel <edoneel AT sdf.lonestar.org>,
with some very minor changes by me; the patches were being posted to the
port-mac68k mailing list. It has been tested for a long time by several
users, including me.

I have just verified that regular releases, as well as soft-float ones,
continue to build.

There have been no objections to this patch since I asked for them in July
in the port-mac68k list.
 1.12 01-Aug-2013  matt Only include <arm/aeabi.h> when __ARM_PCS_VFP is defined.
 1.11 01-Aug-2013  matt Make sure to <arm/aeabi.h> if we are doing using EABI.
 1.10 16-Apr-2013  matt ARM EABI needs different floating point comparision functions.
 1.9 05-Aug-2012  matt branches: 1.9.2;
ARM EABI (AAPCS) uses different names for the softfloat routines that
the normal GCC ones. So after we redefine softfloat's to be what (old) GCC
wants, we redefined the old GCC names to what ARM EABI want (but only if we
are using ARM EABI). We do this for routines not compiled by softfloat so
can just have these redefinitions in one place.
 1.8 14-Dec-2009  matt branches: 1.8.6;
Merge from matt-nb5-mips64.
 1.7 26-Sep-2004  jmmv branches: 1.7.40;
Add support to build the mac68k port with soft-float enabled (i.e., setting
MKSOFTFLOAT=yes). The main purpose of this feature is to let NetBSD work
in machines with the 68040LC chip (those that have the FPU bug).

All the work has been done by Bruce O'Neel <edoneel AT sdf.lonestar.org>,
with some very minor changes by me; the patches were being posted to the
port-mac68k mailing list. It has been tested for a long time by several
users, including me.

I have just verified that regular releases, as well as soft-float ones,
continue to build.

There have been no objections to this patch since I asked for them in July
in the port-mac68k list.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 12-May-2002  bjh21 Add SIGFPE support to SoftFloat, so fpsetmask/fpgetmask now work. A new
variable, float_exception_mask (#defined to _softfloat_float_exception_mask)
contains the current exception mask.
Also make the argument to float_raise into an fp_except.
Also synchronise file header comments between files.
 1.4 08-Mar-2001  bjh21 Re-instate __fixunssfsi() and __fixunsdfsi(), but only for arm32 with a.out
binaries, because libc's provided them there forever.
 1.3 15-Jul-2000  bjh21 branches: 1.3.2;
Revert previous change -- turned out I'd got my build environment in a twist.
 1.2 15-Jul-2000  bjh21 Add fixunssfsi and fixunsdfsi. These are provided by libgcc2.c in GCC 2.95,
but not in EGCS.

This version of fixunssfsi is almost exactly the arm32 version. fixunsdfsi is
mostly based on fixdfsi, but with simplifications for 64-bit integers.

Only minimal testing has been applied so far.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file softfloat-for-gcc.h was added on branch minoura-xpg4dl on 2000-06-23 16:18:02 +0000
 1.3.2.2 21-Jun-2002  nathanw Catch up to -current.
 1.3.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.7.40.1 03-Sep-2009  uebayasi Add missing function aliases that could be generated by GCC for 64-bit
softfloat binaries.

Reviewed By: matt
 1.8.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.8.6.1 30-Oct-2012  yamt sync with head
 1.9.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.2.1 23-Jun-2013  tls resync from head
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file softfloat-history.txt was added on branch minoura-xpg4dl on 2000-06-23 16:18:03 +0000
 1.5 21-May-2002  bjh21 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.4 05-May-2002  thorpej Rename a local variable to avoid a shadow decl warning.
 1.3 10-Mar-2002  bjh21 Only include roundAndPackInt32(), roundAndPackInt64() and estimateSqrt32()
if we actually need them for 80/128-bit support.

I'm not sure this is Right, but I suspect the #ifdefs around here need
revising to handle sparc64 nicely anyway. Still, it compiles on ARM again
now.
 1.2 04-Mar-2002  jmc Unblock a few routines that are needed if 128bit support is being pulled in.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4; 1.1.6;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.6.4 21-Jun-2002  nathanw Catch up to -current.
 1.1.6.3 03-Apr-2002  petrov Merge lossage corrected.
 1.1.6.2 22-Mar-2002  nathanw Catch up to -current.
 1.1.6.1 08-Mar-2002  nathanw Catch up to -current.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file softfloat-macros was added on branch minoura-xpg4dl on 2000-06-23 16:18:03 +0000
 1.2 24-Nov-2006  christos fix spelling of accommodate; from Zapher.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file softfloat-source.txt was added on branch minoura-xpg4dl on 2000-06-23 16:18:03 +0000
 1.14 17-Sep-2025  nat Fix logic pertaining to NaN for floatx80.

The previous was wrong in that low and high were mixed up.

The only exisiting consumer on floatx80 types and softfloat is m68k.
 1.13 17-Sep-2025  nat Shift the high word of floatx80 accordingly on m68k.

This is because gcc will store floatx80 as signbit(1)exponent(15) padding(32)
as opposed to sign and exponent in a short(16 bit) word.
 1.12 10-Sep-2025  nat Switch over m68k soffloat build to libc/softfloat.

m68k would previously use softfloat functions contained in libgcc_s.

This change aligns m68k with other platforms built with softfloat.

It is still possible to build the gcc_s softfloat impementation by setting
MKSOFFTFLOAT=yes MKLIBCSOFTFLOAT=no

Addresses PR/59393.
 1.11 06-May-2025  riastradh libc: Sprinkle #ifdef _REENTRANT around thr_sigsetmask.

Workaround -- temporary, I hope -- for:

PR lib/59401: libc: thr_sigsetmask definition is incoherent
 1.10 27-Apr-2025  riastradh libc softfloat: Make SIGFPE for trapped fp exceptions non-ignorable.

In hardfloat, when the kernel delivers SIGFPE for a floating-point
exception trap, if SIGFPE is masked or ignored, it is handled _as if_
SIGFPE were unmasked and had the default signal disposition:

964 /*
965 * If the signal is masked or ignored, then unmask it and
966 * reset it to the default action so that the process or
967 * its tracer will be notified.
968 */
969 const bool ignored = action == SIG_IGN;
970 if (masked || ignored) {
971 mutex_enter(&ps->sa_mutex);
972 sigdelset(mask, signo);
973 sigdelset(&p->p_sigctx.ps_sigcatch, signo);
974 sigdelset(&p->p_sigctx.ps_sigignore, signo);
975 sigdelset(&SIGACTION_PS(ps, signo).sa_mask, signo);
976 SIGACTION_PS(ps, signo).sa_handler = SIG_DFL;
977 mutex_exit(&ps->sa_mutex);
978 }

https://nxr.netbsd.org/xref/src/sys/kern/kern_sig.c?r=1.410#964

In other words, if you have asked for floating-point exception traps
via fpsetmask(3) or feeenableexcept(3), then you can't simply defer
or ignore them at the signal level any more than you can defer or
ignore SIGBUS or SIGSEGV. And if the signal handler returns, it will
restart the instruction and -- if nothing has changed in the set of
trapped floating-point exceptions -- trap again, delivering the same
signal again.

Since we can't lock access to signal dispositions, I don't think we
can guarantee the same effect from userland atomically, but we can
get a close approximation (should be good enough for single-threaded
programs, at least) by mimicking this logic and calling sigqueueinfo
in a loop.

PR misc/56820: Many FPE related tests fail on softfloat machines
 1.9 10-Aug-2014  matt branches: 1.9.36;
Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.
 1.8 10-Jan-2013  matt Add hooks to softfloat to support per-lwp exception state.
 1.7 21-Mar-2012  christos branches: 1.7.2;
cast to appropriate types.
 1.6 06-Mar-2011  martin branches: 1.6.4;
Apply local namespace protection equivalent to the weak alias done
in softfloat-for-gcc.h, which we can't include here, to move
"float_exception_mask" into implementation namespace.
 1.5 04-Mar-2011  martin Use sigqueueinfo() instead of raise() to generate exceptions. Provide
minimalistic siginfo data.
 1.4 26-Sep-2004  jmmv branches: 1.4.46;
Add support to build the mac68k port with soft-float enabled (i.e., setting
MKSOFTFLOAT=yes). The main purpose of this feature is to let NetBSD work
in machines with the 68040LC chip (those that have the FPU bug).

All the work has been done by Bruce O'Neel <edoneel AT sdf.lonestar.org>,
with some very minor changes by me; the patches were being posted to the
port-mac68k mailing list. It has been tested for a long time by several
users, including me.

I have just verified that regular releases, as well as soft-float ones,
continue to build.

There have been no objections to this patch since I asked for them in July
in the port-mac68k list.
 1.3 12-May-2002  bjh21 Add SIGFPE support to SoftFloat, so fpsetmask/fpgetmask now work. A new
variable, float_exception_mask (#defined to _softfloat_float_exception_mask)
contains the current exception mask.
Also make the argument to float_raise into an fp_except.
Also synchronise file header comments between files.
 1.2 23-Apr-2002  agc branches: 1.2.2;
After the grand unification of softfloat-specialize, let sparc64 builds
work properly again.
 1.1 21-Apr-2002  bjh21 All the versions of softfloat-specialize were practically identical, so replace
them with a single one.
 1.2.2.3 21-Jun-2002  nathanw Catch up to -current.
 1.2.2.2 25-Apr-2002  nathanw Catch up to -current.
 1.2.2.1 23-Apr-2002  nathanw file softfloat-specialize was added on branch nathanw_sa on 2002-04-25 04:01:45 +0000
 1.4.46.1 05-Mar-2011  bouyer Sync with HEAD
 1.6.4.2 23-Jan-2013  yamt sync with head
 1.6.4.1 17-Apr-2012  yamt sync with head
 1.7.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.2.1 25-Feb-2013  tls resync with head
 1.9.36.1 02-Aug-2025  perseant Sync with HEAD
 1.10 21-May-2002  bjh21 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.9 07-May-2002  bjh21 In float*_round_to_int(), where we have switches over rounding modes, make
sure that all the modes are mentioned, if only with a "break;". This
ensures GCC doesn't whinge at us on ports which use an enum for fp_rnd.
 1.8 06-May-2002  bjh21 Consistently declare the types of float_rounding_mode and float_exception_flags
as fp_rnd and fp_except respectively.
 1.7 10-Mar-2002  bjh21 Only include roundAndPackInt32(), roundAndPackInt64() and estimateSqrt32()
if we actually need them for 80/128-bit support.

I'm not sure this is Right, but I suspect the #ifdefs around here need
revising to handle sparc64 nicely anyway. Still, it compiles on ARM again
now.
 1.6 04-Mar-2002  jmc Unblock a few routines that are needed if 128bit support is being pulled in.
 1.5 13-Mar-2001  ross fix WARNS triggered by reachover makefile under regress
 1.4 08-Mar-2001  bjh21 Re-instate __fixunssfsi() and __fixunsdfsi(), but only for arm32 with a.out
binaries, because libc's provided them there forever.
 1.3 15-Jul-2000  bjh21 branches: 1.3.2;
Revert previous change -- turned out I'd got my build environment in a twist.
 1.2 15-Jul-2000  bjh21 Add fixunssfsi and fixunsdfsi. These are provided by libgcc2.c in GCC 2.95,
but not in EGCS.

This version of fixunssfsi is almost exactly the arm32 version. fixunsdfsi is
mostly based on fixdfsi, but with simplifications for 64-bit integers.

Only minimal testing has been applied so far.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file softfloat.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:04 +0000
 1.3.2.5 21-Jun-2002  nathanw Catch up to -current.
 1.3.2.4 03-Apr-2002  petrov Merge lossage corrected.
 1.3.2.3 22-Mar-2002  nathanw Catch up to -current.
 1.3.2.2 08-Mar-2002  nathanw Catch up to -current.
 1.3.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.2 24-Nov-2006  christos fix spelling of accommodate; from Zapher.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file softfloat.txt was added on branch minoura-xpg4dl on 2000-06-23 16:18:04 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file timesoftfloat.c was added on branch minoura-xpg4dl on 2000-06-23 16:18:05 +0000
 1.2 19-Jun-2023  msaitoh Fix typo in the document. From FreeBSD.
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file timesoftfloat.txt was added on branch minoura-xpg4dl on 2000-06-23 16:18:05 +0000
 1.1 06-May-2003  rearnsha GCC-3 requires a libcall to support testing for unordered.
 1.1 06-May-2003  rearnsha GCC-3 requires a libcall to support testing for unordered.
 1.2 30-Jan-2014  matt branches: 1.2.4; 1.2.8;
Make confiditon on FLOAT128
 1.1 30-Jan-2014  matt unord for float128 long double
 1.2.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.1 30-Jan-2014  tls file unordtf2.c was added on branch tls-maxphys on 2014-08-20 00:02:15 +0000
 1.2.4.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.2.4.1 30-Jan-2014  yamt file unordtf2.c was added on branch yamt-pagecache on 2014-05-22 11:36:53 +0000
 1.2 17-Feb-2009  lukem fix -Wsign-compare issue (seen on arm), using similar technique
to ../bits64/softfloat-macros
 1.1 21-May-2002  bjh21 branches: 1.1.4; 1.1.46; 1.1.50;
Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1.50.1 28-May-2011  matt Sync to -HEAD.
 1.1.46.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.1.4.2 21-May-2002  bjh21 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1.4.1 21-May-2002  bjh21 file softfloat-macros was added on branch nathanw_sa on 2002-05-21 23:51:08 +0000
 1.3 10-Jan-2013  matt Add hooks to softfloat to support per-lwp exception state.
 1.2 21-Mar-2012  christos branches: 1.2.2;
add casts
 1.1 21-May-2002  bjh21 branches: 1.1.4; 1.1.60;
Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1.60.2 23-Jan-2013  yamt sync with head
 1.1.60.1 17-Apr-2012  yamt sync with head
 1.1.4.2 21-May-2002  bjh21 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1.4.1 21-May-2002  bjh21 file softfloat.c was added on branch nathanw_sa on 2002-05-21 23:51:08 +0000
 1.2.2.1 25-Feb-2013  tls resync with head
 1.3 21-Mar-2012  christos cast to appropriate types.
 1.2 16-Feb-2009  tron branches: 1.2.6;
fix -Wsign-compare issue (on sparc64)
 1.1 21-May-2002  bjh21 branches: 1.1.4; 1.1.46; 1.1.50;
Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1.50.1 28-May-2011  matt Sync to -HEAD.
 1.1.46.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.1.4.2 21-May-2002  bjh21 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1.4.1 21-May-2002  bjh21 file softfloat-macros was added on branch nathanw_sa on 2002-05-21 23:51:09 +0000
 1.2.6.1 17-Apr-2012  yamt sync with head
 1.19 02-Oct-2025  nat Change the remainder of missed INFs for floatx80.
 1.18 29-Sep-2025  nat Return the right value for infinity for floatx80.

There are only 5 failures and 1 expected failure left.
 1.17 29-Sep-2025  nat Fix return values for softfloat functions to appease gcc.

Not sure if it is gcc and m68k only so it wrapped up in defines.
 1.16 17-Sep-2025  nat Shift the high word of floatx80 accordingly on m68k.

This is because gcc will store floatx80 as signbit(1)exponent(15) padding(32)
as opposed to sign and exponent in a short(16 bit) word.
 1.15 27-Feb-2024  christos appease lint
 1.14 29-Mar-2016  martin Avoid warnings (signed/unsigned comparision and unused variable)
 1.13 22-Nov-2013  martin Fix a cast from the lint cleanup that made small exponents (i.e. values < 1)
sign extend wrong and overflow, causing an underflow in all 128 bit sqrt
calculations.
 1.12 10-Jan-2013  matt Add hooks to softfloat to support per-lwp exception state.
 1.11 24-Mar-2012  matt branches: 1.11.2;
Fix a bug introduced by lint cleanup.
 1.10 21-Mar-2012  christos cast to appropriate types.
 1.9 20-Mar-2012  martin Remove initialized but unused variable
 1.8 10-Jul-2011  matt branches: 1.8.2;
Fix so that float128_to_uint64_round_to_zero is defined for sparc64.
(isn't tha a namespace violation?)
 1.7 09-Jul-2011  matt Add SOFTFLOAT_NEED_FIXUNS condition around the float128 fixuns
 1.6 04-Jul-2011  matt Add __floatunsidf __floatunsisf __floatunsitf routines.
XXX i think they are correct but not sure.
 1.5 08-Nov-2007  martin branches: 1.5.20;
When creating unsigned int results, do not distinguish positive versus
negative overflow.
 1.4 08-Nov-2007  martin When converting long double values to integer types, explicitly use the
"round to zero" variants of the softfloat conversion functions.
Add a variant to convert long double to unsigned long - the "to long"
variant checked for overflows that do not apply to unsigned results.
This fixes the regress/lib/libc/convfp tests for sparc64.
 1.3 11-May-2006  mrg branches: 1.3.10;
add128() wants bits64 * as it's 5th argument.
 1.2 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.1 21-May-2002  bjh21 branches: 1.1.4;
Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1.4.2 21-May-2002  bjh21 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories. Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable. This is set to 64 (which
uses the same code we had before) by default. 32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version. This should get the
floating-point performance back to what it was in 1.5.
 1.1.4.1 21-May-2002  bjh21 file softfloat.c was added on branch nathanw_sa on 2002-05-21 23:51:09 +0000
 1.3.10.1 09-Jan-2008  matt sync with HEAD
 1.5.20.1 20-May-2011  matt Add float128_to_uint32_round_to_zero
 1.8.2.3 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.8.2.2 23-Jan-2013  yamt sync with head
 1.8.2.1 17-Apr-2012  yamt sync with head
 1.11.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11.2.1 25-Feb-2013  tls resync with head
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file milieu.h was added on branch minoura-xpg4dl on 2000-06-23 16:18:06 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file softfloat-specialize was added on branch minoura-xpg4dl on 2000-06-23 16:18:06 +0000
 1.1 06-Jun-2000  bjh21 branches: 1.1.4;
Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
 1.1.4.2 23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.1.4.1 06-Jun-2000  minoura file softfloat.h was added on branch minoura-xpg4dl on 2000-06-23 16:18:06 +0000

RSS XML Feed