glibc/ports
Maciej W. Rozycki b72ca61b71 MIPS: Correct the handling of reserved FCSR bits
Reserved bits in the Floating-Point Control and Status Register (FCSR)
should not be implicitly cleared by fedisableexcept or feenableexcept,
there is no reason to.  Among these are the 8 condition codes and one of
the two bits reserved for architecture implementers (bits #22 & #21).

As to the latter, there is no reason to treat any of them as reserved
either, they should be user controllable and settable via __fpu_control
override as the user sees fit.  For example in processors implemented by
MIPS Technologies, such as the 5Kf or the 24Kf, these bits are used to
change the treatment of denormalised operands and tiny results: bit #22
is Flush Override (FO) and bit #21 is Flush to Nearest (FN).  They cause
non-IEEE-compliant behaviour, but some programs may have a use for such
modes of operation; the library should not obstruct such use just as it
does not for the architectural Flush to Zero (FS) bit (bit #24).

Therefore the change adjusts the reserved mask accordingly and also
documents the distinction between bits 22:21 and 20:18.
2013-08-22 17:55:17 +01:00
..
sysdeps MIPS: Correct the handling of reserved FCSR bits 2013-08-22 17:55:17 +01:00
ChangeLog Update miscellaneous copyright dates. 2013-01-02 19:43:40 +00:00
ChangeLog.aarch64 [AArch64] Provide symbol version for _mcount. 2013-07-26 08:29:17 +01:00
ChangeLog.aix Move all files into ports/ subdirectory in preparation for merge with glibc 2012-07-01 13:06:41 +00:00
ChangeLog.alpha alpha: Update libm-test-ulps from scratch 2013-07-02 09:59:50 -07:00
ChangeLog.am33 Fix typos. 2013-08-21 19:48:48 +02:00
ChangeLog.arm Condition sysdeps/arm/include/bits/setjmp.h contents on _ISOMAC. 2013-07-03 21:59:58 +00:00
ChangeLog.cris Move all files into ports/ subdirectory in preparation for merge with glibc 2012-07-01 13:06:41 +00:00
ChangeLog.hppa Fix typos. 2013-08-21 19:48:48 +02:00
ChangeLog.ia64 Fix typos. 2013-08-21 19:48:48 +02:00
ChangeLog.linux-generic Remove trailing whitespace in ports. 2013-06-05 20:26:40 +00:00
ChangeLog.m68k Fix typos. 2013-08-21 19:48:48 +02:00
ChangeLog.microblaze New API to set default thread attributes 2013-06-15 12:24:15 +05:30
ChangeLog.mips MIPS: Correct the handling of reserved FCSR bits 2013-08-22 17:55:17 +01:00
ChangeLog.powerpc PR 15483 2013-08-17 01:24:00 -03:00
ChangeLog.tile Fix typos. 2013-08-21 19:48:48 +02:00
README Update miscellaneous copyright dates. 2013-01-02 19:43:40 +00:00

This is the glibc ports add-on, an add-on for the GNU C Library (glibc).
It contains code that is not maintained in the official glibc source tree.

This includes working ports to GNU/Linux on some machine architectures that
are not maintained in the official glibc source tree.  It also includes
some code once used by old libc ports now defunct, which has been abandoned
but may be useful for some future porter to examine.  It may also include
some optimized functions tailored for specific CPU implementations of an
architecture, to be selected using --with-cpu.

The ports add-on is cooperatively maintained by volunteers on the
<libc-ports@sourceware.org> mailing list, and housed in the ports
subdirectory of the glibc git repository.  See
http://www.gnu.org/software/libc/download.html for details on using
git.  To report a bug in code housed in the ports add-on, please go to
http://sourceware.org/bugzilla/ and file a bug report under the glibc
"ports" component.

An add-on for an individual port can be made from just the sysdeps/
subdirectories containing the port's code.  You may want to include a
README and Banner of your own talking about your port's code in particular,
rather than the generic ones here.

The real source code for any ports is found in the sysdeps/ subdirectories.
These should be exactly what would go into the main libc source tree if you
were to incorporate it directly.  The only exceptions are the files
sysdeps/*/preconfigure and sysdeps/*/preconfigure.in; these are fragments
used by this add-on's configure fragment.  The purpose of these is to set
$base_machine et al when the main libc configure's defaults are not right
for some machine.  Everything else can and should be done from a normal
sysdeps/.../configure fragment that is used only when the configuration
selects that sysdeps subdirectory.  Each port that requires some special
treatment before the sysdeps directory list is calculated, should add a
sysdeps/CPU/preconfigure file; this can either be written by hand or
generated by Autoconf from sysdeps/CPU/preconfigure.in, and follow the
rules for glibc add-on configure fragments.  No preconfigure file should do
anything on an unrelated configuration, so that disparate ports can be put
into a single add-on without interfering with each other.

Like all glibc add-ons, this must be used by specifying the directory in
the --enable-add-ons option when running glibc's configure script.

The GNU C Library is free software.  See the file COPYING.LIB in the
libc repository for copying conditions, and LICENSES for notices about
a few contributions that require these additional notices to be
distributed.  License copyright years may be listed using range
notation, e.g., 2000-2013, indicating that every year in the range,
inclusive, is a copyrightable year that would otherwise be listed
individually.