summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/sparc/pipe.S
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/sparc/pipe.S')
-rw-r--r--mdk-stage1/dietlibc/sparc/pipe.S20
1 files changed, 20 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/sparc/pipe.S b/mdk-stage1/dietlibc/sparc/pipe.S
new file mode 100644
index 000000000..b8ad1d251
--- /dev/null
+++ b/mdk-stage1/dietlibc/sparc/pipe.S
@@ -0,0 +1,20 @@
+#include "syscalls.h"
+
+.text
+.global pipe
+pipe:
+ mov __NR_pipe, %g1
+ ta 0x10
+ bcc,a .Lnoerror
+ nop
+ save %sp, -96, %sp
+ call __errno_location
+ nop
+ st %i0, [ %o0 ]
+ ret
+ restore %g0, -1, %o0
+.Lnoerror:
+ st %o0, [ %o2 ]
+ st %o1, [ %o2 + 4 ]
+ retl
+ mov %g0, %o0