1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-24 11:29:10 +00:00
freebsd/lib/msun
Bruce Evans 0b42281ee9 Fixed aliasing bugs in TRUNC() by using the fdlibm macros for access
to doubles as bits.  fdlibm-1.1 had similar aliasing bugs, but these
were fixed by NetBSD or Cygnus before a modified version of fdlibm was
imported in 1994.  TRUNC() is only used by tgamma() and some
implementation-detail functions.  The aliasing bugs were detected by
compiling with gcc -O2 but don't seem to have broken tgamma() on i386's
or amd64's.  They broke my modified version of tgamma().

Moved the definition of TRUNC() to mathimpl.h so that it can be fixed
in one place, although the general version is even slower than necessary
because it has to operate on pointers to volatiles to handle its arg
sometimes being volatile.  Inefficiency of the fdlibm macros slows
down libm generally, and tgamma() is a relatively unimportant part of
libm.  The macros act as if on 32-bit words in memory, so they are
hard to optimize to direct actions on 64-bit double registers for
(non-i386) machines where this is possible.  The optimization is too
hard for gcc on amd64's, and declaring variables as volatile makes it
impossible.
2005-09-19 11:28:19 +00:00
..
alpha Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
amd64 Add a missing ldexpf() alias for amd64. 2005-09-12 20:54:00 +00:00
arm Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
bsdsrc Fixed aliasing bugs in TRUNC() by using the fdlibm macros for access 2005-09-19 11:28:19 +00:00
i387 Prevent these functions from using stack outside of their frame. 2005-05-06 15:44:20 +00:00
ia64 Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
man Markup nit. 2005-06-16 21:56:03 +00:00
powerpc Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
sparc64 Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
src Revert the last change, the conversion from long double to double can raise 2005-04-28 19:45:55 +00:00
Makefile Bump the shared library version number of all libraries that have not 2005-07-22 17:19:05 +00:00