提交 214c3dcc 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

amd64 uthread.S.

上级 1de04831
...@@ -57,7 +57,7 @@ OBJS = \ ...@@ -57,7 +57,7 @@ OBJS = \
trap.o \ trap.o \
trapasm.o \ trapasm.o \
ULIB = ulib.o usys.o printf.o umalloc.o ULIB = ulib.o usys.o printf.o umalloc.o uthread.o
UPROGS= \ UPROGS= \
_cat \ _cat \
......
#include "syscall.h"
#include "traps.h"
.globl forkt .globl forkt
forkt: forkt:
movl 4(%esp), %ecx ## new stack ptr pushq %rdi ## new stack ptr
movl 8(%esp), %edx ## function ptr pushq %rsi ## function ptr
movq $1, %rdi ## flag for sys_fork
pushl $1 ## flag for sys_fork callq fork
pushl $0 ## return address (dummy) popq %rsi
movl $SYS_fork, %eax popq %rdi
int $T_SYSCALL cmpl $0, %eax
addl $8, %esp jne 1f
movq %rdi, %rsp
cmpl $0, %eax jmp *%rsi
jne 1f
movl %ecx, %esp
jmp *%edx
1: 1:
ret ret
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论