summaryrefslogtreecommitdiffstats
path: root/lib/msun/alpha/fenv.h
Commit message (Collapse)AuthorAgeFilesLines
* Replace fegetmask() and fesetmask() with feenableexcept(),das2005-03-161-3/+4
| | | | | | | | | | 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.
* 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.
* Add an fenv.h implementation for the alpha port. All of the standarddas2004-06-061-0/+184
features appear to work, subject to the caveat that you tell gcc you want standard rather than recklessly fast behavior (-mieee-with-inexact -mfp-rounding-mode=d). The non-standard feature of delivering a SIGFPE when an application raises an unmasked exception does not work, presumably due to a kernel bug. This isn't so bad given that floating-point exceptions on the Alpha architecture are not precise, so making them useful in userland requires a significant amount of wizardry. Reviewed by: standards@
OpenPOWER on IntegriCloud