On Mon, Mar 19, 2018 at 8:53 AM, David Laight <david.lai...@aculab.com> wrote: > > The x87 and SSE registers can't be changed - they can contain callee-saved > registers. > But (IIRC) the AVX and AVX2 registers are all caller-saved.
No. The kernel entry is not the usual function call. On kernel entry, *all* registers are callee-saved. Of course, some may be return values, and I have a slight hope that I can trash %eflags. But basically, a system call is simply not a function call. We have different calling conventions on the argument side too. In fact, the arguments are in different registers depending on just *which* system call you take. Linus