aboutsummaryrefslogtreecommitdiff
path: root/ports/ChangeLog.mips
AgeCommit message (Collapse)Author
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-20Remove trailing space.Steve Ellcey
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-29Use ELFOSABI_GNU instead of ELFOSABI_LINUX.Thomas Schwinge
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-27_dl_static_init: Remove nested locking.Maciej W. Rozycki
This function is now called from dl_open_worker with the GL(dl_load_lock) lock held and no longer needs local protection. GL(dl_load_lock) also correctly protects _dl_lookup_symbol_x called here that relies on the caller to have serialized access to the data structures it uses.
2013-06-15New API to set default thread attributesSiddhesh Poyarekar
This patch introduces two new convenience functions to set the default thread attributes used for creating threads. This allows a programmer to set the default thread attributes just once in a process and then run pthread_create without additional attributes.
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-29Fix ChangeLog formattingSiddhesh Poyarekar
2013-05-22Update bits/siginfo.h with Linux hwpoison SIGBUS changesEdjunior Barbosa Machado
Adds new SIGBUS error codes for hardware poison signals, syncing with the current kernel headers (v3.9). It also adds si_trapno field for alpha.
2013-05-22Don't include expected results in libm-test test names.Joseph Myers
2013-05-21Fix MIPS n32 cancellation in static libc (bug 15506).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-21Use LIBC_CONFIG_VAR for MIPS default-abi setting.Joseph Myers
2013-03-15Avoid duplicate MAP_ANONYMOUS definition for MIPS GNU/Linux.Thomas Schwinge
Follow-up to commit 664a9ce4ca40feabff781fff044c93a43ae15b59.
2013-03-06Use <bits/mman-linux.h> for MIPSAndreas Jaeger
* sysdeps/unix/sysv/linux/bits/mman-linux.h (MAP_ANONYMOUS): Allow definition via __MAP_ANONYMOUS. * sysdeps/unix/sysv/linux/mips/bits/mman.h: Remove all defines provided by bits/mman-linux.h and include <bits/mman-linux.h>. (__MAP_ANONYMOUS): Define.
2013-03-06Sync with Linux 3.8Andreas Jaeger
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-20Properly sort a libc.abilist file.Thomas Schwinge
Inconsistency introduced in commit 84b3fd8407cc9a2e7f487b6247681bd8a78a4560.
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-19Add FUTEX_*_REQUEUE_PI support for MIPS.Joseph Myers
2013-02-18C++11 thread_local destructors supportSiddhesh Poyarekar
This feature is specifically for the C++ compiler to offload calling thread_local object destructors on thread program exit, to glibc. This is to overcome the possible complication of destructors of thread_local objects getting called after the DSO in which they're defined is unloaded by the dynamic linker. The DSO is marked as 'unloadable' if it has a constructed thread_local object and marked as 'unloadable' again when all the constructed thread_local objects defined in it are destroyed.
2013-02-13Remove __ptrvalue, __bounded and __unbounded.Joseph Myers
2013-02-11Add CFI information for MIPS assembly sources.Joseph Myers
2013-02-08Remove CHECK_N and bp-checks.h.Joseph Myers
2013-02-08Use ENTRY and END in more MIPS .S files.Joseph Myers
2013-02-08Remove CHECK_1 and CHECK_1_NULL_OK.Joseph Myers
2013-02-05MIPS: Correct formatting of syscall wrapper `asm' specifiers.Maciej W. Rozycki
2013-02-05MIPS: Respect the legacy syscall restart convention.Maciej W. Rozycki
That convention requires the instruction immediately preceding SYSCALL to initialize $v0 with the syscall number. Then if a restart triggers, $v0 will have been clobbered by the syscall interrupted, and needs to be reinititalized. The kernel will decrement the PC by 4 before switching back to the user mode so that $v0 has been reloaded before SYSCALL is executed again. This implies the place $v0 is loaded from must be preserved across a syscall, e.g. an immediate, static register, stack slot, etc. The restriction was lifted with Linux 2.6.36 kernel release and no special requirements are placed around the SYSCALL instruction anymore, however we still support older kernel binaries.