[PATCH] x86: Clean up and improve FPU inline assembly

Uros Bizjak ubizjak@gmail.com
Wed Oct 8 05:54:22 GMT 2025


On Wed, Oct 8, 2025 at 12:32 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> On Sat, Sep 20, 2025 at 3:06 AM Uros Bizjak <ubizjak@gmail.com> wrote:
> >
> > On Fri, Sep 19, 2025 at 8:51 PM Uros Bizjak <ubizjak@gmail.com> wrote:
> > >
> > > On Fri, Sep 19, 2025 at 8:42 PM Adhemerval Zanella Netto
> > > <adhemerval.zanella@linaro.org> wrote:
> > > >
> > > >
> > > >
> > > > On 19/09/25 11:05, Uros Bizjak wrote:
> > > > > Clean up and improve x86 FPU inline assembly:
> > > > >
> > > > >   * Remove obsolete "*&" GCC asm memory operand workaround
> > > > >
> > > > >   * Use %v prefix to emit VEX prefixed insns for AVX targets
> > > > >
> > > > >   * Use \t and \n\t separators consistently
> > > >
> > > > I think this is not a really profitable change, it does not change
> > > > code generation and makes the history a bit harder to follow.
> > >
> > > I have considered the history issue, but please note that 90% of \t
> > > changes merge together with *& or \n\t changes. This is the reason I
> > > went for the complete change, so the code looks like I am used to from
> > > -S dumps from the compiler.
> > >
> > > Of course, this is not the hill I'm willing to die on, so \t change
> > > can easily be removed from the patch. The important changes are %v, *&
> > > removal and \n\t change.
> >
> > Perhaps some more info about \n\t change: GCC estimates the size of
> > inline asm by default by counting the number of "\n" characters.
> > Although due to the default IS_ASM_LOGICAL_LINE_SEPARATOR it also
> > counts ";", using \n is the most reliable way, because it can't be
> > overridden.
> >
> > Uros.
>
> Please submit a separate patch for the %v change.

This is already done in v2 [1] and [2] you already reviewed.

[1] https://sourceware.org/pipermail/libc-alpha/2025-September/170394.html
[2] https://sourceware.org/pipermail/libc-alpha/2025-September/170393.html

Uros.


More information about the Libc-alpha mailing list