.text
.global __clone
.type __clone, %function
__clone:
	# int clone(
	#    fn,      a = r2
	#    stack,   b = r3
	#    flags,   c = r4
	#    arg,     d = r5
	#    ptid,    e = r6
	#    tls,     f = *(r15+160)
	#    ctid)    g = *(r15+168)
	#
	# pseudo C code:
	# tid = syscall(SYS_clone,b,c,e,g,f);
	# if (!tid) syscall(SYS_exit, a(d));
	# return tid;

	# create initial stack frame for new thread
	nill %r3, 0xfff8
	aghi %r3, -160
	lghi %r0, 0
	stg  %r0, 0(%r3)

	# save fn and arg to child stack
	stg  %r2,  8(%r3)
	stg  %r5, 16(%r3)

	# shuffle args into correct registers and call SYS_clone
	lgr  %r2, %r3
	lgr  %r3, %r4
	lgr  %r4, %r6
	lg   %r5, 168(%r15)
	lg   %r6, 160(%r15)
	svc  120

	# if error or if we're the parent, return
	ltgr %r2, %r2
	bnzr %r14

	# we're the child. call fn(arg)
	lg   %r1,  8(%r15)
	lg   %r2, 16(%r15)
	basr %r14, %r1

	# call SYS_exit. exit code is already in r2 from fn return value
	svc  1
