|
@@ -142,36 +142,9 @@ ENTRY(system_call)
|
|
callq system_call_function
|
|
callq system_call_function
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
// 从系统调用中返回
|
|
// 从系统调用中返回
|
|
ENTRY(ret_from_system_call)
|
|
ENTRY(ret_from_system_call)
|
|
-
|
|
|
|
- popq %r15
|
|
|
|
- popq %r14
|
|
|
|
- popq %r13
|
|
|
|
- popq %r12
|
|
|
|
- popq %r11
|
|
|
|
- popq %r10
|
|
|
|
- popq %r9
|
|
|
|
- popq %r8
|
|
|
|
- popq %rbx
|
|
|
|
- popq %rcx
|
|
|
|
- popq %rdx
|
|
|
|
- popq %rsi
|
|
|
|
- popq %rdi
|
|
|
|
- popq %rbp
|
|
|
|
-
|
|
|
|
- popq %rax // 不允许直接pop到ds
|
|
|
|
- movq %rax, %ds
|
|
|
|
-
|
|
|
|
- popq %rax
|
|
|
|
- movq %rax, %es
|
|
|
|
-
|
|
|
|
- popq %rax
|
|
|
|
- addq $0x10, %rsp // 弹出变量FUNC和errcode
|
|
|
|
-
|
|
|
|
- sti
|
|
|
|
- iretq
|
|
|
|
|
|
+ jmp Restore_all
|
|
|
|
|
|
|
|
|
|
|
|
|