freebsd-dev/lib
David Schultz 9233b45ad9 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.
2005-03-17 22:21:46 +00:00
..
bind Regenerate for 9.3.1 2005-03-17 08:39:12 +00:00
csu Remnant code (broken, unhooked) from a.out which I missed. 2005-01-11 18:35:40 +00:00
libalias Fix a problem in the Skinny ALG where a specially crafted packet could cause 2005-03-03 03:06:37 +00:00
libarchive Support extracting entries with pathnames longer than PATH_MAX. In 2005-03-13 02:53:42 +00:00
libatm Use WARNS?=3 for these in the arm case for now, due to toolchain issues. 2004-05-14 13:31:21 +00:00
libautofs spell "file system" correctly 2005-01-24 20:01:28 +00:00
libbegemot Fixed "make clean". 2004-11-04 08:25:03 +00:00
libbluetooth Fix typo in comments (spell Linux correctly) 2005-03-17 21:39:44 +00:00
libbsnmp Finish repo-copy of lib/libbsnmp/modules to usr.sbin/bsnmpd/modules. 2005-03-14 17:32:16 +00:00
libbz2 Remove MAINTAINER lines. 2003-06-14 19:32:52 +00:00
libc Remove fpsetsticky(). This was added for SysV compatibility, but due 2005-03-15 15:53:39 +00:00
libc_r Increase the default stacksizes: 2005-02-28 17:15:31 +00:00
libcalendar Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libcam Expand *n't contractions. 2005-02-13 22:25:33 +00:00
libcom_err
libcompat Expand contractions. 2005-02-13 23:45:54 +00:00
libcrypt Fixed the misplaced $FreeBSD$. 2005-02-09 18:07:17 +00:00
libdevinfo Fix typo in a comment. 2005-03-01 20:32:05 +00:00
libdevstat Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
libdisk Initialise `sn' before using its value. 2005-03-08 21:46:18 +00:00
libedit Expand contractions. 2005-02-13 23:45:54 +00:00
libexpat Stage 3 of dynamic root support. Make all the libraries needed to run 2003-08-17 08:28:46 +00:00
libfetch Set the TCP_NODELAY socket option and clear TCP_NOPUSH in order to flush 2005-03-02 19:09:28 +00:00
libform Use 2003-06-06 13:46:55 +00:00
libftpio Fix typo. 2005-02-14 18:40:31 +00:00
libgeom Markup, grammar, punctuation. 2004-07-01 18:20:57 +00:00
libgpib Use the correct variable name in ibsad() 2005-02-13 06:21:36 +00:00
libio Start the dreaded NOFOO -> NO_FOO conversion. 2004-12-21 08:47:35 +00:00
libipsec Fixed the misplaced $FreeBSD$. 2005-02-09 18:07:17 +00:00
libipx Various markup and spelling fixes. 2004-12-29 02:18:24 +00:00
libkiconv Markup fixes. 2004-07-05 06:59:17 +00:00
libkse Change the spin lock logic to a reasonable one. We should spin when 2005-02-27 17:45:55 +00:00
libkvm Dike out unwarranted reference to si_udev. 2005-03-15 14:26:14 +00:00
libmagic Clean up makefile. 2005-01-28 17:01:54 +00:00
libmd In light of the recent 2^69 operation collision-finding attack on SHA1, 2005-03-09 19:23:04 +00:00
libmenu Use 2003-06-06 13:46:55 +00:00
libmilter NOINET6 -> NO_INET6 2004-12-21 10:49:29 +00:00
libmp Downgrage WARNS level for GCC 3.4.x. 2004-07-28 05:44:07 +00:00
libncp Standardize 2 error messages: start with lowercase letter. 2005-01-16 11:22:42 +00:00
libncurses NOHTML -> NO_HTML 2004-12-21 12:05:11 +00:00
libnetgraph When we have converted an ASCII message to binary, set its version in 2005-02-04 21:36:10 +00:00
libngatm Add the new call control layer to the library and install the man page 2004-07-08 17:09:55 +00:00
libopie Bump the library version numbers for the following libraries: 2004-10-01 15:38:07 +00:00
libpam Expand *n't contractions. 2005-02-13 22:25:33 +00:00
libpanel Use 2003-06-06 13:46:55 +00:00
libpcap NOINET6 -> NO_INET6 2004-12-21 10:49:29 +00:00
libpthread Change the spin lock logic to a reasonable one. We should spin when 2005-02-27 17:45:55 +00:00
libradius NOCRYPT -> NO_CRYPT 2004-12-21 10:16:04 +00:00
librpcsvc Start the dreaded NOFOO -> NO_FOO conversion. 2004-12-21 08:47:35 +00:00
libsbuf style.Makefile(5) 2003-08-18 15:25:39 +00:00
libsdp Sort sections. 2005-01-20 09:17:07 +00:00
libsm Remove file no longer in 8.13.3 2005-02-14 02:41:41 +00:00
libsmb Start the dreaded NOFOO -> NO_FOO conversion. 2004-12-21 08:47:35 +00:00
libsmdb For variables that are only checked with defined(), don't provide 2004-10-24 15:33:08 +00:00
libsmutil For variables that are only checked with defined(), don't provide 2004-10-24 15:33:08 +00:00
libstand Sort sections. 2005-01-20 09:17:07 +00:00
libtacplus Fix most cases where the address of an int is passed to a function expecting a 2005-02-14 17:42:58 +00:00
libtelnet NOCRYPT -> NO_CRYPT 2004-12-21 10:16:04 +00:00
libthr Increase the default stacksizes: 2005-03-06 07:56:18 +00:00
libthread_db Plug a memory leak in error case. 2004-08-16 05:20:12 +00:00
libufs Fixed xrefs. 2005-01-21 10:35:40 +00:00
libugidfw Modify libugidfw(3) to use MBI_* permission flags from mac_bsdextended.h 2004-10-21 11:21:13 +00:00
libusbhid Sort sections. 2005-01-20 09:17:07 +00:00
libutil Fix grammatical issue. 2005-02-27 22:24:24 +00:00
libvgl Expand contractions. 2005-02-13 23:45:54 +00:00
libwrap NOINET6 -> NO_INET6 2004-12-21 10:49:29 +00:00
liby NODOCCOMPRESS -> NO_DOCCOMPRESS 2004-12-21 09:33:47 +00:00
libypclnt Nothing in libypclnt depends on librpcsvc. 2004-02-04 09:53:29 +00:00
libz Correct a denial-of-service vulnerability in zlib. 2004-08-26 19:37:06 +00:00
msun Make the fenv.h routines work for programs that use SSE for 2005-03-17 22:21:46 +00:00
ncurses NOHTML -> NO_HTML 2004-12-21 12:05:11 +00:00
Makefile Tie libgpib into the build (unless NO_GPIB) 2005-02-06 16:45:57 +00:00
Makefile.inc