aboutsummaryrefslogtreecommitdiff
path: root/ports/sysdeps/mips
AgeCommit message (Collapse)Author
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae
2013-12-03Update MIPS dl-lookup.c from generic version.Joseph Myers
2013-11-28Fix dbl-64 e_sqrt.c for non-default rounding modes (bug 16271).Joseph Myers
2013-10-30rename configure.in to configure.acMike Frysinger
Autoconf has been deprecating configure.in for quite a long time. Rename all our configure.in and preconfigure.in files to .ac. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-10-032013-09-26 Steve Ellcey <sellcey@mips.com>Steve Ellcey
[BZ #15632] * sysdeps/mips/mips32/fpu/e_sqrt.c: New. * sysdeps/mips/mips32/fpu/e_sqrtf.c: New. * sysdeps/mips/mips64/n32/fpu/e_sqrt.c: New. * sysdeps/mips/mips64/n32/fpu/e_sqrtf.c: New. * sysdeps/mips/mips64/n64/fpu/e_sqrt.c: New. * sysdeps/mips/mips64/n64/fpu/e_sqrtf.c: New.
2013-09-232013-09-23 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* sysdeps/mips/math_private.h (libc_feholdexcept_mips): New function. (libc_feholdexcept): New macro. (libc_feholdexceptf): New macro. (libc_feholdexceptl): New macro. (libc_fesetround_mips): New function. (libc_fesetround): New macro. (libc_fesetroundf): New macro. (libc_fesetroundl): New macro. (libc_feholdexcept_setround_mips): New function. (libc_feholdexcept_setround): New macro. (libc_feholdexcept_setroundf): New macro. (libc_feholdexcept_setroundl): New macro. (libc_fesetenv_mips): New function. (libc_fesetenv): New macro. (libc_fesetenvf): New macro. (libc_fesetenvl): New macro. (libc_feupdateenv_mips): New function. (libc_feupdateenv): New macro. (libc_feupdateenvf): New macro. (libc_feupdateenvl): New macro.
2013-09-23MIPS: bits/atomic.h: Fix comment typoMaciej W. Rozycki
2013-09-232013-09-23 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* sysdeps/mips/fpu/fegetround.c (fegetround): Use _FPU_RC_MASK. * sysdeps/mips/fpu/fesetround.c (fesetround): Use _FPU_RC_MASK.
2013-09-232013-09-19 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* sysdeps/mips/fpu_control.h (_FPU_RC_MASK): New.
2013-09-232013-09-23 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* sysdeps/mips/fpu_control.h (comments): Add capitalization and periods to match GNU standard.
2013-09-202013-09-20 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* sysdeps/mips/memset.S: Change prefetching and add loop unrolling. * sysdeps/mips/mips64/memset.S: Remove.
2013-09-202013-09-20 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* sysdeps/mips/memset.S: Change prefetching and add loop unrolling. * sysdeps/mips/mips64/memset.S: Remove.
2013-09-18MIPS: IEEE 754-2008 NaN encoding supportMaciej W. Rozycki
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
2013-08-30Fix then/than typos.Ondřej Bílka
2013-08-30Fix typos.Ondřej Bílka
2013-08-29Fix typos.Ondřej Bílka
2013-08-22MIPS: Correct the handling of reserved FCSR bitsMaciej W. Rozycki
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-07-02Regenerate MIPS ulps.Joseph Myers
2013-07-02Implement fma in soft-fp.Joseph Myers
2013-06-28Add GLRO(dl_hwcap2) for new AT_HWCAP2 auxv_t a_type.Ryan S. Arnold
2013-06-14Stop MIPS setjmp / longjmp saving / restoring floating-point flags (bug 14909).Joseph Myers
2013-06-14Add math-tests.h for MIPS.Joseph Myers
2013-06-05Remove trailing whitespace in ports.Joseph Myers
2013-05-29Avoid crashing in LD_DEBUG when program name is unavailableSiddhesh Poyarekar
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.
2013-05-22Don't include expected results in libm-test test names.Joseph Myers
2013-05-19Handle sincos with generic libm-test logic.Joseph Myers
2013-05-16MIPS: soft-fp NaN representation correctionsMaciej W. Rozycki
[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.
2013-05-16Add #include <stdint.h> for uint[32|64]_t usage (except installed headers).Ryan S. Arnold
2013-04-02New <math.h> macro named issignaling to check for a signaling NaN (sNaN).Thomas Schwinge
It is based on draft TS 18661 and currently enabled as a GNU extension.
2013-03-15Better distinguish between NaN/qNaN/sNaN.Thomas Schwinge
2013-02-27Add support for building as MIPS16 code.Maciej W. Rozycki
2013-02-20Respect the user's namespace in installed header files.Thomas Schwinge
Fixup for commit c7b275d6b3bceb6b400fa3044d13d1001bc605ca.
2013-02-20bits/nan.h: Change __attribute_used__ to __attribute__ ((unused)).Thomas Schwinge
2013-02-20Add missing __attribute_used__.Thomas Schwinge
Generic IEEE 754 file has been changed in commit b575c52b86fe0c00adec925e356eb72cf95b23a7.
2013-02-20Align to generic file.Thomas Schwinge
2013-02-11Add CFI information for MIPS assembly sources.Joseph Myers
2013-02-08Use ENTRY and END in more MIPS .S files.Joseph Myers
2013-01-252013-01-25 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* sysdeps/mips/memmove.c: Remove.
2013-01-08Fix trailing blank.Steve Ellcey
2013-01-082013-01-08 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* sysdeps/mips/memcpy.S: Change prefetch hint, reorder partial loads and stores, set and use MAX_PREFETCH_SIZE.
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2013-01-01Add script to update copyright notices and reformat some to facilitate its use.Joseph Myers
2012-12-04Fix warnings from MIPS soft-float _FPU_GETCW.Joseph Myers
2012-11-30Update MIPS libm-test-ulps.Joseph Myers
2012-11-29Add 64-bit support to MIPS register-dump.h (bug 14893).Joseph Myers
2012-11-21Cast to uintptr_t in MIPS jmpbuf-unwind.h.Joseph Myers
2012-11-21Add sotruss-lib.c for MIPS.Joseph Myers
2012-11-20Fix int-to-pointer-cast warnings for MIPS.Joseph Myers
2012-11-20Fix warnings from aborting MIPS atomic macros.Joseph Myers
2012-11-20Fix unused-variable warnings from MIPS RESOLVE_GOTSYM macro.Joseph Myers