diff options
| author | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-02-25 05:43:37 +0100 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-02-25 05:47:59 +0100 |
| commit | aaa23fffd02fb49cdbc56a480dbb5a8fa95bff38 (patch) | |
| tree | cefd59478bb62a2edca523adc9f10cec605f57b0 /kernel/src/sys | |
| parent | 4931f266a72dccfb439badfa1070563003c80ce3 (diff) | |
x86_64_regs.S: (push/pop)_(callee/caller)_regs
Diffstat (limited to 'kernel/src/sys')
| -rw-r--r-- | kernel/src/sys/syscall_asm.S | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/kernel/src/sys/syscall_asm.S b/kernel/src/sys/syscall_asm.S index 2e3c0bb..8287e95 100644 --- a/kernel/src/sys/syscall_asm.S +++ b/kernel/src/sys/syscall_asm.S @@ -1,47 +1,15 @@ .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 +#include "x86_64_regs.S" .global __syscall __syscall: pushq %rcx pushq %r11 - pushall + push_caller_saved call syscall_handler - popall + pop_caller_saved popfq popq %rcx |
