#include .extern amd64_syscall_dispatch .global amd64_syscall_entry amd64_syscall_entry: movq %rsp, %gs:0 movq %gs:8, %rsp pushq $0x1b pushq %gs:0 pushq %r11 pushq $0x23 pushq %rcx pushq $0 pushq $0 push_regs movw $0x10, %ax movw %ax, %ds movw %ax, %es movw %ax, %ss cld movq %rsp, %rdi movq %cr3, %rax; pushq %rax movq %rsp, %rbp subq $8, %rsp andq $-16, %rsp callq amd64_syscall_dispatch movq %rbp, %rsp popq %rax; movq %rax, %cr3 pop_regs_skip_rax addq $56, %rsp movq %gs:0, %rsp sysretq