about summary refs log tree commit diff
path: root/sysdeps/mips/math-tests.h
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-02-13 00:46:45 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-02-13 00:46:45 +0000
commit743151aeaedc113900805523195fc3d9cff0bdb6 (patch)
tree3450555292a73671cbb58b909a7ecb4714b94d29 /sysdeps/mips/math-tests.h
parent498afc54dfee41d33ba519f496e96480badace8e (diff)
downloadglibc-743151aeaedc113900805523195fc3d9cff0bdb6.tar.gz
glibc-743151aeaedc113900805523195fc3d9cff0bdb6.tar.xz
glibc-743151aeaedc113900805523195fc3d9cff0bdb6.zip
Update MIPS math-tests.h for GCC 4.9 using soft-fp.
GCC trunk now uses soft-fp for MIPS64 long double, so supporting
integration with hardware exceptions and rounding modes.  This patch
updates MIPS math-tests.h accordingly not to disable exception and
rounding mode tests in this case.

Tested mips64 and ulps updated to reflect the newly run tests.

	* sysdeps/mips/math-tests.h: Include <features.h>.
	[!__mips_soft_float && _MIPS_SIM != _ABIO32 && __GNUC_PREREQ (4, 9)]
	(ROUNDING_TESTS_long_double): Do not define.
	[!__mips_soft_float && _MIPS_SIM != _ABIO32 && __GNUC_PREREQ (4, 9)]
	(EXCEPTION_TESTS_long_double): Likewise.
	* sysdeps/mips/mips64/libm-test-ulps: Update.
Diffstat (limited to 'sysdeps/mips/math-tests.h')
-rw-r--r--sysdeps/mips/math-tests.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/sysdeps/mips/math-tests.h b/sysdeps/mips/math-tests.h
index 7be132685b..3f6ae3fc29 100644
--- a/sysdeps/mips/math-tests.h
+++ b/sysdeps/mips/math-tests.h
@@ -16,12 +16,13 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <features.h>
 #include <sgidefs.h>
 
 /* MIPS soft float does not support exceptions and rounding modes, and
-   long double when wider than double is implemented using fp-bit
-   which does not integrate with hardware exceptions and rounding
-   modes.  */
+   before GCC 4.9 long double when wider than double is implemented
+   using fp-bit which does not integrate with hardware exceptions and
+   rounding modes.  */
 #ifdef __mips_soft_float
 # define ROUNDING_TESTS_float(MODE)	((MODE) == FE_TONEAREST)
 # define ROUNDING_TESTS_double(MODE)	((MODE) == FE_TONEAREST)
@@ -29,7 +30,7 @@
 # define EXCEPTION_TESTS_float	0
 # define EXCEPTION_TESTS_double	0
 # define EXCEPTION_TESTS_long_double	0
-#elif _MIPS_SIM != _ABIO32
+#elif _MIPS_SIM != _ABIO32 && !__GNUC_PREREQ (4, 9)
 # define ROUNDING_TESTS_long_double(MODE)	((MODE) == FE_TONEAREST)
 # define EXCEPTION_TESTS_long_double	0
 #endif