about summary refs log tree commit diff
path: root/sysdeps/nptl/librt-cancellation.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-05-27 17:31:21 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-05-27 17:31:21 +0000
commitdebf7618f68deed8b378beb199525d4467edb6d4 (patch)
tree7735fc554becbc3f0555369adc5dfdce33e4e549 /sysdeps/nptl/librt-cancellation.c
parentf64f68f53b2bd7c490f198b6da84f0ef41942aee (diff)
downloadglibc-debf7618f68deed8b378beb199525d4467edb6d4.tar.gz
glibc-debf7618f68deed8b378beb199525d4467edb6d4.tar.xz
glibc-debf7618f68deed8b378beb199525d4467edb6d4.zip
Fix powerpc32 ceil, rint etc. on sNaN input (bug 20160).
The powerpc32 versions of ceil, floor, round, trunc, rint, nearbyint
and their float versions return sNaN for sNaN input when they should
return qNaN.  This patch fixes them to add a NaN argument to itself to
quiet sNaNs before returning.  The powerpc64 versions, which have the
same bug, will be addressed separately.

Tested for powerpc32.

	[BZ #20160]
	* sysdeps/powerpc/powerpc32/fpu/s_ceil.S (__ceil): Add NaN
	argument to itself before returning the result.
	* sysdeps/powerpc/powerpc32/fpu/s_ceilf.S (__ceilf): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_floor.S (__floor): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_floorf.S (__floorf): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S (__nearbyint):
	Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S (__nearbyintf):
	Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_rint.S (__rint): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_rintf.S (__rintf): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_round.S (__round): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_roundf.S (__roundf): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_trunc.S (__trunc): Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_truncf.S (__truncf): Likewise.
Diffstat (limited to 'sysdeps/nptl/librt-cancellation.c')
0 files changed, 0 insertions, 0 deletions