summaryrefslogtreecommitdiff
path: root/src/unistd/sh/pipe.s
blob: 46c4908e7b463bfe5c9888033dc2db8172835d0b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.global pipe
.type   pipe, @function
pipe:
	mov    #42, r3
	trapa  #31

	! work around hardware bug
	or     r0, r0
	or     r0, r0
	or     r0, r0
	or     r0, r0
	or     r0, r0

	cmp/pz r0
	bt     1f

	mov.l  L1, r1
	braf   r1
	 mov   r0, r4

1:	mov.l  r0, @(0,r4)
	mov.l  r1, @(4,r4)
	rts
	 mov   #0, r0

.align 2
L1:	.long __syscall_ret@PLT-(1b-.)