On Fri, Feb 7, 2014 at 3:49 PM, Mark Kettenis <mark.kette...@xs4all.nl> wrote:
>> Date: Thu, 6 Feb 2014 23:07:58 -0800
>> From: Martynas Venckus <marty...@venck.us>
>>
>> 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;
>

Just tested, and this one works too, of course...

I'd be happy if this or the other one could be committed.

ciao,
David

Reply via email to