1*38dcdc34Smatt/* $NetBSD: fork.S,v 1.2 2014/08/23 02:24:22 matt Exp $ */ 2d48f1466Sross 3d48f1466Sross/* 4d48f1466Sross * pid = fork(); 5d48f1466Sross * 6d48f1466Sross * r4 == 0 in parent process, 1 in child process. 7d48f1466Sross * r3 == pid of child in parent, pid of parent in child. 8d48f1466Sross */ 9d48f1466Sross 10d48f1466Sross#include "SYS.h" 11d48f1466Sross 12d48f1466Sross_SYSCALL(__fork,fork) 13d48f1466Sross addi %r4,%r4,-1 # from 1 to 0 in child, 0 to -1 in parent 14d48f1466Sross and %r3,%r3,%r4 # return 0 in child, pid in parent 15d48f1466Sross blr 16*38dcdc34SmattEND(__fork) 17