Fix user apps randomly crashing (APIC, GDT layout, syscall entry)
All checks were successful
Build documentation / build-and-deploy (push) Successful in 23s
All checks were successful
Build documentation / build-and-deploy (push) Successful in 23s
This commit is contained in:
@@ -4,39 +4,40 @@
|
||||
|
||||
.global amd64_syscall_entry
|
||||
amd64_syscall_entry:
|
||||
cli
|
||||
|
||||
movq %rsp, %gs:0
|
||||
movq %gs:8, %rsp
|
||||
|
||||
pushq $0x23
|
||||
pushq $0x1b
|
||||
pushq %gs:0
|
||||
pushq %r11
|
||||
pushq $0x1b
|
||||
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 %cr3, %rax; pushq %rax
|
||||
|
||||
movq %rsp, %rbp
|
||||
|
||||
subq $8, %rsp
|
||||
andq $~0xF, %rsp
|
||||
andq $-16, %rsp
|
||||
|
||||
callq amd64_syscall_dispatch
|
||||
|
||||
movq %rbp, %rsp
|
||||
|
||||
popq %rax
|
||||
movq %rax, %cr3
|
||||
popq %rax; movq %rax, %cr3
|
||||
|
||||
pop_regs_skip_rax
|
||||
|
||||
|
||||
Reference in New Issue
Block a user