summaryrefslogtreecommitdiff
path: root/kernel/src/sys/syscall_asm.S
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-25 05:43:37 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-25 05:47:59 +0100
commitaaa23fffd02fb49cdbc56a480dbb5a8fa95bff38 (patch)
treecefd59478bb62a2edca523adc9f10cec605f57b0 /kernel/src/sys/syscall_asm.S
parent4931f266a72dccfb439badfa1070563003c80ce3 (diff)
x86_64_regs.S: (push/pop)_(callee/caller)_regs
Diffstat (limited to 'kernel/src/sys/syscall_asm.S')
-rw-r--r--kernel/src/sys/syscall_asm.S38
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