1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-11-28 08:02:54 +00:00

linux(4): Add a comment explaining registers at syscall entry point on amd64

Differential Revision:	https://reviews.freebsd.org/D40153
MFC after:		1 month
This commit is contained in:
Dmitry Chagin 2023-05-28 17:06:05 +03:00
parent a99b890ecd
commit a463dd8108

View File

@ -124,6 +124,23 @@ LINUX_VDSO_SYM_INTPTR(kern_timekeep_base);
LINUX_VDSO_SYM_INTPTR(kern_tsc_selector);
LINUX_VDSO_SYM_INTPTR(kern_cpu_selector);
/*
* According to the Intel x86 ISA 64-bit syscall
* saves %rip to %rcx and rflags to %r11. Registers on syscall entry:
* %rax system call number
* %rcx return address
* %r11 saved rflags
* %rdi arg1
* %rsi arg2
* %rdx arg3
* %r10 arg4
* %r8 arg5
* %r9 arg6
*
* Then FreeBSD fast_syscall() move registers:
* %rcx -> trapframe.tf_rip
* %r10 -> trapframe.tf_rcx
*/
static int
linux_fetch_syscall_args(struct thread *td)
{