about summary refs log tree commit diff
path: root/ports/sysdeps/mips
Commit message (Collapse)AuthorAgeFilesLines
* 2013-09-23 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-09-232-3/+3
| | | | | * sysdeps/mips/fpu/fegetround.c (fegetround): Use _FPU_RC_MASK. * sysdeps/mips/fpu/fesetround.c (fesetround): Use _FPU_RC_MASK.
* 2013-09-19 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-09-231-0/+2
| | | | * sysdeps/mips/fpu_control.h (_FPU_RC_MASK): New.
* 2013-09-23 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-09-231-3/+3
| | | | | * sysdeps/mips/fpu_control.h (comments): Add capitalization and periods to match GNU standard.
* 2013-09-20 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-09-201-90/+0
| | | | | * sysdeps/mips/memset.S: Change prefetching and add loop unrolling. * sysdeps/mips/mips64/memset.S: Remove.
* 2013-09-20 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-09-201-56/+338
| | | | | * sysdeps/mips/memset.S: Change prefetching and add loop unrolling. * sysdeps/mips/mips64/memset.S: Remove.
* MIPS: IEEE 754-2008 NaN encoding supportMaciej W. Rozycki2013-09-189-21/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It has been a long practice for software using IEEE 754 floating-point arithmetic run on MIPS processors to use an encoding of Not-a-Number (NaN) data different to one used by software run on other processors. And as of IEEE 754-2008 revision [1] this encoding does not follow one recommended in the standard, as specified in section 6.2.1, where it is stated that quiet NaNs should have the first bit (d1) of their significand set to 1 while signalling NaNs should have that bit set to 0, but MIPS software interprets the two bits in the opposite manner. As from revision 3.50 [2][3] the MIPS Architecture provides for processors that support the IEEE 754-2008 preferred NaN encoding format. As the two formats (further referred to as "legacy NaN" and "2008 NaN") are incompatible to each other, tools have to provide support for the two formats to help people avoid using incompatible binary modules. The change is comprised of two functional groups of features, both of which are required for correct support. 1. Dynamic linker support. To enforce the NaN encoding requirement in dynamic linking a new ELF file header flag has been defined. This flag is set for 2008-NaN shared modules and executables and clear for legacy-NaN ones. The dynamic linker silently ignores any incompatible modules it encounters in dependency processing. To avoid unnecessary processing of incompatible modules in the presence of a shared module cache, a set of new cache flags has been defined to mark 2008-NaN modules for the three ABIs supported. Changes to sysdeps/unix/sysv/linux/mips/readelflib.c have been made following an earlier code quality suggestion made here: http://sourceware.org/ml/libc-ports/2009-03/msg00036.html and are therefore a little bit more extensive than the minimum required. Finally a new name has been defined for the dynamic linker so that 2008-NaN and legacy-NaN binaries can coexist on a single system that supports dual-mode operation and that a legacy dynamic linker that does not support verifying the 2008-NaN ELF file header flag is not chosen to interpret a 2008-NaN binary by accident. 2. Floating environment support. IEEE 754-2008 features are controlled in the Floating-Point Control and Status (FCSR) register and updates are needed to floating environment support so that the 2008-NaN flag is set correctly and the kernel default, inferred from the 2008-NaN ELF file header flag at the time an executable is loaded, respected. As the NaN encoding format is a property of GCC code generation that is both a user-selected GCC configuration default and can be overridden with GCC options, code that needs to know what NaN encoding standard it has been configured for checks for the __mips_nan2008 macro that is defined internally by GCC whenever the 2008-NaN mode has been selected. This mode is determined at the glibc configuration time and therefore a few consistency checks have been added to catch cases where compilation flags have been overridden by the user. The 2008 NaN set of features relies on kernel support as the in-kernel floating-point emulator needs to be aware of the NaN encoding used even on hard-float processors and configure the FPU context according to the value of the 2008 NaN ELF file header flag of the executable being started. As at this time work on kernel support is still in progress and the relevant changes have not made their way yet to linux.org master repository. Therefore the minimum version supported has been artificially set to 10.0.0 so that 2008-NaN code is not accidentally run on a Linux kernel that does not suppport it. It is anticipated that the version is adjusted later on to the actual initial linux.org kernel version to support this feature. Legacy NaN encoding support is unaffected, older kernel versions remain supported. [1] "IEEE Standard for Floating-Point Arithmetic", IEEE Computer Society, IEEE Std 754-2008, 29 August 2008 [2] "MIPS Architecture For Programmers, Volume I-A: Introduction to the MIPS32 Architecture", MIPS Technologies, Inc., Document Number: MD00082, Revision 3.50, September 20, 2012 [3] "MIPS Architecture For Programmers, Volume I-A: Introduction to the MIPS64 Architecture", MIPS Technologies, Inc., Document Number: MD00083, Revision 3.50, September 20, 2012
* Fix then/than typos.Ondřej Bílka2013-08-301-7/+7
|
* Fix typos.Ondřej Bílka2013-08-301-2/+2
|
* Fix typos.Ondřej Bílka2013-08-291-1/+1
|
* MIPS: Correct the handling of reserved FCSR bitsMaciej W. Rozycki2013-08-223-4/+3
| | | | | | | | | | | | | | | | | | | | 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.
* Regenerate MIPS ulps.Joseph Myers2013-07-022-378/+9203
|
* Implement fma in soft-fp.Joseph Myers2013-07-028-12/+32
|
* Add GLRO(dl_hwcap2) for new AT_HWCAP2 auxv_t a_type.Ryan S. Arnold2013-06-281-1/+1
|
* Stop MIPS setjmp / longjmp saving / restoring floating-point flags (bug 14909).Joseph Myers2013-06-145-20/+2
|
* Add math-tests.h for MIPS.Joseph Myers2013-06-141-0/+37
|
* Remove trailing whitespace in ports.Joseph Myers2013-06-058-17/+17
|
* Avoid crashing in LD_DEBUG when program name is unavailableSiddhesh Poyarekar2013-05-292-16/+8
| | | | | | | | | Resolves: #15465 The program name may be unavailable if the user application tampers with argc and argv[]. Some parts of the dynamic linker caters for this while others don't, so this patch consolidates the check and fallback into a single macro and updates all users.
* Don't include expected results in libm-test test names.Joseph Myers2013-05-222-1138/+1138
|
* Handle sincos with generic libm-test logic.Joseph Myers2013-05-192-14/+14
|
* MIPS: soft-fp NaN representation correctionsMaciej W. Rozycki2013-05-162-6/+10
| | | | | | | | [BZ #15442] This adds support for the inverse interpretation of the quiet bit of IEEE 754 floating-point NaN data that some processors use. This includes in particular MIPS architecture processors; the payload used for the canonical qNaN encoding is updated accordingly so as not to interfere with the quiet bit.
* Add #include <stdint.h> for uint[32|64]_t usage (except installed headers).Ryan S. Arnold2013-05-161-0/+1
|
* New <math.h> macro named issignaling to check for a signaling NaN (sNaN).Thomas Schwinge2013-04-021-0/+27
| | | | It is based on draft TS 18661 and currently enabled as a GNU extension.
* Better distinguish between NaN/qNaN/sNaN.Thomas Schwinge2013-03-151-8/+8
|
* Add support for building as MIPS16 code.Maciej W. Rozycki2013-02-2735-33/+517
|
* Respect the user's namespace in installed header files.Thomas Schwinge2013-02-201-1/+1
| | | | Fixup for commit c7b275d6b3bceb6b400fa3044d13d1001bc605ca.
* bits/nan.h: Change __attribute_used__ to __attribute__ ((unused)).Thomas Schwinge2013-02-201-1/+1
|
* Add missing __attribute_used__.Thomas Schwinge2013-02-201-1/+2
| | | | | Generic IEEE 754 file has been changed in commit b575c52b86fe0c00adec925e356eb72cf95b23a7.
* Align to generic file.Thomas Schwinge2013-02-201-9/+10
|
* Add CFI information for MIPS assembly sources.Joseph Myers2013-02-115-9/+69
|
* Use ENTRY and END in more MIPS .S files.Joseph Myers2013-02-0814-49/+21
|
* 2013-01-25 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-01-251-23/+0
| | | | * sysdeps/mips/memmove.c: Remove.
* Fix trailing blank.Steve Ellcey2013-01-081-1/+1
|
* 2013-01-08 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-01-081-65/+112
| | | | | * sysdeps/mips/memcpy.S: Change prefetch hint, reorder partial loads and stores, set and use MAX_PREFETCH_SIZE.
* Update copyright notices with scripts/update-copyrights.Joseph Myers2013-01-0293-100/+93
|
* Add script to update copyright notices and reformat some to facilitate its use.Joseph Myers2013-01-018-16/+8
|
* Fix warnings from MIPS soft-float _FPU_GETCW.Joseph Myers2012-12-041-4/+3
|
* Update MIPS libm-test-ulps.Joseph Myers2012-11-302-50/+1249
|
* Add 64-bit support to MIPS register-dump.h (bug 14893).Joseph Myers2012-11-291-0/+4
|
* Cast to uintptr_t in MIPS jmpbuf-unwind.h.Joseph Myers2012-11-211-1/+1
|
* Add sotruss-lib.c for MIPS.Joseph Myers2012-11-211-0/+117
|
* Fix int-to-pointer-cast warnings for MIPS.Joseph Myers2012-11-201-3/+5
|
* Fix warnings from aborting MIPS atomic macros.Joseph Myers2012-11-201-3/+3
|
* Fix unused-variable warnings from MIPS RESOLVE_GOTSYM macro.Joseph Myers2012-11-201-1/+1
|
* Fix "set but not used" warnings from MIPS bits/atomic.h.Joseph Myers2012-11-171-4/+4
|
* Use memcpy in memmove when possibleMaxim Kuvyrkov2012-11-061-0/+23
|
* Make fma use of Dekker and Knuth algorithms use round-to-nearest (bug 14796).Joseph Myers2012-11-031-1/+2
|
* Make fenv.h FE_* macros usable in #if (bug 3439).Joseph Myers2012-11-031-18/+27
|
* Remove 'Contributed' line, glibc is not using them anymore.Steve Ellcey2012-10-311-2/+0
|
* Remove trailing white spaces.Steve Ellcey2012-10-311-5/+5
|
* 2012-10-31 Steve Ellcey <sellcey@mips.com>Steve Ellcey2012-10-312-243/+603
| | | | | | * sysdeps/mips/memcpy.S: Add prefetching and more unrolling, make it work in 32 or 64 bit modes. * sysdeps/mips/mips64/memcpy.S: Remove.