> Date: Thu, 6 Feb 2014 23:07:58 -0800
> From: Martynas Venckus <[email protected]>
>
> Yup. Does this diff fix it for you?
Here's a diff that sticks a bit closer to the original code. It's
equivalent to your diff, and admittedly purely a matter of taste which
version to prefer.
Index: s_floorl.c
===================================================================
RCS file: /home/cvs/src/lib/libm/src/ld80/s_floorl.c,v
retrieving revision 1.2
diff -u -p -r1.2 s_floorl.c
--- s_floorl.c 25 Jul 2011 16:20:09 -0000 1.2
+++ s_floorl.c 7 Feb 2014 14:43:19 -0000
@@ -38,7 +38,7 @@ floorl(long double x)
if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
if(sx==0) {se=0;i0=i1=0;}
else if(((se&0x7fff)|i0|i1)!=0)
- { se=0xbfff;i0=i1=0;}
+ { se=0xbfff;i0=0x80000000;i1=0;}
}
} else {
i = (0x7fffffff)>>jj0;