[PATCH] i386: Use fldt instead of fld on e_logl.S
H.J. Lu
hjl.tools@gmail.com
Thu Aug 4 21:35:45 GMT 2022
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
--
H.J.
More information about the Libc-alpha
mailing list