summaryrefslogtreecommitdiff
path: root/newlib/libc/sys/sparc64/wait.S
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/sparc64/wait.S')
-rw-r--r--newlib/libc/sys/sparc64/wait.S35
1 files changed, 35 insertions, 0 deletions
diff --git a/newlib/libc/sys/sparc64/wait.S b/newlib/libc/sys/sparc64/wait.S
new file mode 100644
index 00000000000..49ab5e9391e
--- /dev/null
+++ b/newlib/libc/sys/sparc64/wait.S
@@ -0,0 +1,35 @@
+! wait() "system" call
+! It is really not a system call as it uses wait4().
+
+#include "sys/syscallasm.h"
+
+ TEXT_SECTION
+ ALIGN (4)
+
+#ifdef REENT
+
+ GLOBAL (ASM_SYMBOL (_wait_r))
+ASM_SYMBOL (_wait_r):
+ save %sp,-136,%sp
+ clr %o1
+ mov %i1,%o2
+ clr %o3
+ call ASM_SYMBOL (_wait4_r)
+ clr %o4
+ jmpl %i7+8,%g0
+ restore %g0,%o0,%o0
+
+#else /* ! REENT */
+
+ GLOBAL (ASM_SYMBOL (wait))
+ASM_SYMBOL (wait):
+ save %sp,-136,%sp
+ clr %o0
+ mov %i0,%o1
+ clr %o2
+ call ASM_SYMBOL (wait4)
+ clr %o3
+ jmpl %i7+8,%g0
+ restore %g0,%o0,%o0
+
+#endif /* ! REENT */