fork.S revision 1.1 1 1.1 matt /* $NetBSD: fork.S,v 1.1 2014/09/03 19:34:26 matt Exp $ */
2 1.1 matt
3 1.1 matt /*
4 1.1 matt * pid = fork();
5 1.1 matt *
6 1.1 matt * r12 == 0 in parent process, 1 in child process.
7 1.1 matt * r11 == pid of child in parent, pid of parent in child.
8 1.1 matt */
9 1.1 matt
10 1.1 matt #include "SYS.h"
11 1.1 matt
12 1.1 matt _SYSCALL(__fork,fork)
13 1.1 matt l.addi r12,r12,-1 # from 1 to 0 in child, 0 to -1 in parent
14 1.1 matt l.and r11,r11,r12 # return 0 in child, pid in parent
15 1.1 matt l.jr lr
16 1.1 matt l.nop
17 1.1 matt END(__fork)
18