Messages in this thread | | | Date | Tue, 12 Oct 2021 23:51:38 +0200 | From | Borislav Petkov <> | Subject | Re: [PATCH] tools/nolibc: x86: Remove `r8`, `r9` and `r10` from the clobber list |
| |
On Tue, Oct 12, 2021 at 10:29:55PM +0200, Borislav Petkov wrote: > On Tue, Oct 12, 2021 at 11:06:38AM +0200, Willy Tarreau wrote: > > Let's indeed wait for any of the x86 maintainers to confirm your > > analysis. > > I guess the official doc you guys are looking for is the x86-64 ABI: > > https://gitlab.com/x86-psABIs/x86-64-ABI/ > > and recent pdfs are here: > > https://gitlab.com/x86-psABIs/x86-64-ABI/-/wikis/x86-64-psABI > > and there you scroll to > > "A.2 AMD64 Linux Kernel Conventions > > ... > > A.2.1 Calling Conventions" > > and that section explains which regs go where.
Ok, that didn't point to the exact answer - I realize now. I believe what you're looking for in that doc is "Figure 3.4: Register Usage" which has a column "callee saved" and says that the syscall arg registers are all not callee-saved.
And I think that table is valid for the kernel too because the link to it says "The Linux AMD64 kernel uses internally the same calling conventions as user-level applications (see section 3.2.3 for details)."
HTH.
-- Regards/Gruss, Boris.
https://people.kernel.org/tglx/notes-about-netiquette
| |