about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/process/sh/vfork.s23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/process/sh/vfork.s b/src/process/sh/vfork.s
new file mode 100644
index 00000000..30e17317
--- /dev/null
+++ b/src/process/sh/vfork.s
@@ -0,0 +1,23 @@
+.global __vfork
+.weak vfork
+.type __vfork,@function
+.type vfork,@function
+__vfork:
+vfork:
+	mov #95, r3
+	add r3, r3
+
+	trapa #16
+	or    r0, r0
+	or    r0, r0
+	or    r0, r0
+	or    r0, r0
+	or    r0, r0
+
+	mov r0, r4
+	mov.l 1f, r0
+2:	braf r0
+	 nop
+	.align 2
+	.hidden __syscall_ret
+1:	.long __syscall_ret@PLT-(2b+4-.)