| Commit message (Expand) | Author | Age | Files | Lines |
| * | try fixing/optimizing x86_64 fenv exception code•••untested; may need followup-fixes.
| Rich Felker | 2012-03-17 | 1 | -18/+23 |
| * | optimize x86 feclearexcept•••if all exception flags will be cleared, we can avoid the expensive
store/reload of the environment and just use the fnclex instruction.
| Rich Felker | 2012-03-17 | 1 | -16/+20 |
| * | fix x86_64 fe[gs]etround, analogous to nsz's x86 changes | Rich Felker | 2012-03-17 | 1 | -8/+9 |
| * | minor 387 fenv optimizations | Rich Felker | 2012-03-17 | 1 | -6/+5 |
| * | fix i386 fegetround and make fesetround faster•••Note that the new fesetround has slightly different semantics:
Storing the floating-point environment with fnstenv makes the
next fldenv (or fldcw) "non-signaling", so unmasked and pending
exceptions does not invoke the exception handler.
(These are rare since exceptions are handled immediately and by
default all exceptions are masked anyway. But if one manually
unmasks an exception in the control word then either sets the
corresponding exception flag in the status word or the execution
of an exception raising floating-point operation gets interrupted
then it may happen).
So the old implementation did not trap in some rare cases
where the new implementation traps.
However POSIX does not specify anything like the x87 exception
handling traps and the fnstenv/fldenv pair is significantly slower
than the fnstcw/fldcw pair (new code is about 5x faster here and
it's dominated by the function call overhead).
| nsz | 2012-03-17 | 1 | -10/+10 |
| * | use type directives for fenv asm functions | Rich Felker | 2011-06-28 | 2 | -0/+14 |
| * | x86_64 fenv support (untested; at least known to build successfully) | Rich Felker | 2011-06-13 | 1 | -0/+88 |
| * | fix fesetround - it was writing to status word instead of control word | Rich Felker | 2011-06-13 | 1 | -3/+8 |
| * | floating point environment, untested•••at present the i386 code does not support sse floating point, which is
not part of the standard i386 abi. while it may be desirable to
support it later, doing so will reduce performance and require some
tricks to probe if sse support is present.
this first commit is i386-only, but it should be trivial to port the
asm to x86_64.
| Rich Felker | 2011-06-12 | 6 | -0/+144 |