diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-08-01 11:21:16 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-08-01 11:21:16 +0000 |
commit | 46f8cf57122c5ec91415c7a8ded3b3f76b4d4610 (patch) | |
tree | 3200390e1647260c9e0d249fe47bd1c643c70a75 | |
parent | c0e7e2c127cf6d90c4ba86be11b09f45530bf8be (diff) | |
download | glibc-46f8cf57122c5ec91415c7a8ded3b3f76b4d4610.tar.gz glibc-46f8cf57122c5ec91415c7a8ded3b3f76b4d4610.tar.xz glibc-46f8cf57122c5ec91415c7a8ded3b3f76b4d4610.zip |
Move SNAN_TESTS_PRESERVE_PAYLOAD out of math-tests.h.
Continuing moving macros out of math-tests.h to smaller headers following typo-proof conventions instead of using #ifndef, this patch moves SNAN_TESTS_PRESERVE_PAYLOAD out to its own sysdeps header. Tested with build-many-glibcs.py. * sysdeps/generic/math-tests-snan-payload.h: New file. * sysdeps/hppa/math-tests-snan-payload.h: Likewise. * sysdeps/mips/math-tests-snan-payload.h: Likewise. * sysdeps/riscv/math-tests-snan-payload.h: Likewise. * sysdeps/generic/math-tests.h: Include <math-tests-snan-payload.h>. (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here. * sysdeps/hppa/math-tests.h: Remove file. * sysdeps/mips/math-tests.h [!__mips_nan2008] (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here. * sysdeps/riscv/math-tests.h (SNAN_TESTS_PRESERVE_PAYLOAD): Likewise.
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | sysdeps/generic/math-tests-snan-payload.h | 28 | ||||
-rw-r--r-- | sysdeps/generic/math-tests.h | 9 | ||||
-rw-r--r-- | sysdeps/hppa/math-tests-snan-payload.h (renamed from sysdeps/hppa/math-tests.h) | 7 | ||||
-rw-r--r-- | sysdeps/mips/math-tests-snan-payload.h | 30 | ||||
-rw-r--r-- | sysdeps/mips/math-tests.h | 6 | ||||
-rw-r--r-- | sysdeps/riscv/math-tests-snan-payload.h | 26 | ||||
-rw-r--r-- | sysdeps/riscv/math-tests.h | 3 |
8 files changed, 103 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog index d0ac705919..c724d7dadc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,18 @@ 2018-08-01 Joseph Myers <joseph@codesourcery.com> + * sysdeps/generic/math-tests-snan-payload.h: New file. + * sysdeps/hppa/math-tests-snan-payload.h: Likewise. + * sysdeps/mips/math-tests-snan-payload.h: Likewise. + * sysdeps/riscv/math-tests-snan-payload.h: Likewise. + * sysdeps/generic/math-tests.h: Include + <math-tests-snan-payload.h>. + (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here. + * sysdeps/hppa/math-tests.h: Remove file. + * sysdeps/mips/math-tests.h [!__mips_nan2008] + (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here. + * sysdeps/riscv/math-tests.h (SNAN_TESTS_PRESERVE_PAYLOAD): + Likewise. + * sysdeps/generic/math-tests-snan-cast.h: New file. * sysdeps/powerpc/math-tests-snan-cast.h: Likewise. * sysdeps/generic/math-tests.h: Include <math-tests-snan-cast.h>. diff --git a/sysdeps/generic/math-tests-snan-payload.h b/sysdeps/generic/math-tests-snan-payload.h new file mode 100644 index 0000000000..ae63e6f30d --- /dev/null +++ b/sysdeps/generic/math-tests-snan-payload.h @@ -0,0 +1,28 @@ +/* Configuration for math tests: sNaN payloads. Generic version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _MATH_TESTS_SNAN_PAYLOAD_H +#define _MATH_TESTS_SNAN_PAYLOAD_H 1 + +/* Indicate whether operations on signaling NaNs preserve the payload + (if possible; it is not possible with a zero payload if the high + bit is set for signaling NaNs) when generating a quiet NaN, and + this should be tested. */ +#define SNAN_TESTS_PRESERVE_PAYLOAD 1 + +#endif /* math-tests-snan-payload.h. */ diff --git a/sysdeps/generic/math-tests.h b/sysdeps/generic/math-tests.h index 8f5f80635b..a768ab82e0 100644 --- a/sysdeps/generic/math-tests.h +++ b/sysdeps/generic/math-tests.h @@ -52,14 +52,6 @@ /* Return nonzero value if to run tests involving sNaN values for X. */ #define SNAN_TESTS(x) MATH_TESTS_TG (SNAN_TESTS_, , x) -/* Indicate whether operations on signaling NaNs preserve the payload - (if possible; it is not possible with a zero payload if the high - bit is set for signaling NaNs) when generating a quiet NaN, and - this should be tested. */ -#ifndef SNAN_TESTS_PRESERVE_PAYLOAD -# define SNAN_TESTS_PRESERVE_PAYLOAD 1 -#endif - /* Indicate whether to run tests involving a given rounding mode for a given floating-point type, given that fesetround succeeds for that mode. All are run if fesetround succeeds unless overridden. */ @@ -118,3 +110,4 @@ #endif #include <math-tests-snan-cast.h> +#include <math-tests-snan-payload.h> diff --git a/sysdeps/hppa/math-tests.h b/sysdeps/hppa/math-tests-snan-payload.h index 2fb3a55899..aa4e0a044f 100644 --- a/sysdeps/hppa/math-tests.h +++ b/sysdeps/hppa/math-tests-snan-payload.h @@ -1,4 +1,4 @@ -/* Configuration for math tests. hppa version. +/* Configuration for math tests: sNaN payloads. hppa version. Copyright (C) 2017-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -16,7 +16,10 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#ifndef HPPA_MATH_TESTS_SNAN_PAYLOAD_H +#define HPPA_MATH_TESTS_SNAN_PAYLOAD_H 1 + /* SNaN tests do not preserve payloads. */ #define SNAN_TESTS_PRESERVE_PAYLOAD 0 -#include_next <math-tests.h> +#endif /* math-tests-snan-payload.h. */ diff --git a/sysdeps/mips/math-tests-snan-payload.h b/sysdeps/mips/math-tests-snan-payload.h new file mode 100644 index 0000000000..cb2cae5729 --- /dev/null +++ b/sysdeps/mips/math-tests-snan-payload.h @@ -0,0 +1,30 @@ +/* Configuration for math tests: sNaN payloads. MIPS version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef MIPS_MATH_TESTS_SNAN_PAYLOAD_H +#define MIPS_MATH_TESTS_SNAN_PAYLOAD_H 1 + +/* NaN payload preservation when converting a signaling NaN to quiet + is only required in NAN2008 mode. */ +#ifdef __mips_nan2008 +# define SNAN_TESTS_PRESERVE_PAYLOAD 1 +#else +# define SNAN_TESTS_PRESERVE_PAYLOAD 0 +#endif + +#endif /* math-tests-snan-payload.h. */ diff --git a/sysdeps/mips/math-tests.h b/sysdeps/mips/math-tests.h index 941d38bdf0..8e0b98bfef 100644 --- a/sysdeps/mips/math-tests.h +++ b/sysdeps/mips/math-tests.h @@ -29,10 +29,4 @@ # define EXCEPTION_TESTS_long_double 0 #endif -/* NaN payload preservation when converting a signaling NaN to quiet - is only required in NAN2008 mode. */ -#ifndef __mips_nan2008 -# define SNAN_TESTS_PRESERVE_PAYLOAD 0 -#endif - #include_next <math-tests.h> diff --git a/sysdeps/riscv/math-tests-snan-payload.h b/sysdeps/riscv/math-tests-snan-payload.h new file mode 100644 index 0000000000..81849e2635 --- /dev/null +++ b/sysdeps/riscv/math-tests-snan-payload.h @@ -0,0 +1,26 @@ +/* Configuration for math tests: sNaN payloads. RISC-V version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef RISCV_MATH_TESTS_SNAN_PAYLOAD_H +#define RISCV_MATH_TESTS_SNAN_PAYLOAD_H 1 + +/* RISC-V floating-point instructions do not preserve NaN + payloads. */ +#define SNAN_TESTS_PRESERVE_PAYLOAD 0 + +#endif /* math-tests-snan-payload.h. */ diff --git a/sysdeps/riscv/math-tests.h b/sysdeps/riscv/math-tests.h index 32a8356a78..3db33b0e9a 100644 --- a/sysdeps/riscv/math-tests.h +++ b/sysdeps/riscv/math-tests.h @@ -36,7 +36,4 @@ # define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST) #endif -/* RISC-V floating-point instructions do not preserve NaN payloads. */ -#define SNAN_TESTS_PRESERVE_PAYLOAD 0 - #include_next <math-tests.h> |