glibc/sysdeps/sparc/sparc32
Aurelien Jarno 2cbec36566 SPARC: fix nearbyint on sNaN input
nearbyint and nearbyintf should not trigger inexact exceptions, but
should still trigger an invalid exception for a sNaN input.

The SPARC specific implementations of these functions save the FSR at
the beginning of the function and restore it at the end to not trigger
an inexact exception. This however doesn't work for an sNaN input which
need to trigger an invalid exception. Fix that by adding a fcmp
instruction using the input value before saving FSR, so that an invalid
exception is triggered for a sNaN input.

This fixes the math/test-nearbyint-except test on SPARC.

Changelog:
	* sparc/sparc32/sparcv9/fpu/s_nearbyint.S (__nearbyint): Trigger an
	invalid exception for a sNaN input.
	* sparc/sparc32/sparcv9/fpu/s_nearbyintf.S (__nearbyintf): Likewise.
	* sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
	(__nearbyint_vis3): Likewise
	* sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
	(__nearbyintf_vis3): Likewise
	* sparc/sparc64/fpu/s_nearbyint.S (__nearbyint): Likewise.
	* sparc/sparc64/fpu/s_nearbyintf.S (__nearbyintf): Likewise.
	* sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S (__nearbyint_vis3):
	Likewise.
	* sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S (__nearbyintf_vis3):
	Likewise.
2016-07-01 16:36:41 +02:00
..
bits Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fpu Define __sqrtl_finite on sparc 32-bit with correct symbol version. 2016-01-25 16:07:15 -08:00
soft-fp Fix missing __sqrtl_finite symbol in libm on sparc 32-bit. 2016-01-24 21:14:12 -08:00
sparcv8 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sparcv9 SPARC: fix nearbyint on sNaN input 2016-07-01 16:36:41 +02:00
__longjmp.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
add_n.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
addmul_1.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
alloca.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
atomic-machine.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
backtrace.h Use libgcc unwinder for sparc backtraces, if available. 2013-01-21 14:15:30 -08:00
bsd-_setjmp.S
bsd-setjmp.S
bzero.c
divrem.m4
dl-irel.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-machine.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-plt.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-trampoline.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dotmul.S Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
e_sqrt.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ieee754.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Implies * math/math.h [__NO_LONG_DOUBLE_MATH] (__nldbl_nexttowardf): New 2006-01-14 12:10:44 +00:00
jmpbuf-offsets.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lll_timedlock_wait.c Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
lll_timedwait_tid.c Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
lowlevellock.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lshift.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Makefile Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memchr.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memcpy.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memset.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mul_1.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
pthread_barrier_wait.c New pthread_barrier algorithm to fulfill barrier destruction requirements. 2016-01-15 21:20:34 +01:00
pthread_spin_lock.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
pthread_spin_trylock.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
pthreaddef.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
rem.S Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
rshift.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sdiv.S Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
sem_init.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sem_open.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sem_post.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sem_wait.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sem_waitcommon.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
setjmp.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stackguard-macros.h BZ #15754: CVE-2013-4788 2013-09-23 00:52:09 -04:00
start.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stpcpy.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcat.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strchr.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcmp.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strcpy.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strlen.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strrchr.c
sub_n.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
submul_1.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tls-macros.h Split tls-macros.h into sysdeps directories. 2012-07-17 11:30:58 +00:00
tst-audit.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
udiv.S Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
umul.S
urem.S Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
Versions Define __sqrtl_finite on sparc 32-bit with correct symbol version. 2016-01-25 16:07:15 -08:00