Restore RSP0 properly on syscall exit

This commit is contained in:
Mark
2020-01-31 15:20:49 +02:00
parent cf9c511ff3
commit a5ce69c077
2 changed files with 3 additions and 6 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
extern void syscall_entry(void);
void sys_debug_trace(const char *msg) {
kinfo("Trace message: %s\n", msg);
//kinfo("Trace message: %s\n", msg);
}
void sys_debug_sleep(uint64_t ms) {
+2 -5
View File
@@ -15,7 +15,6 @@ syscall_entry:
cmpq $57, %rax
jz _syscall_fork
pushq %rsp
pushq %rcx
pushq %r11
movq get_cpu(CPU_SYSCALL_RSP), %rcx
@@ -39,11 +38,9 @@ syscall_entry:
popq %rdi
popq %r11
popq %rcx
popq %rdx
//movq get_cpu(CPU_TSS), %rsi
//addq $64, %rdx
//movq %rdx, TSS_RSP0(%rsi)
movq get_cpu(CPU_THREAD), %rsi
movq %rsp, THREAD_RSP0(%rsi)
movq %rdi, %rsp