Messages in this thread | | | Date | Sat, 23 Oct 2021 13:40:59 -0700 | Subject | Re: [PATCH] tools/nolibc: x86: Remove `r8`, `r9` and `r10` from the clobber list | From | "H. Peter Anvin" <> |
| |
On 10/13/21 05:43, Borislav Petkov wrote: > On Wed, Oct 13, 2021 at 05:23:11AM +0700, Ammar Faizi wrote: >> "Figure 3.4: Register Usage" is not the answer, if it were, nolibc.h >> would be broken as it is missing "rdi", "rsi", "rdx" in the clobber list. > > It is not about what happens in practice but what the contract is: > syscall argument registers can potentially get clobbered and userspace > should treat them as such. Because if the kernel decides to actually > clobber them for whatever reason and some userspace thing thinks > otherwise, then it is the userspace thing's problem as it doesn't adhere > to the well known ABI. >
Currently the kernel doesn't, but some past kernels have zeroed some of these registers rather than preserving them.
-hpa
| |