Date: Fri, 11 Jan 2008 18:59:35 +0000 (UTC) From: Bruce Evans <bde@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/i386/include ieeefp.h Message-ID: <200801111859.m0BIxZqu035686@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
bde 2008-01-11 18:59:35 UTC FreeBSD src repository Modified files: sys/i386/include ieeefp.h Log: MFamd64 (everything possible up to 1.19; mainly the amd64 implementations of fpget*() and fpset*()). The i386 fpget*() were efficient but a bit obfuscated (using macros and a case statement to demultiplex them through a single inline). The demultiplexing mainly gave smaller source code. The i386 fpset*() were obfuscated in the same way and were very inefficient due to the case statement not having enough cases or complexity so all cases used the FP environment. This also fixes a harmless bug in rev.1.12. fpsetmask() extracted the old value from the bit-field twice, but the doubled shift was harmless since the shift count is 0. All fp*() interfaces are now inline functions on i386. They used to be macros that call (a different set of) inline functions. This is a small ABI change which shouldn't cause problems since cases where inlining fails (mainly -O0) only give (working) static functions. Revision Changes Path 1.14 +103 -61 src/sys/i386/include/ieeefp.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200801111859.m0BIxZqu035686>