PowerPC floating point little-endian [10 of 15]
authorAlan Modra <amodra@gmail.com>
Sat, 17 Aug 2013 09:00:23 +0000 (18:30 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 4 Oct 2013 01:05:10 +0000 (10:35 +0930)
commitda13146da10360436941e843834c90a9aef5fd7a
treeb31adbca1c370169d672974f30050ef91444017c
parent603e84104cdc709c8e7dcbac54b9a585bf8dff78
PowerPC floating point little-endian [10 of 15]
http://sourceware.org/ml/libc-alpha/2013-07/msg00201.html

These two functions oddly test x+1>0 when a double x is >= 0.0, and
similarly when x is negative.  I don't see the point of that since the
test should always be true.  I also don't see any need to convert x+1
to integer rather than simply using xr+1.  Note that the standard
allows these functions to return any value when the input is outside
the range of long long, but it's not too hard to prevent xr+1
overflowing so that's what I've done.

(With rounding mode FE_UPWARD, x+1 can be a lot more than what you
might naively expect, but perhaps that situation was covered by the
x - xrf < 1.0 test.)

* sysdeps/powerpc/fpu/s_llround.c (__llround): Rewrite.
* sysdeps/powerpc/fpu/s_llroundf.c (__llroundf): Rewrite.
ChangeLog
sysdeps/powerpc/fpu/s_llround.c
sysdeps/powerpc/fpu/s_llroundf.c