diff options
author | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2020-12-24 07:57:25 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2020-12-30 10:52:45 +0530 |
commit | 7525c1c71d38c068a33ca964fe8baf67eed7e56f (patch) | |
tree | f82dffae47aec6241401c7870a4e4b787e3b4157 /sysdeps/x86/fpu | |
parent | 99468ed45f5a58f584bab60364af937eb6f8afda (diff) | |
download | glibc-7525c1c71d38c068a33ca964fe8baf67eed7e56f.tar.gz glibc-7525c1c71d38c068a33ca964fe8baf67eed7e56f.tar.xz glibc-7525c1c71d38c068a33ca964fe8baf67eed7e56f.zip |
x86 long double: Consider pseudo numbers as signaling
Add support to treat pseudo-numbers specially and implement x86 version to consider all of them as signaling. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'sysdeps/x86/fpu')
-rw-r--r-- | sysdeps/x86/fpu/nan-pseudo-number.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/sysdeps/x86/fpu/nan-pseudo-number.h b/sysdeps/x86/fpu/nan-pseudo-number.h new file mode 100644 index 0000000000..ea43b175a1 --- /dev/null +++ b/sysdeps/x86/fpu/nan-pseudo-number.h @@ -0,0 +1,30 @@ +/* Pseudo-normal number handling. x86 version. + Copyright (C) 2020 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 + <https://www.gnu.org/licenses/>. */ + +#ifndef NAN_PSEUDO_NUMBER_H +#define NAN_PSEUDO_NUMBER_H 1 + +#define HANDLE_PSEUDO_NUMBERS 1 +/* Pseudo numbers on x86 are always signaling. */ +static inline int +is_pseudo_signaling (uint32_t exi, uint32_t hxi) +{ + return ((exi & 0x7fff) && ((hxi & 0x80000000) == 0)); +} + +#endif /* nan-pseudo-number.h */ |