.extern syscall_handler .macro pushall push %rax push %rbx push %rcx push %rdx push %rsi push %rdi push %r8 push %r9 push %r10 push %r11 push %r12 push %r13 push %r14 push %r15 .endm .macro popall pop %r15 pop %r14 pop %r13 pop %r12 pop %r11 pop %r10 pop %r9 pop %r8 pop %rdi pop %rsi pop %rdx pop %rcx pop %rbx pop %rax .endm .global __syscall __syscall: pushq %rcx pushq %r11 pushall call syscall_handler popall popfq popq %rcx sysretq