glibc/sysdeps/nacl
Joseph Myers 457663a7cd Add setpayloadsig, setpayloadsigf, setpayloadsigl.
TS 18661-1 defines functions for manipulating the payloads of NaNs.
This patch implements the setpayloadsig functions for glibc; these are
like the setpayload functions, but produce a signaling NaN instead of
a quiet NaN.

The substance of the implementation was included with the setpayload
implementation, so the new files here just need to wrap the main files
with different defines to build the new functions.

Because the functions store a signaling NaN via a pointer and the
libm-test macros choose a suitable initial value for the variable in
such a case by comparing with the expected value, the relevant macro
needs to clear exceptions after FE_INVALID may have been raised by
that comparison.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(setpayloadsig): New declaration.
	* math/Versions (setpayloadsig): New libm symbol at version
	GLIBC_2.25.
	(setpayloadsigf): Likewise.
	(setpayloadsigl): Likewise.
	* math/Makefile (libm-calls): Add s_setpayloadsigF.
	* math/libm-test.inc (RUN_TEST_Ff_b1): Call feclearexcept
	(FE_ALL_EXCEPT) after initializing EXTRA_VAR.
	(setpayloadsig_test_data): New array.
	(setpayloadsig_test): New function.
	(main): Call setpayloadsig_test.
	* manual/arith.texi (FP Bit Twiddling): Document setpayloadsig,
	setpayloadsigf and setpayloadsigl.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/ieee754/dbl-64/s_setpayloadsig.c: New file.
	* sysdeps/ieee754/flt-32/s_setpayloadsigf.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
	setpayloadsig.
	(CFLAGS-nldbl-setpayloadsig.c): New variable.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2016-11-24 23:56:48 +00:00
..
bits Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
_exit.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
access.c New internal function __access_noerrno 2016-11-16 15:53:58 -02:00
backtrace.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
brk.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
chdir.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
check_fds.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
chmod.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
clock_getres.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
clock_gettime.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
clock.c NaCl: Fix compile error in clock function. 2016-09-02 16:56:35 -07:00
close.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
configure Add arm-nacl port. 2015-04-17 09:02:19 -07:00
configure.ac Add arm-nacl port. 2015-04-17 09:02:19 -07:00
createthread.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-fileid.h Factor file identity rules out of generic rtld code. 2015-07-14 13:15:26 -07:00
dl-map-segments.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-osinfo.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-sysdep-open.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-sysdep.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-sysdep.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-unmap-segments.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-writev.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dup2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dup.c NaCl: Fix compile error for __dup after libc_hidden_proto addition. 2016-09-02 16:58:42 -07:00
entry.h Add arm-nacl port. 2015-04-17 09:02:19 -07:00
errnos.awk Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
euidaccess.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
exit-thread.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fchdir.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fchmod.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fdatasync.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fdopendir.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fork.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
fsync.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ftruncate64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
ftruncate.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
futex-internal.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fxstat64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
fxstat.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getcwd.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getdents64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
getdents.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getdtsz.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gethostname.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getpagesize.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
getpid.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getsysstats.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gettimeofday.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
glob64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
glob.c Make sysdeps/posix bring in login subdir. 2015-07-23 17:04:22 -07:00
ifaddrs.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
Implies Add arm-nacl port. 2015-04-17 09:02:19 -07:00
init-first.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
iofdopen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
irt.sed Add arm-nacl port. 2015-04-17 09:02:19 -07:00
isatty.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
kernel-features.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ld.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
ldsodefs.h Fix build with HAVE_AUX_VECTOR 2016-04-11 10:27:25 +02:00
libanl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libBrokenLocale.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libc-start.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
libcrypt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libdl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libm.abilist Add setpayloadsig, setpayloadsigf, setpayloadsigl. 2016-11-24 23:56:48 +00:00
libpthread.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libresolv.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
librt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libutil.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
link.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lll_timedlock_wait.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lll_timedwait_tid.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lowlevellock-futex.h NaCl: Fix unused variable errors in lowlevellock-futex.h macros. 2016-01-20 13:57:14 -08:00
lowlevellock.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lseek64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
lseek.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lxstat64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
lxstat.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Makefile Remove the ptw-% patterns 2016-09-14 16:02:06 +02:00
mkdir.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mmap64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
mmap.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mprotect.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
munmap.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nacl_interface_ext_supply.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nacl_interface_query.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nacl-after-link.sh Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nacl-interface-list.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nacl-interface-table.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nacl-interfaces.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nacl-interfaces.h New internal function __access_noerrno 2016-11-16 15:53:58 -02:00
nacl-interfaces.mk.in Add arm-nacl port. 2015-04-17 09:02:19 -07:00
nacl-test-wrapper.sh Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nanosleep.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
open64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
open.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
preconfigure Add arm-nacl port. 2015-04-17 09:02:19 -07:00
profil.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
pthread_condattr_setclock.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
pthread-pids.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
read.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
readdir64_r.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
readdir64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
readdir_r.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
readdir.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
readlink.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
rename.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
rmdir.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sched_yield.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
shlib-versions Add arm-nacl port. 2015-04-17 09:02:19 -07:00
sigaction.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
sprofil.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
start.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Subdirs Add arm-nacl port. 2015-04-17 09:02:19 -07:00
symlink.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tls.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
truncate64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
truncate.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
uname-values.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unlink.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
utimes.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Versions NaCl: Implement nacl_interface_ext_supply entry point. 2015-06-03 13:51:11 -07:00
write.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
xstat64.c Add arm-nacl port. 2015-04-17 09:02:19 -07:00
xstat.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
xstatconv.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
xstatconv.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00