Home | History | Annotate | only in /src/lib/libm/arch/i387
History log of /src/lib/libm/arch/i387
RevisionDateAuthorComments
 1.11 06-Jun-2008  ad Use a dummy assembly file so we won't try produce lint stuff.
 1.10 03-Jun-2008  ad - Fold libm387 into libm.
- Leave libm387 as an empty shell.
 1.9 25-Apr-2008  christos branches: 1.9.2;
avoid shadow variables, and enable lint.
 1.8 22-Mar-2006  drochner branches: 1.8.18;
merge libc/arch/{i386,x86_64}/gen/modf.S into one
(not quite a merge actually, just an #ifdef for now)
and build it in the i386 case (amd64 should work, just needs to be tested)
That way, a program linking against libm should get the optimized
version as expected.
 1.7 28-Jul-2005  drochner activate e_atan2f.S which was there forever but not built, noticed
by Joerg Sonnenberger
 1.6 21-Jul-2005  rpaulo Add i387 FPU routines for log2(3) and log2f(3).

ok christos@
 1.5 01-Jul-2004  drochner branches: 1.5.2;
provide an assembler implementation of lrint() for i386 and amd64
 1.4 19-Aug-2002  lukem Explicitly move setting of NOxxx and USE_SHLIBDIR to the top of the
Makefile (before including <bsd.own.mk>)
 1.3 28-Dec-2001  lukem * Add user-controlled mk.conf variables
- SHLIBDIR Location to install shared libraries if ${USE_SHLIBDIR}
is "yes". Defaults to "/usr/lib".

- USE_SHLIBDIR If "yes", install shared libraries in ${SHLIBDIR}
instead of ${LIBDIR}. Defaults to "no".
Sets ${_LIBSODIR} to the appropriate value.
This may be set by individual Makefiles as well.

- SHLINKDIR Location of shared linker. Defaults to "/usr/libexec".
If != "/usr/libexec", change the dynamic-linker
encoded in shared programs

* Set USE_SHLIBDIR for libraries used by /bin and /sbin:
libc libcrypt libcrypto libedit libipsec libkvm libm libmi387
libtermcap libutil libz

* If ${_LIBSODIR} != ${LIBDIR}, add symlinks from ${LIBDIR}/${LIB}.so*
to ${_LIBSODIR}/${LIB}.so* for compatibility.

* Always install /sbin/init statically (for now)


The net effect of these changes depends on how the variables are set:

1.) If nothing is set or changed, there is no change from the
current behaviour:
- Static /bin, /sbin, and bits of /usr/*
- Dynamic rest
- Shared linker is /usr/libexec/ld*so

2.) If the following make variables are set:
LDSTATIC=
SHLINKDIR=/lib
SHLIBDIR=/lib
Then the behaviour becomes:
- Dynamic tools
- .so libraries used by /bin and /sbin are installed to /lib,
with symlinks from /usr/lib/lib*so to -> /lib/lib*so
where appropriate
- Shared linker is /lib/ld*so

3.) As per 2.), but add the following variable:
USE_SHLIBDIR=yes
This forces all .so's to be instaleld in /lib (with compat
symlinks), not just those tagged by their Makefiles to be.
Again, compat symlinks are installed
 1.2 12-Dec-2001  tv Readability cleanups; MKfoo=no -> NOfoo.
 1.1 13-Dec-1999  christos branches: 1.1.2;
Makefile and shared library for libm387.
 1.1.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.5.2.1 14-Aug-2005  riz Pull up revision 1.7 via patch (requested by drochner in ticket #643):
activate e_atan2f.S which was there forever but not built, noticed
by Joerg Sonnenberger
 1.8.18.2 17-Jun-2008  yamt sync with head.
 1.8.18.1 18-May-2008  yamt sync with head.
 1.9.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.8 12-Sep-2013  joerg 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.7 18-Jun-2011  joerg branches: 1.7.2; 1.7.8;
Use correct stack register as noticed by christos
 1.6 18-Jun-2011  joerg SSE2 registers are only used for float and double arguments, so update
comment to reflect reality. Add some accessor macros for long double
arguments for i386 and x86_64.
 1.5 23-Jun-2008  drochner branches: 1.5.18;
-fix an obvious mistake in fpcw check
-replace ARG_DOUBLE_ONE_HALF by _MSW/_LSW because this reflects the
intention and also matches the terms used in C code,
also make the code where the fpcw overwrites the argument a bit
self-documenting
(this abstraction sucks because it forces to write inefficient code)
 1.4 23-Jun-2008  christos add macros for the upper half of the double arguments.
 1.3 22-Mar-2004  wiz branches: 1.3.32;
Typo fix, from skrueger at europe com.
 1.2 14-Sep-2003  fvdl Make log1p and log1pf work in shared libraries again.
 1.1 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3.32.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.5.18.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.7.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.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.9 03-Mar-2014  dsl Drop in a fabs() after the fsqrt().
While it may seem pointless, it the rouding mode is set to round towards
minus infinity then acos(-1) calculates atan2(sqrt(1.0 - 1.0), -1) the subtract
generates -0.0 which sqrt() preserves.
atan2(-0, -1) is -pi, but acos(-1) is expected to be +pi.
This might 'fix' the test failures seen in some environments, but they
are not failing due to an obvously incorrent x87 rounding mode.
 1.8 26-Jul-2003  salo branches: 1.8.54; 1.8.60;
netbsd.org->NetBSD.org
 1.7 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.6 26-Sep-2000  kleink Make these idempotent as far as the FPU register stack is concerned.
 1.5 02-Jul-1999  simonb branches: 1.5.8;
More trailing white space.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.5.8.1 26-Sep-2000  kleink Pull up rev. 1.6 (approved by thorpej):
Make these idempotent as far as the FPU register stack is concerned.
 1.8.60.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.54.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-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 26-Sep-2000  kleink Make these idempotent as far as the FPU register stack is concerned.
 1.4 08-May-1995  jtc branches: 1.4.16;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.16.1 26-Sep-2000  kleink Pull up rev. 1.5 (approved by thorpej):
Make these idempotent as far as the FPU register stack is concerned.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 16-Feb-1994  jtc i387-specific math functions.
 1.3 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.2 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.1 08-May-1995  jtc i387 float version of atan2()
 1.14 23-Jun-2008  drochner -fix an obvious mistake in fpcw check
-replace ARG_DOUBLE_ONE_HALF by _MSW/_LSW because this reflects the
intention and also matches the terms used in C code,
also make the code where the fpcw overwrites the argument a bit
self-documenting
(this abstraction sucks because it forces to write inefficient code)
 1.13 23-Jun-2008  christos Share the amd64 and i386 exp versions. Fixes a problem with exp(-Inf) != 0.
 1.12 27-Feb-2002  christos branches: 1.12.34;
PR/15748: Ray Brownrigg: exp(log(0)) is broken.
Use FreeBSD's version. Handles inf/nan and rounding modes.
 1.11 19-Jun-2001  fvdl %rbp -> %rsp in 2 cases.
 1.10 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.9 26-Sep-2000  kleink Make these idempotent as far as the FPU register stack is concerned.
 1.8 02-Jul-1999  simonb branches: 1.8.8;
More trailing white space.
 1.7 03-Jul-1996  jtc use one less fp stack slot
 1.6 03-Jul-1996  jtc It's necessary to use 64 bit precision to avoid errors in the least
significant bit(s) (for some operands).
 1.5 25-Jun-1996  jtc Fix from Bruce Evans. Commited to FreeBSD earlier this month, but was
never forwarded to me :-(.

> Clean up the FP stack before returning. The i387 exp() leaked an FP
> register on its first call. Subsequent calls reused the register so
> the leak didn't accumulate.
 1.4 08-May-1995  jtc branches: 1.4.6;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.6.1 03-Jul-1996  jtc Pulled up from rev 1.7
 1.8.8.1 26-Sep-2000  kleink Pull up rev. 1.9 (approved by thorpej):
Make these idempotent as far as the FPU register stack is concerned.
 1.12.34.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.6 24-Jun-2008  drochner as in exp(), treat +/-Inf and NaN arguments specially, should fix
eg expf(-Inf) which was Nan previously
(We could avoid touching the i387 on amd64 in these cases, but we'd
need to bypass the ABI abstraction macros, so leave it the old way
for now.)
 1.5 26-Jul-2003  salo branches: 1.5.32;
netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 26-Sep-2000  kleink Make these idempotent as far as the FPU register stack is concerned.
 1.2 02-Jul-1999  simonb branches: 1.2.8;
More trailing white space.
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.2.8.1 26-Sep-2000  kleink Pull up rev. 1.3 (approved by thorpej):
Make these idempotent as far as the FPU register stack is concerned.
 1.5.32.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 25-Jun-2001  fvdl Oops, when I replaced sahf with a btw, I made it test the wrong bit
(2 vs. 10).
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 04-Mar-1994  jtc More i387 libm support.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.3 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.2 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.1 21-Jul-2005  rpaulo Add i387 FPU routines for log2(3) and log2f(3).

ok christos@
 1.1 21-Jul-2005  rpaulo Add i387 FPU routines for log2(3) and log2f(3).

ok christos@
 1.4 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.3 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.2 06-Jul-1996  jtc Fix typo
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 25-Jun-2001  fvdl 2 more bitnumber mistakes fixed while removing sahf.
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 04-Mar-1994  jtc More i387 libm support.
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 25-Jun-2001  fvdl 2 more bitnumber mistakes fixed while removing sahf.
 1.3 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.2 08-May-1995  jtc Id -> NetBSD
 1.1 03-May-1995  jtc Added i387 remainderf and sqrtf
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 02-Jan-1999  kristerw The scalb* functions left data on the floting point register stack.
Remove it before leaving the function.

The solution is taken from OpenBSD.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.3 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.2 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.3 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.2 08-May-1995  jtc Id -> NetBSD
 1.1 03-May-1995  jtc Added i387 remainderf and sqrtf
 1.1 06-Jun-2008  ad branches: 1.1.2; 1.1.4;
Use a dummy assembly file so we won't try produce lint stuff.
 1.1.4.2 23-Jun-2008  wrstuden Add files to branch that were added on -current.

After this, all that's left of update is to merge some changes
that had conflicts.
 1.1.4.1 06-Jun-2008  wrstuden file empty.S was added on branch wrstuden-revivesa on 2008-06-23 05:02:11 +0000
 1.1.2.2 17-Jun-2008  yamt sync with head.
 1.1.2.1 06-Jun-2008  yamt file empty.S was added on branch yamt-pf42 on 2008-06-17 09:13:39 +0000
 1.2 06-Jun-2008  ad Use a dummy assembly file so we won't try produce lint stuff.
 1.1 04-Jun-2008  ad Forgot to add this yesterday.
 1.10 03-Sep-2021  andvar fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/
 1.9 25-Jan-2018  christos use named initializers
 1.8 22-Mar-2017  chs provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
 1.7 17-Feb-2016  christos branches: 1.7.2; 1.7.4;
PR/50822: David Binderman: Fix copy length.
 1.6 11-Nov-2013  joerg Preserve the initial x87 control word in the global FP environment
in preparation for adjusting the default based on the main binary
version.
 1.5 29-May-2013  riastradh Fix sense of fegetexcept on x86.

Somehow I overlooked this when I fixed feenableexcept and
fedisableexcept last summer.

XXX pullup to 6
 1.4 04-Aug-2012  riastradh branches: 1.4.2;
Mask off the result of feenableexcept and fedisableexcept on x86.

These shouldn't return bits outside FE_ALL_EXCEPT.
 1.3 01-Aug-2010  taca branches: 1.3.6; 1.3.8;
Fix compile error.
 1.2 31-Jul-2010  joerg Fix merge error: drop machine from an older workaround for machine.sse
under compat32, drop the assertion, initialize oldlen.
 1.1 31-Jul-2010  joerg Add support for fenv.h interface for i386 and amd64.

Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
 1.3.8.2 13-Jun-2013  msaitoh Pull up following revision(s) (requested by riastradh in ticket #899):
lib/libm/arch/i387/fenv.c: revision 1.5
lib/libm/arch/x86_64/fenv.c: revision 1.3-1.4
Fix amd64 feraiseexcept so that it actually traps.
The call to fwait got lost somewhere along the line; the i387 code has it.
Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and fedisableexcept
last summer.
 1.3.8.1 12-Aug-2012  martin branches: 1.3.8.1.4; 1.3.8.1.6;
Pull up following revision(s) (requested by riastradh in ticket #477):
lib/libm/arch/i387/fenv.c: revision 1.4
lib/libm/arch/x86_64/fenv.c: revision 1.2
Mask off the result of feenableexcept and fedisableexcept on x86.
These shouldn't return bits outside FE_ALL_EXCEPT.
 1.3.8.1.6.1 14-Jun-2013  msaitoh Pull up following revision(s) (requested by riastradh in ticket #899):
lib/libm/arch/i387/fenv.c: revision 1.5
lib/libm/arch/x86_64/fenv.c: revision 1.3-1.4
Fix amd64 feraiseexcept so that it actually traps.
The call to fwait got lost somewhere along the line; the i387 code has it.
Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and fedisableexcept
last summer.
 1.3.8.1.4.1 14-Jun-2013  msaitoh Pull up following revision(s) (requested by riastradh in ticket #899):
lib/libm/arch/i387/fenv.c: revision 1.5
lib/libm/arch/x86_64/fenv.c: revision 1.3-1.4
Fix amd64 feraiseexcept so that it actually traps.
The call to fwait got lost somewhere along the line; the i387 code has it.
Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and fedisableexcept
last summer.
 1.3.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.3.6.1 30-Oct-2012  yamt sync with head
 1.4.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.2.1 23-Jun-2013  tls resync from head
 1.7.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.7.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.2 13-Oct-2004  drochner add licenses
 1.1 01-Jul-2004  drochner provide an assembler implementation of lrint() for i386 and amd64
 1.1 24-Nov-2024  riastradh branches: 1.1.4;
libm387: Add (intentionally empty!) exported symbol list.

This library has been an empty stub since 2008, probably won't serve
any useful purpose in the future, but let's make sure it doesn't
accidentally sprout anything.

PR lib/58838: shared libraries in base should all have expsym lists
 1.1.4.2 02-Aug-2025  perseant Sync with HEAD
 1.1.4.1 24-Nov-2024  perseant file m387.expsym was added on branch perseant-exfatfs on 2025-08-02 05:54:50 +0000
 1.8 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.7 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.7 09-Jun-2024  riastradh libm: Sprinkle whitespace fixes and rcsids on inverse trig functions.

No functional change intended.
 1.6 09-Jun-2024  riastradh libm: Do the weak alias dance for asin, acos, atan.

These are used internally by the complex trig functions, so they need
weak aliases.
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 08-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.9 04-Apr-2022  andvar fix various typos, mainly in comments.
 1.8 18-Jun-2011  joerg Kill redundant ;
 1.7 26-Jul-2003  salo branches: 1.7.52;
netbsd.org->NetBSD.org
 1.6 26-Mar-2002  fvdl Fix stack usage for temporary storage. From Stephen Ma in PR xsrc/15404.
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc branches: 1.4.16;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.16.1 28-Mar-2002  he Pull up revision 1.6 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
 1.7.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.10 04-Apr-2022  andvar fix various typos, mainly in comments.
 1.9 18-Jun-2011  joerg Kill redundant ;
 1.8 16-Jul-2004  drochner branches: 1.8.46;
amd64: stack sanity, leave the return PC alone
 1.7 26-Jul-2003  salo branches: 1.7.2;
netbsd.org->NetBSD.org
 1.6 30-Mar-2002  fvdl Fix mistake in previous.
 1.5 26-Mar-2002  fvdl Fix stack usage for temporary storage. From Stephen Ma in PR xsrc/15404.
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 08-May-1995  jtc branches: 1.3.16;
Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.3.16.2 30-Mar-2002  he Pull up revision 1.6 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
(This corrects an error in the earlier pull-up.)
 1.3.16.1 28-Mar-2002  he Pull up revision 1.5 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
 1.7.2.1 19-Jul-2004  tron Pull up revision 1.8 (requested by drochner in ticket #679):
amd64: stack sanity, leave the return PC alone
 1.8.46.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.7 18-Jun-2011  joerg Switch to SSE code, since our gas supports it now.
 1.6 26-Jul-2003  salo branches: 1.6.52;
netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 08-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.6.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.7 21-Jun-2011  joerg Actually used SSE branch. Noticed by enami@
 1.6 18-Jun-2011  joerg Switch to SSE code, since our gas supports it now.
 1.5 26-Jul-2003  salo branches: 1.5.52;
netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 08-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.5.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.9 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.8 26-Jul-2003  salo branches: 1.8.96;
netbsd.org->NetBSD.org
 1.7 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.6 02-Jul-1999  simonb More trailing white space.
 1.5 08-May-1995  jtc Id -> NetBSD
 1.4 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.3 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.2 18-Feb-1994  jtc Optimize the common case (theta < 2^63).
 1.1 16-Feb-1994  jtc i387-specific math functions.
 1.8.96.1 10-Jun-2019  christos Sync with HEAD
 1.7 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.6 26-Jul-2003  salo branches: 1.6.96;
netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 02-Jul-1999  simonb More trailing white space.
 1.3 08-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.6.96.1 10-Jun-2019  christos Sync with HEAD
 1.2 03-Jul-1996  jtc this simple adaptation exp() does not work
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.2 03-Jul-1996  jtc this simple adaptation exp() does not work
 1.1 03-Jul-1996  jtc Assembly versions of expf(), logf(),log10f(), scalbf(), expm1() and expm1f().
 1.8 08-May-2024  riastradh libm/arch/i387: Do the weak alias dance for finite and finitef.

These are used internally by some things.
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 04-Jun-1996  jtc Use setne instead of setnel, new versions of gas balk at the bad mnemonic.
Wrong mask was used in s_finitef.S.
 1.4 08-May-1995  jtc branches: 1.4.6;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.4.6.1 04-Jun-1996  jtc Pull up changes from vers 1.5
 1.7 08-May-2024  riastradh libm/arch/i387: Do the weak alias dance for finite and finitef.

These are used internally by some things.
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 04-Jun-1996  jtc Use setne instead of setnel, new versions of gas balk at the bad mnemonic.
Wrong mask was used in s_finitef.S.
 1.3 09-May-1995  jtc branches: 1.3.6;
Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.3.6.1 04-Jun-1996  jtc Pull up changes from vers 1.4
 1.10 04-Apr-2022  andvar fix various typos, mainly in comments.
 1.9 18-Jun-2011  joerg Kill redundant ;
 1.8 26-Jul-2003  salo branches: 1.8.52;
netbsd.org->NetBSD.org
 1.7 26-Mar-2002  fvdl Fix stack usage for temporary storage. From Stephen Ma in PR xsrc/15404.
 1.6 19-Jun-2001  fvdl %rbp -> %rsp in 2 cases.
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 09-May-1995  jtc branches: 1.4.16;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.4.16.1 28-Mar-2002  he Pull up revision 1.7 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
 1.8.52.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.9 04-Apr-2022  andvar fix various typos, mainly in comments.
 1.8 18-Jun-2011  joerg Kill redundant ;
 1.7 16-Jul-2004  drochner branches: 1.7.46;
amd64: stack sanity, leave the return PC alone
 1.6 26-Jul-2003  salo branches: 1.6.2;
netbsd.org->NetBSD.org
 1.5 26-Mar-2002  fvdl Fix stack usage for temporary storage. From Stephen Ma in PR xsrc/15404.
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc branches: 1.3.16;
Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.3.16.1 28-Mar-2002  he Pull up revision 1.5 (requested by fvdl):
Fix stack usage so that a signal delivered in ceil() or floor()
no longer corrupts the stack.
 1.6.2.1 19-Jul-2004  tron Pull up revision 1.7 (requested by drochner in ticket #679):
amd64: stack sanity, leave the return PC alone
 1.7.46.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.8 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.7 26-Jul-2003  salo branches: 1.7.96;
netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 12-Oct-1995  jtc Fix from Jochen Pohl, i387 version of ilogb didn't set up the stack
frame correctly (PR #1590).
 1.4 09-May-1995  jtc branches: 1.4.2;
Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 18-Feb-1994  jtc i387 specific ilogb()
 1.4.2.1 22-Oct-1995  pk Update from trunk
 1.7.96.1 10-Jun-2019  christos Sync with HEAD
 1.7 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.6 26-Jul-2003  salo branches: 1.6.96;
netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 22-Oct-1995  pk Setup stack-frame correctly (same as s_ilogb.S).
 1.3 09-May-1995  jtc branches: 1.3.2;
Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.3.2.1 22-Oct-1995  pk Update from trunk
 1.6.96.1 10-Jun-2019  christos Sync with HEAD
 1.1 28-Jul-2011  joerg Add ilogbl(3).
 1.14 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.13 16-Sep-2003  wennmach branches: 1.13.108;
Avoid the PIC dance.
 1.12 14-Sep-2003  fvdl Make log1p and log1pf work in shared libraries again.
 1.11 10-Sep-2003  wennmach Reimplement s_log1p.S and s_log1pf.S to use the fyl2xp1 instruction
where necessary.

The log1p() function is provided to compute an accurate value of
log(1 + x), even for tiny values of x. The i387 FPU provides the
fyl2xp1 instruction for this purpose.

However, since the range of the fyl2xp1 function is limited to
-(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
(-0.292893 <= x <= 0.414214)
we need to check if the argument is in the valid range.

In order to reduce the cost for testing the range, we only use
fyl2xp1 if the argument is in the range
-0.25 <= x <= 0.25
which can be checked with just one conditional branch.

Fixes PR lib/22599 by Ray Brownrigg.
 1.10 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.9 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.8 02-Jul-1999  simonb More trailing white space.
 1.7 09-May-1995  jtc Id -> NetBSD
 1.6 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.5 26-Aug-1994  jtc Remove lie (in a comment) about conversion between 80 bit ot 64 bit reals,
since we set up the fpu to do all calculations in 64 bit mode at this time.
 1.4 19-Aug-1994  jtc The fyl2xp1 instruction has a limited range:
-(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
so we can't use it.

Also, I'm not sure fyl2xp1's extra precision will
matter once the result is converted from extended
real (80 bits) back to double real (64 bits).
 1.3 18-Aug-1994  jtc Major Bogon: change %ebp to %esp, as I don't set up a stack frame.
 1.2 12-Mar-1994  jtc branches: 1.2.2;
Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.2.2.2 26-Aug-1994  mycroft update from trunk
 1.2.2.1 18-Aug-1994  mycroft update from trunk
 1.13.108.1 02-Aug-2025  perseant Sync with HEAD
 1.11 16-Jul-2024  riastradh libm: Fix log-related symbol aliases.

- Do the weak alias dance for log, log2, log10, log1p, and their
f/l variants.

(Not strictly necessary for log2 and log10 since nothing in the
math library itself uses them -- only a computer scientist would
use log2 and only an engineer would use log10 -- but let's just do
it the same for all our forestry.)

- Provide long double aliases on vax.

- Sprinkle RCS ids.
 1.10 16-Sep-2003  wennmach branches: 1.10.108;
Avoid the PIC dance.
 1.9 14-Sep-2003  fvdl Make log1p and log1pf work in shared libraries again.
 1.8 10-Sep-2003  wennmach Reimplement s_log1p.S and s_log1pf.S to use the fyl2xp1 instruction
where necessary.

The log1p() function is provided to compute an accurate value of
log(1 + x), even for tiny values of x. The i387 FPU provides the
fyl2xp1 instruction for this purpose.

However, since the range of the fyl2xp1 function is limited to
-(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
(-0.292893 <= x <= 0.414214)
we need to check if the argument is in the valid range.

In order to reduce the cost for testing the range, we only use
fyl2xp1 if the argument is in the range
-0.25 <= x <= 0.25
which can be checked with just one conditional branch.

Fixes PR lib/22599 by Ray Brownrigg.
 1.7 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 02-Jul-1999  simonb More trailing white space.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 26-Aug-1994  jtc Remove lie (in a comment) about conversion between 80 bit ot 64 bit reals,
since we set up the fpu to do all calculations in 64 bit mode at this time.
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.10.108.1 02-Aug-2025  perseant Sync with HEAD
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.1 03-Aug-2011  joerg Add logbl(3).
 1.2 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.1 22-Mar-2006  drochner branches: 1.1.84;
merge libc/arch/{i386,x86_64}/gen/modf.S into one
(not quite a merge actually, just an #ifdef for now)
and build it in the i386 case (amd64 should work, just needs to be tested)
That way, a program linking against libm should get the optimized
version as expected.
 1.1.84.1 10-Jun-2019  christos Sync with HEAD
 1.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 11-Feb-1994  jtc FPU specific math code.
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.1 05-May-2024  riastradh libm: New s_rintl.S for x86.

Prompted by PR lib/58054.
 1.2 28-Apr-2013  joerg Drop s_scalbnl.c (and s_scalbln.S as side effect) and provide scalbnl in
s_scalbln.c.
 1.1 27-Apr-2013  joerg Add a dummy s_scalbln.S to avoid the generic implementations of scalbln
and co on i386 and amd64. They are implemented next to scalbn and co.
 1.14 20-May-2013  joerg Fix ldexp aliases.
 1.13 20-May-2013  mlelstv Use correct alias for scalbn(). Tested by martin@.
 1.12 27-Apr-2013  joerg Add aliases for scalbn* to ldexp, they are identical for FLT_RADIX=2.
 1.11 27-Apr-2013  joerg Use the correct register on AMD64 for the argument.
 1.10 11-Feb-2013  matt Add long double version of x86 scalb functions
 1.9 23-Apr-2010  drochner branches: 1.9.6; 1.9.12;
-build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.8 21-Mar-2006  drochner The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.7 26-Jul-2003  salo branches: 1.7.4; 1.7.6; 1.7.10;
netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 02-Jan-1999  kristerw The scalb* functions left data on the floting point register stack.
Remove it before leaving the function.

The solution is taken from OpenBSD.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 12-Feb-1994  jtc More i387 math support, too bad we can't enable it
 1.7.10.1 26-Jul-2006  tron Pull up following revision(s) (requested by drochner in ticket #1236):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.7.6.1 04-Apr-2006  tron Pull up following revision(s) (requested by drochner in ticket #1236):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.7.4.1 21-Apr-2006  tron Pull up following revision(s) (requested by drochner in ticket #10412):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.9.12.2 23-Jun-2013  tls resync from head
 1.9.12.1 25-Feb-2013  tls resync with head
 1.9.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.14 20-May-2013  mlelstv Correctly alias the ldexp* functions to the scalbn equivalents
that take an int argument.
 1.13 27-Apr-2013  joerg Add aliases for scalbn* to ldexp, they are identical for FLT_RADIX=2.
 1.12 27-Apr-2013  joerg Use the correct register on AMD64 for the argument.
 1.11 12-Feb-2013  matt Fix the strong alias correctly this time.
 1.10 11-Feb-2013  matt Fix strong_alias
 1.9 11-Feb-2013  matt Add long double version of x86 scalb functions
 1.8 23-Apr-2010  drochner branches: 1.8.6; 1.8.12;
-build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
 1.7 21-Mar-2006  drochner The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.6 26-Jul-2003  salo branches: 1.6.4; 1.6.6; 1.6.10;
netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 02-Jan-1999  kristerw The scalb* functions left data on the floting point register stack.
Remove it before leaving the function.

The solution is taken from OpenBSD.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.6.10.1 26-Jul-2006  tron Pull up following revision(s) (requested by drochner in ticket #1236):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.6.6.1 04-Apr-2006  tron Pull up following revision(s) (requested by drochner in ticket #1236):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.6.4.1 21-Apr-2006  tron Pull up following revision(s) (requested by drochner in ticket #10412):
lib/libm/arch/i387/s_scalbn.S: revision 1.8
lib/libm/arch/i387/s_scalbnf.S: revision 1.7
The second argument is not a float, so the "abi.h" abstraction
doesn't work.
Open-code the argument handling instead.
Should fix the ldexp() bug reported by Brendon Costa in port-amd64.
 1.8.12.2 23-Jun-2013  tls resync from head
 1.8.12.1 25-Feb-2013  tls resync with head
 1.8.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 20-May-2013  mlelstv Correctly alias the ldexp* functions to the scalbn equivalents
that take an int argument.
 1.4 27-Apr-2013  joerg Use the correct register on AMD64 for the argument.
 1.3 11-Feb-2013  christos provide ldexpl
 1.2 11-Feb-2013  matt Add long double version of x86 scalb functions
 1.1 26-Jul-2011  joerg branches: 1.1.2; 1.1.8;
Add optimised version of scalbnl for x86.
 1.1.8.2 23-Jun-2013  tls resync from head
 1.1.8.1 25-Feb-2013  tls resync with head
 1.1.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.6 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.5 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.4 09-May-1995  jtc Id -> NetBSD
 1.3 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.2 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.1 10-Mar-1994  jtc Added i387 version of significand().
 1.5 26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.8 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.7 26-Jul-2003  salo branches: 1.7.96;
netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 09-May-1995  jtc Id -> NetBSD
 1.4 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.3 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.2 18-Feb-1994  jtc Optimize the common case (theta < 2^63).
 1.1 16-Feb-1994  jtc i387-specific math functions.
 1.7.96.1 10-Jun-2019  christos Sync with HEAD
 1.6 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.5 26-Jul-2003  salo branches: 1.5.96;
netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.5.96.1 10-Jun-2019  christos Sync with HEAD
 1.8 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.7 26-Jul-2003  salo branches: 1.7.96;
netbsd.org->NetBSD.org
 1.6 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.5 09-May-1995  jtc Id -> NetBSD
 1.4 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.3 12-Mar-1994  jtc Added RCS ID's. ID's use new RCSID macro from <machine/asm.h>.
 1.2 18-Feb-1994  jtc Optimize the common case (theta < 2^63).
 1.1 16-Feb-1994  jtc i387-specific math functions.
 1.7.96.1 10-Jun-2019  christos Sync with HEAD
 1.6 26-Apr-2019  maya Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.
 1.5 26-Jul-2003  salo branches: 1.5.96;
netbsd.org->NetBSD.org
 1.4 19-Jun-2001  fvdl Modify the i387 code so that it can be shared between the i386 port
and the x86_64 port. XXX some files should be distinct.
 1.3 09-May-1995  jtc Id -> NetBSD
 1.2 28-Apr-1995  jtc Winning Strategies has placed this code into the Public Domain
 1.1 19-Aug-1994  jtc Assembly language versions of some of the "float" functions.
 1.5.96.1 10-Jun-2019  christos Sync with HEAD
 1.2 21-Jul-2005  rpaulo Bump minor version for log2{,f}.
 1.1 13-Dec-1999  christos branches: 1.1.2;
Makefile and shared library for libm387.
 1.1.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.

RSS XML Feed