about summary refs log tree commit diff
path: root/src/thread/m68k/clone.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/thread/m68k/clone.s')
-rw-r--r--src/thread/m68k/clone.s24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/thread/m68k/clone.s b/src/thread/m68k/clone.s
new file mode 100644
index 00000000..5b61b6fa
--- /dev/null
+++ b/src/thread/m68k/clone.s
@@ -0,0 +1,24 @@
+.text
+.global __clone
+.type   __clone,@function
+__clone:
+	movem.l %d2-%d5,-(%sp)
+	move.l #120,%d0
+	move.l 28(%sp),%d1
+	move.l 24(%sp),%d2
+	and.l #-16,%d2
+	move.l 36(%sp),%d3
+	move.l 44(%sp),%d4
+	move.l 40(%sp),%d5
+	move.l 20(%sp),%a0
+	move.l 32(%sp),%a1
+	trap #0
+	tst.l %d0
+	beq 1f
+	movem.l (%sp)+,%d2-%d5
+	rts
+1:	move.l %a1,-(%sp)
+	jsr (%a0)
+	move.l #1,%d0
+	trap #0
+	clr.b 0