summaryrefslogtreecommitdiffstats
path: root/lib/msun/arm
Commit message (Collapse)AuthorAgeFilesLines
* Add a change I missed in r230367 (don't inline arm's fenv.h functions).das2012-01-201-1/+0
|
* Don't inline fenv.h functions on arm for now. Inlining makes sense:das2012-01-203-13/+31
| | | | | | | | the function bodies require only 2 to 10 instructions. However, it leads to application binaries that refer to a private ABI, namely, the softfloat innards in libc. This could complicate future changes in the implementation of the floating-point emulation layer, so it seems best to have programs refer to the official fe* entry points in libm.
* Add an implementation of fenv.h intended for platforms that lack an FPU anddas2012-01-162-5/+20
| | | | | | | use softfloat. Thanks to Ian Lepore for testing and debugging this patch. The fenv regression tests pass (at least for Ian's arm chip) with this change.
* Use #include "fenv.h" instead of #include <fenv.h>. This makes itdas2011-10-161-1/+1
| | | | | | more convenient to compile the math library by itself. Requested by: bde
* Provide external definitions of all of the standardized functions indas2011-10-103-14/+45
| | | | | | | | | | | | | | | | | fenv.h that are currently inlined. The definitions are provided in fenv.c via 'extern inline' declaractions. This assumes the compiler handles 'extern inline' as specified in C99, which has been true under FreeBSD since 8.0. The goal is to eventually remove the 'static' keyword from the inline definitions in fenv.h, so that non-inlined references all wind up pointing to the same external definition like they're supposed to. I am deferring the second step to provide a window where newly-compiled apps will still link against old math libraries. (This isn't supported, but there's no need to cause undue breakage.) Reviewed by: stefanf, bde
* Use C comments since we now preprocess these files with CPP.deischen2007-04-291-1/+3
|
* Add symbol versioning to libm.deischen2006-03-272-0/+4
|
* Replace fegetmask() and fesetmask() with feenableexcept(),das2005-03-161-9/+19
| | | | | | | | | | fedisableexcept(), and fegetexcept(). These two sets of routines provide the same functionality. I implemented the former as an undocumented internal interface to make the regression test easier to write. However, fe(enable|disable|get)except() is already part of glibc, and I would like to avoid gratuitous differences. The only major flaw in the glibc API is that there's no good way to report errors on processors that don't support all the unmasked exceptions.
* Define the LDBL_PREC to be the number of significant bits in a longdas2005-03-071-0/+3
| | | | double's mantissa.
* Define FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD, FE_DOWNWARD and _ROUND_MASK tocognet2005-01-241-0/+7
| | | | unbreak the build for arm.
* Mark all inline asms that read the floating-point control or statusdas2005-01-141-1/+1
| | | | | | | registers as volatile. Instructions that *wrote* to FP state were already marked volatile, but apparently gcc has license to move non-volatile asms past volatile asms. This broke amd64's feupdateenv at -O2 due to a WAR conflict between fnstsw and fldenv there.
* Only use rfs and wfs if ARM_HARD_FLOAT is defined, and use stubs if it is not,cognet2004-08-051-2/+7
| | | | | | in order to unbreak arm make world. The right way to do it with soft floats will be figured out later. Discussed with: das
* Add an fenv.h implementation for the arm port.das2004-06-062-0/+230
It does not appear to be possible to cross-build arm from i386 at the moment, and I have no ARM hardware anyway. Thus, I'm sure there are bugs. I will gladly fix these when the arm port is more mature. Reviewed by: standards@
OpenPOWER on IntegriCloud