summaryrefslogtreecommitdiff
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-.)