cvs commit: src/lib/msun/ia64 fenv.h
David Schultz
das at FreeBSD.org
Sat Mar 5 20:34:45 GMT 2005
das 2005-03-05 20:34:45 UTC
FreeBSD src repository
Modified files:
lib/msun/ia64 fenv.h
Log:
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.
Revision Changes Path
1.3 +1 -1 src/lib/msun/ia64/fenv.h
More information about the cvs-src
mailing list