#
303975 |
|
11-Aug-2016 |
gjb |
Copy stable/11@r303970 to releng/11.0 as part of the 11.0-RELEASE cycle.
Prune svn:mergeinfo from the new branch, and rename it to RC1.
Update __FreeBSD_version.
Use the quarterly branch for the default FreeBSD.conf pkg(8) repo and the dvd1.iso packages population.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
302408 |
|
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
249724 |
|
21-Apr-2013 |
kib |
Merge the 386 and amd64 versions of the fenv.h, to make cc -m32 compilations which use fenv.h work.
Reviewed by: tjil Sponsored by: The FreeBSD Foundation
|
#
226218 |
|
10-Oct-2011 |
das |
Provide external definitions of all of the standardized functions in fenv.h that are currently inlined.
The definitions are provided in fenv.c via 'extern inline' declaractions. This assumes the compiler handles 'extern inline' as specified in C99, which has been true under FreeBSD since 8.0.
The goal is to eventually remove the 'static' keyword from the inline definitions in fenv.h, so that non-inlined references all wind up pointing to the same external definition like they're supposed to. I am deferring the second step to provide a window where newly-compiled apps will still link against old math libraries. (This isn't supported, but there's no need to cause undue breakage.)
Reviewed by: stefanf, bde
|
#
203441 |
|
03-Feb-2010 |
kib |
Placate new binutils, by using 16-bit %ax instead of 32-bit %eax as an argument for fnstsw. Explicitely specify sizes for the XMM control and status word and X87 control and status words.
Reviewed by: das Tested by: avg MFC after: 2 weeks
|
#
165841 |
|
06-Jan-2007 |
das |
Fix a problem relating to fesetenv() clobbering i387 register stack.
Details: As a side-effect of restoring a saved FP environment, fesetenv() overwrites the tag word, which indicates which i387 registers are in use. Normally this isn't a problem because the calling convention requires the register stack to be empty on function entry and exit. However, fesetenv() is inlined, so we need to tell gcc explicitly that the i387 registers get clobbered.
PR: 85101
|
#
163358 |
|
14-Oct-2006 |
bde |
Moved __BEGIN_DECLS up a little so that it covers __test_sse() and C++ isn't broken,
PR: 104425
|
#
143769 |
|
17-Mar-2005 |
das |
Make the fenv.h routines work for programs that use SSE for floating-point arithmetic on i386. Now I'm going to make excuses for why this code is kinda scary:
- To avoid breaking the ABI with 5.3-RELEASE, we can't change sizeof(fenv_t). I stuck the saved mxcsr in some discontiguous reserved bits in the existing structure.
- Attempting to access the mxcsr on older processors results in an illegal instruction exception, so support for SSE must be detected at runtime. (The extra baggage is optimized away if either the application or libm is compiled with -msse{,2}.)
I didn't run tests to ensure that this doesn't SIGILL on older 486's lacking the cpuid instruction or on other processors lacking SSE. Results from running the fenv regression test on these processors would be appreciated. (You'll need to compile the test with -DNO_STRICT_DFL_ENV.) If you have an 80386, or if your processor supports SSE but the kernel didn't enable it, then you're probably out of luck.
Also, I un-inlined some of the functions that grew larger as a result of this change, moving them from fenv.h to fenv.c.
|
#
143708 |
|
16-Mar-2005 |
das |
Replace fegetmask() and fesetmask() with feenableexcept(), fedisableexcept(), and fegetexcept(). These two sets of routines provide the same functionality. I implemented the former as an undocumented internal interface to make the regression test easier to write. However, fe(enable|disable|get)except() is already part of glibc, and I would like to avoid gratuitous differences. The only major flaw in the glibc API is that there's no good way to report errors on processors that don't support all the unmasked exceptions.
|
#
140219 |
|
14-Jan-2005 |
das |
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.
|
#
130144 |
|
06-Jun-2004 |
das |
Add an fenv.h implementation for the i386 port.
Reviewed by: standards@
|