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