[5048] in Athena Bugs
RT floating point
daemon@ATHENA.MIT.EDU (John Carr)
Mon Jun 4 05:52:28 1990
To: bugs@ATHENA.MIT.EDU
Date: Mon, 04 Jun 90 05:52:16 EDT
From: John Carr <jfc@ATHENA.MIT.EDU>
The RT library code uses the RT floating code linkage convention to take
advantage of the floating point hardware for complex operations (for
example, sin and cos), but forces the software implementations to be loaded
as well even though it is not used. I was unable to determine why, or how
to fix it (the code quality is such that I don't want to look at it more
than I have to, and I had already written the 1K of code required to
implement most of the IEEE math functions found in the libraries by the time
I realized what the math library was doing).
/afs/athena/user/j/jfc/src/libm/ contains versions of most of the math
library functions, and some of the C library floating point functions (drem,
scalb, logb). Using this implementation will reduce code size, especially
data segment size (the math library shrinks by about 40K). It also uses the
floating point hardware for more functions than the math library does
(atanh() is sped up by a factor of 8 when using the 68881; I expect similar
improvements in some other functions).
This directory can replace entirely
/source/bsd-4.3/rt/usr.lib/libm/IEEE/IBMRT/. Some files in
/source/bsd-4.3/rt/usr.lib/libm/IEEE/ will need to be modified, as will some
files in /source/bsd-4.3/rt/lib/libc/gen, to avoid name conflicts.