[PATCH] i386: Use fldt instead of fld on e_logl.S

H.J. Lu hjl.tools@gmail.com
Fri Aug 5 16:55:11 GMT 2022


On Fri, Aug 5, 2022 at 5:28 AM Adhemerval Zanella Netto
<adhemerval.zanella@linaro.org> wrote:
>
>
>
> On 04/08/22 18:35, H.J. Lu wrote:
> > On Thu, Aug 4, 2022 at 2:31 PM Fangrui Song <maskray@google.com> wrote:
> >>
> >> On Thu, Aug 4, 2022 at 2:24 PM H.J. Lu <hjl.tools@gmail.com> wrote:
> >>>
> >>> On Thu, Aug 4, 2022 at 2:00 PM Adhemerval Zanella
> >>> <adhemerval.zanella@linaro.org> wrote:
> >>>>
> >>>> Clang cannot assemble fldt in the AT&T dialect mode.
> >>>> ---
> >>>>  sysdeps/i386/i686/fpu/e_logl.S | 4 ++--
> >>>>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>>>
> >>>> diff --git a/sysdeps/i386/i686/fpu/e_logl.S b/sysdeps/i386/i686/fpu/e_logl.S
> >>>> index 63183ac544..5d53f3bb22 100644
> >>>> --- a/sysdeps/i386/i686/fpu/e_logl.S
> >>>> +++ b/sysdeps/i386/i686/fpu/e_logl.S
> >>>> @@ -43,7 +43,7 @@ ENTRY(__ieee754_logl)
> >>>>         fsubl   MO(one)         // x-1 : x : log(2)
> >>>>  5:     fld     %st             // x-1 : x-1 : x : log(2)
> >>>>         fabs                    // |x-1| : x-1 : x : log(2)
> >>>> -       fld     MO(limit)       // 0.29 : |x-1| : x-1 : x : log(2)
> >>>> +       fldt    MO(limit)       // 0.29 : |x-1| : x-1 : x : log(2)
> >>>>         fcomip  %st(1)          // |x-1| : x-1 : x : log(2)
> >>>>         fstp    %st(0)          // x-1 : x : log(2)
> >>>>         jc      2f
> >>>> @@ -76,7 +76,7 @@ ENTRY(__logl_finite)
> >>>>         fsubl   MO(one)         // x-1 : x : log(2)
> >>>>         fld     %st             // x-1 : x-1 : x : log(2)
> >>>>         fabs                    // |x-1| : x-1 : x : log(2)
> >>>> -       fld     MO(limit)       // 0.29 : |x-1| : x-1 : x : log(2)
> >>>> +       fldt    MO(limit)       // 0.29 : |x-1| : x-1 : x : log(2)
> >>>>         fcomip  %st(1)          // |x-1| : x-1 : x : log(2)
> >>>>         fstp    %st(0)          // x-1 : x : log(2)
> >>>>         jc      2b
> >>>> --
> >>>> 2.34.1
> >>>>
> >>>
> >>> I don't think this is correct since there are
> >>>
> >>>         .type limit,@object
> >>> limit:  .double 0.29
> >>>
> >>> It should be fldl.
> >>>
> >>> --
> >>> H.J.
> >>
> >> If I am not mistaken, the existing fld has a bug as it is treated as flds
> >
> > True.  It doesn't seem to cause any issue.
> >
> >> fld limit@GOTOFF(%edx)    # treated as flds
> >> flds limit@GOTOFF(%edx)
> >> fldl limit@GOTOFF(%edx)
> >> fldt limit@GOTOFF(%edx)
> >>
> >> .section .rodata.cst8,"aM",@progbits,8
> >> .p2align 3
> >> limit: .double 0.29
>
> fldl works and it see the best option.  Ok with this change?

Yes.

Thanks.

-- 
H.J.


More information about the Libc-alpha mailing list