HomeFreeBSD

Use STRICT_ASSIGN() instead of assorted direct volatile hacks to work

Description

Use STRICT_ASSIGN() instead of assorted direct volatile hacks to work
around assignments not working for gcc on i386. Now volatile hacks
for rint() and rintf() don't needlessly pessimize so many arches
and the remaining pessimizations (for arm and powerpc) can be avoided
centrally.

This cleans up after s_rint.c 1.3 and 1.13 and s_rintf.c 1.3 and 1.9:

  • s_rint.c 1.13 broke 1.3 by only using a volatile cast hack in 1 place when it was needed in 2 places, and the volatile cast hack stopped working with gcc-4. These bugs only affected correctness tests on i386 since i386 normally uses asm rint() and doesn't support the extra precision mode that would break assignments of doubles.
  • s_rintf.c 1.9 improved(?) on 1.3 by using a volatile variable hack instead of an extra-precision variable hack, but it declared 2 variables as volatile when only 1 variable needed to be volatile. This only affected speed tests on i386 since i386 uses asm rintf().

Details

Provenance
Bruce Evans <bde@FreeBSD.org>Authored on Jan 19 2008, 4:37 PM
Parents
rG82bf4517ef9a: Zero mi_rotovp and coda_ctlvp immediately after calling vrele() on the
Branches
Unknown
Tags
Unknown

Event Timeline