Re: [PATCH] tools/nolibc: x86: Remove `r8`, `r9` and `r10` from the clobber list

From: Ammar Faizi
Date: Thu Oct 14 2021 - 04:49:06 EST


On Wed, Oct 13, 2021 at 11:52 PM Borislav Petkov <bp@xxxxxxxxx> wrote:
>
> On Wed, Oct 13, 2021 at 06:30:23PM +0200, Willy Tarreau wrote:
> > Hello Michael,
> >
> > On Wed, Oct 13, 2021 at 04:24:28PM +0000, Michael Matz wrote:
> > (...)
> > > In short:  Ammars initial claim:
> > >
> > > > Linux x86-64 syscall only clobbers rax, rcx and r11 (and "memory").
> > > >
> > > >   - rax for the return value.
> > > >   - rcx to save the return address.
> > > >   - r11 to save the rflags.
> > > >
> > > > Other registers are preserved.
> > >
> > > is accurate and I will clarify the psABI to make that explicit.
> >
> > Many thanks for this very detailed explanation! Ammar, I'll take your
> > patch.

Thanks all.

>
> Great, why are we dealing with some funky document when the law is in
> glibc sources?!
>
> :-)))
>
> Ammar, if you wanna fixup the comment in entry_64.S too - make sure you
> explain that glibc expects argument registers to be restored - I'll take
> that patch too.
>
> :-)

Yay! I will send a patch for it, on this or next week.

>
> Thx, that was fun.
>

--
Ammar Faizi