xref: /netbsd-src/lib/libc/arch/powerpc64/sys/fork.S (revision 38dcdc34d982bf8ab9a66b4b5b2e99311457ea36)
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