From 7525c1c71d38c068a33ca964fe8baf67eed7e56f Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Thu, 24 Dec 2020 07:57:25 +0530 Subject: 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 --- sysdeps/x86/fpu/nan-pseudo-number.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 sysdeps/x86/fpu/nan-pseudo-number.h (limited to 'sysdeps/x86/fpu') 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 + . */ + +#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 */ -- cgit v1.2.3