Date: Fri, 14 Jan 2005 16:37:55 -0500 From: David Schultz <das@FreeBSD.ORG> To: src-committers@FreeBSD.ORG, cvs-src@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/lib/msun/alpha fenv.h src/lib/msun/amd64 fenv.h src/lib/msun/arm fenv.h src/lib/msun/i387 fenv.h src/lib/msun/ia64 fenv.h src/lib/msun/powerpc fenv.h src/lib/msun/sparc64 fenv.h Message-ID: <20050114213755.GA99555@VARK.MIT.EDU> In-Reply-To: <200501140709.j0E79NTA046894@repoman.freebsd.org> References: <200501140709.j0E79NTA046894@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 14, 2005, David Schultz wrote: > das 2005-01-14 07:09:23 UTC > > FreeBSD src repository > > Modified files: > lib/msun/alpha fenv.h > lib/msun/amd64 fenv.h > lib/msun/arm fenv.h > lib/msun/i387 fenv.h > lib/msun/ia64 fenv.h > lib/msun/powerpc fenv.h > lib/msun/sparc64 fenv.h > Log: > Mark all inline asms that read the floating-point control or status > registers as volatile. Instructions that *wrote* to FP state were > already marked volatile, but apparently gcc has license to move > non-volatile asms past volatile asms. This broke amd64's feupdateenv > at -O2 due to a WAR conflict between fnstsw and fldenv there. Bah. I knew I wasn't crazy when I wrote the original code. From the gcc documentation: In addition, GCC will not reschedule instructions across a volatile `asm' instruction. The fact that I saw otherwise is either a compiler bug or a documentation bug and has apparently been reported previously. I have filed a test case as a followup to gcc bug 17884: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17884
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050114213755.GA99555>