Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fix MIPS libc_feresetround*_ctx to preserve exceptions. | Joseph Myers | 2014-03-11 | 1 | -10/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Testing on mips64 showed missing underflow exceptions (from exp, for example) in non-default rounding modes, caused by libc_feresetround*_ctx wrongly restoring a saved environment without preserving exceptions, when that's only valid for the _noex variants. (I don't know why Steve didn't see this in his testing.) This patch fixes this by using libc_feupdateenv_mips_ctx for the relevant macros and removing the problem definitions. The problem definitions aren't suitable for the _noex macros either because they only discard exceptions in non-default rounding modes, and while for some uses of *_noex/*_NOEX it doesn't matter whether exceptions are discarded, dbl-64/e_remainder.c requires SET_RESTORE_ROUND_NOEX to cause exceptions to be discarded. I think the accumulated set of macros / functions for optimized exception / rounding mode handling could do with a careful review by now, and possible refactoring, and at least one new feature (extracting the saved rounding mode from an environment / context variable - see dbl-64/e_sqrt.c for a case where this could be used). Tested mips64. * sysdeps/mips/math_private.h [__mips_hard_float] (libc_feresetround_ctx): Define to libc_feupdateenv_mips_ctx not libc_feresetround_mips_ctx. [__mips_hard_float] (libc_feresetroundf_ctx): Likewise. [__mips_hard_float] (libc_feresetroundl_ctx): Likewise. [__mips_hard_float] (libc_feresetround_mips_ctx): Remove. | ||||
* | Add macros and inline functions to mips math_private.h file. | Steve Ellcey | 2014-02-26 | 1 | -8/+128 |
| | | | | | | This is a patch to the MIPS math_private.h file to define HAVE_RM_CTX and implement the ctx macros. I also defined a few other macros and inline functions that I skipped the first time. | ||||
* | Move mips from ports to libc. | Joseph Myers | 2014-02-10 | 1 | -0/+139 |
I've moved the MIPS port from ports to the main sysdeps hierarchy. Beyond the README update, the move of the files was simply git mv ports/sysdeps/mips sysdeps/mips git mv ports/sysdeps/unix/mips sysdeps/unix/mips git mv ports/sysdeps/unix/sysv/linux/mips sysdeps/unix/sysv/linux/mips and in addition to the ChangeLog entries here, I put a note at the top of ports/ChangeLog.mips similar to those in other files. Tested that disassembly of installed shared libraries for mips is the same before and after this patch (except for ld.so where paths in assertions are involved, as for arm). * sysdeps/mips: Move directory from ports/sysdeps/mips. * sysdeps/unix/mips: Move directory from ports/sysdeps/unix/mips. * sysdeps/unix/sysv/linux/mips: Move directory from ports/sysdeps/unix/sysv/linux/mips. * README: Update listing for mips-*-linux-gnu and mips64-*-linux-gnu. * sysdeps/mips: Move directory to ../sysdeps/mips. * sysdeps/unix/mips: Move directory to ../sysdeps/unix/mips. * sysdeps/unix/sysv/linux/mips: Move directory to ../sysdeps/unix/sysv/linux/mips. |