#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
	;;
(p7)	addl r14 = @ltoffx(errno), r1

(p6)	st4 [r32] = r8, 4
(p7)	addl r15 = -1, r0
	;;

(p7)	ld8.mov r14 = [r14], errno
(p6)	st4 [r32] = r9
	;;

(p7)	st4 [r14] = r8
	mov r8 = r15
	br.ret.sptk.many b0
	.endp pipe
