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