Home | History | Annotate | Download | only in gen
History log of /src/lib/libc/compat/gen/compat_ldexp_ieee754.c
RevisionDateAuthorComments
 1.9  17-Jun-2024  riastradh libc ldexp(3): Avoid undefined behaviour in arithmetic overflow.

PR lib/58347
 1.8  21-May-2020  riastradh branches: 1.8.6;
Teach libc's compat ldexp stub to raise fp exceptions.

This ldexp stub will shadow the ldexp weak alias for scalbn in libm,
which is unfortunate but hard to fix properly without chasing the
mythical libc bump beast. With the change here, we should raise all
the same exceptions that libm's scalbn does -- overflow, underflow,
inexact-result, and (for signalling NaN only) invalid-operation.
This in turn should correct the missing overflow/underflow exceptions
of our portable C fma, and perhaps other routines.

XXX pullup
 1.7  27-Aug-2016  christos branches: 1.7.16;
remove debugging
 1.6  27-Aug-2016  christos detect overflow in oldexp + newexp
 1.5  23-Apr-2010  drochner use the local versions of ldexp/frexp/modf again rather than pulling
in libm source code. The libm functions depend on other libm functions,
this requires symbol renaming, and with the reachover method this
is going to be a mess. Also, bundling the dependencies into one .o
file has the potential to cause symbol conflicts on static linking.
 1.4  28-Sep-2008  christos branches: 1.4.6;
this needs finite and scalbn
 1.3  28-Sep-2008  christos having 2 separate implementations of frexp ldexp and modf (one here and
one in libm) that produce different results does not make any sense. Use
the one from libm to build instead.
 1.2  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1  27-Jun-2006  drochner branches: 1.1.18;
First step to clean up the variety of frexp(), ldexp() and modf()
implementations.
Long term goal is to use the implementation in libm and get rid of
the libc instances. For now, we need to keep one in libc for compatibility,
it belongs into the compat subtree.
The switch is per-arch. Should be painless for ieee754 boxes.
If all ieee754 archs are switched, libc/gen/{frexp,ldexp,modf}_ieee754.c
can be removed.
 1.1.18.1  18-May-2008  yamt sync with head.
 1.4.6.2  28-Sep-2008  christos this needs finite and scalbn
 1.4.6.1  28-Sep-2008  christos file compat_ldexp_ieee754.c was added on branch christos-time_t on 2008-09-28 18:54:31 +0000
 1.7.16.2  13-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #1905):

lib/libc/compat/gen/compat_ldexp_ieee754.c: revision 1.9

libc ldexp(3): Avoid undefined behaviour in arithmetic overflow.

PR lib/58347
 1.7.16.1  25-May-2020  martin Pull up following revision(s) (requested by riastradh in ticket #920):

lib/libc/compat/gen/compat_ldexp_ieee754.c: revision 1.8

Teach libc's compat ldexp stub to raise fp exceptions.

This ldexp stub will shadow the ldexp weak alias for scalbn in libm,
which is unfortunate but hard to fix properly without chasing the
mythical libc bump beast. With the change here, we should raise all
the same exceptions that libm's scalbn does -- overflow, underflow,
inexact-result, and (for signalling NaN only) invalid-operation.

This in turn should correct the missing overflow/underflow exceptions
of our portable C fma, and perhaps other routines.

XXX pullup
 1.8.6.1  13-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #962):

lib/libc/compat/gen/compat_ldexp_ieee754.c: revision 1.9

libc ldexp(3): Avoid undefined behaviour in arithmetic overflow.

PR lib/58347

RSS XML Feed