diff options
Diffstat (limited to 'usr/klibc/arch/ia64/pipe.S')
-rw-r--r-- | usr/klibc/arch/ia64/pipe.S | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/usr/klibc/arch/ia64/pipe.S b/usr/klibc/arch/ia64/pipe.S new file mode 100644 index 0000000..ae31a3a --- /dev/null +++ b/usr/klibc/arch/ia64/pipe.S @@ -0,0 +1,27 @@ +#include <asm/unistd.h> + .align 32 + .proc pipe + .global pipe +pipe: + alloc r16 = ar.pfs, 1, 0, 8, 0 + mov r33 = r32 + mov r15=__NR_pipe + ;; + break 0x100000 // Do the syscall + ;; + + cmp.ne p6, p7 = -1, r10 + mov r15 = r0 + ;; +(p6) st4 [r32] = r8, 4 + +(p7) movl r14 = errno +(p7) addl r15 = -1, r0 + ;; +(p6) st4 [r32] = r9 + +(p7) st4 [r14] = r8 + + mov r8 = r15 + br.ret.sptk.many b0 + .endp pipe |