freebsd-skq/lib/msun
David Schultz f4a5643005 Work around a gcc bug. This fixes feholdexcept() et al. at -O1.
Symptoms of the problem included assembler warnings and
nondeterministic runtime behavior when a fe*() call that affects the
fpsr is closely followed by a float point op.

The bug (at least, I think it's a bug) is that gcc does not insert a
break between a volatile asm and a dependent instruction if the
volatile asm came from an inlined function.  Volatile asms seem to be
fine in other circumstances, even without -mvolatile-asm-stop, so
perhaps the compiler adds the stop bits before inlining takes place.
The problem does not occur at -O0 because inlining is disabled, and it
doesn't happen at -O2 because -fschedule-insns2 knows better.
2005-03-05 20:34:45 +00:00
..
alpha Move machine-dependent crud to its own makefile. 2005-02-04 14:33:39 +00:00
amd64 Move machine-dependent crud to its own makefile. 2005-02-04 14:33:39 +00:00
arm Define FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD, FE_DOWNWARD and _ROUND_MASK to 2005-01-24 00:35:02 +00:00
bsdsrc GC unused declaration 2004-12-16 20:40:49 +00:00
i387 Remove the i387 versions of atan(), atan2(), and atan2f(). 2005-02-21 16:04:23 +00:00
ia64 Work around a gcc bug. This fixes feholdexcept() et al. at -O1. 2005-03-05 20:34:45 +00:00
man Un-document the non-extant exp10() and exp10f() functions. 2005-02-26 08:54:45 +00:00
powerpc Mark all inline asms that read the floating-point control or status 2005-01-14 07:09:23 +00:00
sparc64 Use hardware instructions for sqrt() and sqrtf(). 2005-02-21 18:27:57 +00:00
src Revert rev 1.8, which causes small (e.g. 2 ulp) errors for some 2005-02-24 06:32:13 +00:00
Makefile Un-document the non-extant exp10() and exp10f() functions. 2005-02-26 08:54:45 +00:00