
;  GNU C 2.7.2 [AL 1.1, MM 40] RISC NEWS-OS compiled by CC

;  Cc1 defaults:
;  -mmemcpy

;  Cc1 arguments (-G value = 0, Cpu = 3000, ISA = 1):
;  -quiet -dumpbase -O2 -Wall -o

gcc2_compiled.:
__gnu_compiled_c:
	.code
	.align	2
device_desc:
	.byte	18
	.byte	1
	.half	272
	.space	3
	.byte	16
	.half	3609
	.half	4117
	.half	1
	.byte	1
	.byte	2
	.space	1
	.byte	1
	.align	2
config_desc:
	.byte	9
	.byte	2
	.half	32
	.byte	1
	.byte	1
	.byte	3
	.byte	128
	.byte	50
	.align	2
interface_desc:
	.byte	9
	.byte	4
	.space	2
	.byte	2
	.byte	255
	.byte	255
	.byte	255
	.byte	4
	.align	2
endpoint_desc_ep2in:
	.byte	7
	.byte	5
	.byte	130
	.byte	2
	.half	64
	.space	1
	.align	2
endpoint_desc_ep2out:
	.byte	7
	.byte	5
	.byte	2
	.byte	2
	.half	64
	.space	1
	.align	2
string_desc:
	.word	__LC0
	.word	__LC1
	.word	__LC2
	.word	__LC3
	.word	__LC4
	.align	2
__LC4:
	.ascii	"$\003U\000S\000B\000 \000I\000/\000O\000 \000i\000n\000t"
	.ascii	"\000e\000r\000f\000a\000c\000e\000\000"
	.align	2
__LC3:
	.ascii	",\003U\000S\000B\000 \000I\000/\000O\000 \000c\000o\000n"
	.ascii	"\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n\000\000"
	.align	2
__LC2:
	.ascii	"\"\003P\000/\000E\000C\000E\000 \000U\000S\000B\000 \000"
	.ascii	"d\000e\000v\000i\000c\000e\000\000"
	.align	2
__LC1:
	.ascii	"\026\003P\000i\000e\000c\000e\000 \000L\000a\000b\000.\000"
	.ascii	"\000"
	.align	2
__LC0:
	.ascii	"\004\003\t\004\000"
	.align	2
usb_inf:
	.word	0
	.space	12
	.word	ep2_rxdone
	.word	ep2_txdone
	.space	16
	.word	get_descriptor
	.space	8
	.word	set_configuration
	.space	4
	.word	set_interface
	.space	12

	.lcomm	tmpbuf.66 32
	.code
	.align	1
get_descriptor:
;	.frame	%sp,12,$31		# vars= 0, regs= 3/0, args= 0, extra= 0
;	.mask	0x80030000,-4
;	.fmask	0x00000000,0
	pushn	%r1
	ext	0x2		; 	xld.ub	%r11,[%r12+2]
	ld.ub	%r11,[%r12]
	ext	0x3		; 	xld.ub	%r10,[%r12+3]
	ld.ub	%r10,[%r12]
	sll	%r10,0x8	; 	xsll	%r10,8
	or	%r10,%r11
	ld.w	%r11,%r10
	srl	%r11,0x8	; 	xsrl	%r11,8
	ld.ub	%r1,%r10
	cmp	%r11,0x2	; 	xcmp	%r11,2
	jreq	__LX73		; 	xjreq	__L73
	jrgt	__LX82		; 	xjrgt	__L82
	cmp	%r11,0x1	; 	xcmp	%r11,1
	jreq	__LX72		; 	xjreq	__L72
	jp	__LX71		; 	xjp	__L71
__LX82:				; __L82:
	cmp	%r11,0x3	; 	xcmp	%r11,3
	jreq	__LX78		; 	xjreq	__L78
	jp	__LX71		; 	xjp	__L71
__LX72:				; __L72:
	ext	device_desc+0x0@h	; 	xld.w	%r12,device_desc
	ext	device_desc+0x0@m
	ld.w	%r12,device_desc+0x0@l
	ld.w	%r13,0x12	; 	xld.w	%r13,0x00000012		; 18
	ext	usb_ep0_tx@rm	; 	xcall	usb_ep0_tx
	call	usb_ep0_tx@rl
	jp	__LX70		; 	xjp	__L70
__LX73:				; __L73:
	cmp	%r1,0x0
	jrne	__LX71		; 	xjrne	__L71
	ext	tmpbuf.66+0x0@h	; 	xld.w	%r0,tmpbuf.66
	ext	tmpbuf.66+0x0@m
	ld.w	%r0,tmpbuf.66+0x0@l
	ld.w	%r12,%r0
	ext	config_desc+0x0@h	; 	xld.w	%r13,config_desc
	ext	config_desc+0x0@m
	ld.w	%r13,config_desc+0x0@l
	ld.w	%r14,0x9	; 	xld.w	%r14,0x00000009		; 9
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	add	%r1,0x9		; 	xadd	%r1,%r1,9
	ld.w	%r12,%r0
	add	%r12,%r1
	ext	interface_desc+0x0@h	; 	xld.w	%r13,interface_desc
	ext	interface_desc+0x0@m
	ld.w	%r13,interface_desc+0x0@l
	ld.w	%r14,%r1
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ext	0x12		; 	xadd	%r12,%r0,18
	add	%r12,%r0
	ext	endpoint_desc_ep2in+0x0@h	; 	xld.w	%r13,endpoint_desc_ep2in
	ext	endpoint_desc_ep2in+0x0@m
	ld.w	%r13,endpoint_desc_ep2in+0x0@l
	ld.w	%r14,0x7	; 	xld.w	%r14,0x00000007		; 7
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ld.w	%r1,0x19	; 	xld.w	%r1,0x00000019		; 25
	ld.w	%r12,%r0
	add	%r12,%r1
	ext	endpoint_desc_ep2out+0x0@h	; 	xld.w	%r13,endpoint_desc_ep2out
	ext	endpoint_desc_ep2out+0x0@m
	ld.w	%r13,endpoint_desc_ep2out+0x0@l
	ld.w	%r14,0x7	; 	xld.w	%r14,0x00000007		; 7
	ext	memcpy@rm	; 	xcall	memcpy
	call	memcpy@rl
	ld.w	%r12,%r0
	ext	0x7		; 	xadd	%r13,%r1,7
	add	%r13,%r1
	ext	usb_ep0_tx@rm	; 	xcall	usb_ep0_tx
	call	usb_ep0_tx@rl
	jp	__LX70		; 	xjp	__L70
__LX78:				; __L78:
	cmp	%r1,0x4		; 	xcmp	%r1,4
	jrgt	__LX71		; 	xjrgt	__L71
	ld.w	%r10,%r1
	sll	%r10,0x2	; 	xsll	%r10,2
	ext	string_desc+0x0@h	; 	xld.w	%r12,[%r10+string_desc]
	ext	string_desc+0x0@m
	ld.w	%r9,string_desc+0x0@l
	add	%r9,%r10
	ld.w	%r12,[%r9]
	ld.b	%r13,[%r12]	; 	xld.b	%r13,[%r12]
	ext	usb_ep0_tx@rm	; 	xcall	usb_ep0_tx
	call	usb_ep0_tx@rl
	jp	__LX70		; 	xjp	__L70
__LX71:				; __L71:
	ext	usb_ep0_stall@rm	; 	xcall	usb_ep0_stall
	call	usb_ep0_stall@rl
__LX70:				; __L70:
	popn	%r1
	ret
	.align	1
set_configuration:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	ld.w	%r13,0x0
	ext	0x2		; 	xld.ub	%r11,[%r12+2]
	ld.ub	%r11,[%r12]
	ext	0x3		; 	xld.ub	%r10,[%r12+3]
	ld.ub	%r10,[%r12]
	sll	%r10,0x8	; 	xsll	%r10,8
	or	%r10,%r11
	cmp	%r10,0x1	; 	xcmp	%r10,1
	jrne	__LX84		; 	xjrne	__L84
	ld.w	%r13,%r10
__LX84:				; __L84:
	ld.w	%r12,%r13
	ext	D12_SetEndpointEnable@rm	; 	xcall	D12_SetEndpointEnable
	call	D12_SetEndpointEnable@rl
	ld.w	%r12,0x0
	ld.w	%r13,%r12
	ext	usb_ep0_tx@rm	; 	xcall	usb_ep0_tx
	call	usb_ep0_tx@rl
	ret
	.align	1
set_interface:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	ld.w	%r12,0x0
	ld.w	%r13,%r12
	ext	usb_ep0_tx@rm	; 	xcall	usb_ep0_tx
	call	usb_ep0_tx@rl
	ret
	.align	1
ep2_rxdone:
;	.frame	%sp,72,$31		# vars= 64, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	sub	%sp,0x10	; 	xsub	%sp,%sp,64
__LX87:				; __L87:
	ld.w	%r12,0x4	; 	xld.w	%r12,0x00000004		; 4
	ld.w	%r13,%sp
	ext	0x1		; 	xld.w	%r14,0x00000040		; 64
	ld.w	%r14,0x0
	ext	D12_ReadBuffer@rm	; 	xcall	D12_ReadBuffer
	call	D12_ReadBuffer@rl
	ld.w	%r0,%r10
	cmp	%r0,0x3f	; 	xcmp	%r0,-1
	jreq	__LX88		; 	xjreq	__L88
	ld.w	%r12,0x4	; 	xld.w	%r12,0x00000004		; 4
	ext	D12_ClearBuffer@rm	; 	xcall	D12_ClearBuffer
	call	D12_ClearBuffer@rl
	ld.w	%r12,%sp
	ld.w	%r13,%r0
	call	ep2_rxsub	; 	xcall	ep2_rxsub
	jp	__LX87		; 	xjp	__L87
__LX88:				; __L88:
	add	%sp,0x10	; 	xadd	%sp,%sp,64
	popn	%r0
	ret
	.align	1
ep2_rxsub:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	ld.w	%r4,%r12
	cmp	%r13,0x0
	jreq	__LX91		; 	xjreq	__L91
	ext	uio+0x4@h	; 	xld.w	%r5,uio+4
	ext	uio+0x4@m
	ld.w	%r5,uio+0x4@l
	ext	0x8		; 	xadd	%r15,%r5,8
	add	%r15,%r5
	ld.w	%r11,[%r5]	; 	xld.w	%r11,[%r5]
	ld.w	%r10,[%r15]	; 	xld.w	%r10,[%r15]
	ld.w	%r14,%r11
	sub	%r14,%r10
	cmp	%r13,%r14
	jrle	__LX93		; 	xjrle	__L93
	ext	0x10		; 	xadd	%r12,%r5,16
	add	%r12,%r5
	ld.w	%r11,%r13
	sub	%r11,%r14
	ld.w	%r10,[%r12]	; 	xld.w	%r10,[%r12]
	add	%r10,%r11
	ld.w	[%r12],%r10	; 	xld.w	[%r12],%r10
	ld.w	%r13,%r14
__LX93:				; __L93:
	ext	0x4		; 	xld.w	%r11,[%r5+4]
	ld.w	%r11,[%r5]
	ld.w	%r10,[%r15]	; 	xld.w	%r10,[%r15]
	ld.w	%r14,%r11
	add	%r14,%r10
	ld.w	%r10,[%r5]	; 	xld.w	%r10,[%r5]
	cmp	%r14,%r10
	jrlt	__LX94		; 	xjrlt	__L94
	sub	%r14,%r10
__LX94:				; __L94:
	ld.w	%r15,0x0
	cmp	%r15,%r13
	jrge	__LX96		; 	xjrge	__L96
	ld.w	%r12,%r5
__LX98:				; __L98:
	ext	uio+0x0@ah	; 	xld.w	%r10,[uio]
	ext	uio+0x0@al
	ld.w	%r10,[%r8]
	add	%r10,%r14
	ld.ub	%r11,[%r4]	; 	xld.ub	%r11,[%r4]
	ld.b	[%r10],%r11	; 	xld.b	[%r10],%r11
	add	%r4,0x1		; 	xadd	%r4,%r4,1
	add	%r14,0x1	; 	xadd	%r14,%r14,1
	ld.w	%r10,[%r12]	; 	xld.w	%r10,[%r12]
	cmp	%r14,%r10
	jrne	__LX97		; 	xjrne	__L97
	ld.w	%r14,0x0
__LX97:				; __L97:
	add	%r15,0x1	; 	xadd	%r15,%r15,1
	cmp	%r15,%r13
	jrlt	__LX98		; 	xjrlt	__L98
__LX96:				; __L96:
	ext	uio+0xc@h	; 	xld.w	%r11,uio+12
	ext	uio+0xc@m
	ld.w	%r11,uio+0xc@l
	ld.w	%r10,[%r11]	; 	xld.w	%r10,[%r11]
	add	%r10,%r13
	ld.w	[%r11],%r10	; 	xld.w	[%r11],%r10
	ext	0xc		; 	xld.w	%r10,[%r11+12]
	ld.w	%r10,[%r11]
	cmp	%r10,0x0
	jreq	__LX91		; 	xjreq	__L91
	call	%r10
__LX91:				; __L91:
	ret
	.align	1
ep2_txdone:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	ext	uio+0x28@h	; 	xld.w	%r11,uio+40
	ext	uio+0x28@m
	ld.w	%r11,uio+0x28@l
	ld.w	%r10,[%r11]	; 	xld.w	%r10,[%r11]
	cmp	%r10,0x0
	jreq	__LX103		; 	xjreq	__L103
	call	ep2_txsub	; 	xcall	ep2_txsub
	jp	__LX104		; 	xjp	__L104
__LX103:				; __L103:
	ext	0x8		; 	xld.w	[%r11+8],%r10
	ld.w	[%r11],%r10
	ext	0xc		; 	xld.w	%r10,[%r11+12]
	ld.w	%r10,[%r11]
	cmp	%r10,0x0
	jreq	__LX104		; 	xjreq	__L104
	call	%r10
__LX104:				; __L104:
	ret
	.align	1
ep2_txsub:
;	.frame	%sp,68,$31		# vars= 64, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	sub	%sp,0x10	; 	xsub	%sp,%sp,64
	ext	0x1		; 	xld.w	%r14,0x00000040		; 64
	ld.w	%r14,0x0
	ext	uio+0x28@h	; 	xld.w	%r10,uio+40
	ext	uio+0x28@m
	ld.w	%r10,uio+0x28@l
	ld.w	%r11,[%r10]	; 	xld.w	%r11,[%r10]
	cmp	%r14,%r11
	jrle	__LX107		; 	xjrle	__L107
	ld.w	%r14,%r11
__LX107:				; __L107:
	cmp	%r14,0x0
	jrle	__LX109		; 	xjrle	__L109
	ext	0x4		; 	xsub	%r13,%r10,4
	sub	%r13,%r10
	ext	0x8		; 	xsub	%r4,%r10,8
	sub	%r4,%r10
	ld.w	%r12,%sp
	ld.w	%r15,%r14
	ld.w	%r9,%sp		; 	xadd	%r15,%r15,%sp
	add	%r15,%r9
__LX111:				; __L111:
	ld.w	%r11,[%r13]	; 	xld.w	%r11,[%r13]
	ext	0x1		; 	xadd	%r10,%r11,1
	add	%r10,%r11
	ld.w	[%r13],%r10	; 	xld.w	[%r13],%r10
	ext	uio+0x1c@ah	; 	xld.w	%r10,[uio+28]
	ext	uio+0x1c@al
	ld.w	%r10,[%r8]
	add	%r10,%r11
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	ld.b	[%r12],%r10	; 	xld.b	[%r12],%r10
	ld.w	%r11,[%r13]	; 	xld.w	%r11,[%r13]
	ld.w	%r10,[%r4]	; 	xld.w	%r10,[%r4]
	cmp	%r11,%r10
	jrne	__LX110		; 	xjrne	__L110
	ld.w	%r5,0x0
	ld.w	[%r13],%r5	; 	xld.w	[%r13],%r5
__LX110:				; __L110:
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	cmp	%r12,%r15
	jrlt	__LX111		; 	xjrlt	__L111
__LX109:				; __L109:
	ext	uio+0x28@h	; 	xld.w	%r11,uio+40
	ext	uio+0x28@m
	ld.w	%r11,uio+0x28@l
	ld.w	%r10,[%r11]	; 	xld.w	%r10,[%r11]
	sub	%r10,%r14
	ld.w	[%r11],%r10	; 	xld.w	[%r11],%r10
	ld.w	%r12,0x5	; 	xld.w	%r12,0x00000005		; 5
	ld.w	%r13,%sp
	ext	D12_WriteBuffer@rm	; 	xcall	D12_WriteBuffer
	call	D12_WriteBuffer@rl
	ld.w	%r12,0x5	; 	xld.w	%r12,0x00000005		; 5
	ext	D12_ValidateBuffer@rm	; 	xcall	D12_ValidateBuffer
	call	D12_ValidateBuffer@rl
	add	%sp,0x10	; 	xadd	%sp,%sp,64
	ret
	.code
	.align	2
__LC5:
	.ascii	"clipuio.$(%d)\000"
	.code
	.align	1
	.global	uio_start
uio_start:
;	.frame	%sp,36,$31		# vars= 8, regs= 5/0, args= 8, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0x4		; 	xsub	%sp,%sp,16
	ld.w	%r0,%r12
	ld.w	%r1,%r13
	ld.w	[%sp+0x2],%r14	; 	xld.w	[%sp+8],%r14
	ld.w	[%sp+0x3],%r15	; 	xld.w	[%sp+12],%r15
	call	uio_stop	; 	xcall	uio_stop
	ext	uio+0x0@h	; 	xld.w	%r2,uio
	ext	uio+0x0@m
	ld.w	%r2,uio+0x0@l
	ld.w	%r12,%r2
	ld.w	%r13,0x0
	ext	0x0		; 	xld.w	%r14,0x00000038		; 56
	ld.w	%r14,0x38
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ext	0x0		; 	xld.w	%r3,0x0000003f		; 63
	ld.w	%r3,0x3f
	cmp	%r0,%r3
	jrgt	__LX115		; 	xjrgt	__L115
	ext	0x1		; 	xld.w	%r0,0x00000040		; 64
	ld.w	%r0,0x0
__LX115:				; __L115:
	ext	0x4		; 	xld.w	[%r2+4],%r0
	ld.w	[%r2],%r0
	ld.w	%r12,%r0
	ext	malloc@rm	; 	xcall	malloc
	call	malloc@rl
	ld.w	[%r2],%r10	; 	xld.w	[%r2],%r10
	cmp	%r10,0x0
	jrne	__LX116		; 	xjrne	__L116
	ext	__LC5+0x0@h	; 	xld.w	%r10,__LC5
	ext	__LC5+0x0@m
	ld.w	%r10,__LC5+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x5		; 	xld.w	%r10,0x00000167		; 359
	ld.w	%r10,0x27
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX116:				; __L116:
	ext	0x18		; 	xadd	%r0,%r2,24
	add	%r0,%r2
	ld.w	%r11,[%sp+0x2]	; 	xld.w	%r11,[%sp+8]
	ld.w	[%r0],%r11	; 	xld.w	[%r0],%r11
	cmp	%r1,%r3
	jrgt	__LX117		; 	xjrgt	__L117
	ext	0x1		; 	xld.w	%r1,0x00000040		; 64
	ld.w	%r1,0x0
__LX117:				; __L117:
	ext	0x8		; 	xld.w	[%r0+8],%r1
	ld.w	[%r0],%r1
	ld.w	%r12,%r1
	ext	malloc@rm	; 	xcall	malloc
	call	malloc@rl
	ext	0x1c		; 	xld.w	[%r2+28],%r10
	ld.w	[%r2],%r10
	cmp	%r10,0x0
	jrne	__LX118		; 	xjrne	__L118
	ext	__LC5+0x0@h	; 	xld.w	%r10,__LC5
	ext	__LC5+0x0@m
	ld.w	%r10,__LC5+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x5		; 	xld.w	%r10,0x00000172		; 370
	ld.w	%r10,0x32
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX118:				; __L118:
	ld.w	%r11,[%sp+0x3]	; 	xld.w	%r11,[%sp+12]
	ext	0x1c		; 	xld.w	[%r0+28],%r11
	ld.w	[%r0],%r11
	ext	usb_inf+0x0@h	; 	xld.w	%r12,usb_inf
	ext	usb_inf+0x0@m
	ld.w	%r12,usb_inf+0x0@l
	ext	usb_start@rm	; 	xcall	usb_start
	call	usb_start@rl
	add	%sp,0x4		; 	xadd	%sp,%sp,16
	popn	%r3
	ret
	.align	1
	.global	uio_stop
uio_stop:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ext	usb_stop@rm	; 	xcall	usb_stop
	call	usb_stop@rl
	ext	uio+0x0@h	; 	xld.w	%r0,uio
	ext	uio+0x0@m
	ld.w	%r0,uio+0x0@l
	ld.w	%r12,[%r0]	; 	xld.w	%r12,[%r0]
	ext	free@rm		; 	xcall	free
	call	free@rl
	ext	0x1c		; 	xld.w	%r12,[%r0+28]
	ld.w	%r12,[%r0]
	ext	free@rm		; 	xcall	free
	call	free@rl
	ld.w	%r12,%r0
	ld.w	%r13,0x0
	ext	0x0		; 	xld.w	%r14,0x00000038		; 56
	ld.w	%r14,0x38
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	popn	%r0
	ret
	.align	1
	.global	uio_reset
uio_reset:
;	.frame	%sp,8,$31		# vars= 4, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	sub	%sp,0x1		; 	xsub	%sp,%sp,4
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ext	uio+0x8@h	; 	xld.w	%r10,uio+8
	ext	uio+0x8@m
	ld.w	%r10,uio+0x8@l
	ld.w	%r11,0x0
	ld.w	[%r10],%r11	; 	xld.w	[%r10],%r11
	ext	0x4		; 	xld.w	[%r10+4],%r11
	ld.w	[%r10],%r11
	ext	0x8		; 	xld.w	[%r10+8],%r11
	ld.w	[%r10],%r11
	ext	0xc		; 	xld.w	[%r10+12],%r11
	ld.w	[%r10],%r11
	ext	0x1c		; 	xld.w	[%r10+28],%r11
	ld.w	[%r10],%r11
	ext	0x20		; 	xld.w	[%r10+32],%r11
	ld.w	[%r10],%r11
	ext	0x24		; 	xld.w	[%r10+36],%r11
	ld.w	[%r10],%r11
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	add	%sp,0x1		; 	xadd	%sp,%sp,4
	ret
	.align	1
	.global	uio_recv
uio_recv:
;	.frame	%sp,16,$31		# vars= 4, regs= 3/0, args= 0, extra= 0
;	.mask	0x80030000,-4
;	.fmask	0x00000000,0
	pushn	%r1
	sub	%sp,0x1		; 	xsub	%sp,%sp,4
	ld.w	%r0,%r13
	ld.w	%r1,%r12
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ext	uio+0x14@h	; 	xld.w	%r14,uio+20
	ext	uio+0x14@m
	ld.w	%r14,uio+0x14@l
	ld.w	%r11,[%r14]	; 	xld.w	%r11,[%r14]
	cmp	%r11,0x0
	jrne	__LX129		; 	xjrne	__L129
	ext	0x8		; 	xsub	%r10,%r14,8
	sub	%r10,%r14
	ld.w	%r10,[%r10]	; 	xld.w	%r10,[%r10]
	cmp	%r0,%r10
	jrle	__LX130		; 	xjrle	__L130
	ld.w	%r0,%r10
__LX130:				; __L130:
	ld.w	%r12,%r11
	cmp	%r12,%r0
	jrge	__LX132		; 	xjrge	__L132
	ext	0xc		; 	xsub	%r13,%r14,12
	sub	%r13,%r14
	sub	%r14,0x10	; 	xsub	%r14,%r14,16
__LX134:				; __L134:
	ld.w	%r11,[%r13]	; 	xld.w	%r11,[%r13]
	ext	0x1		; 	xadd	%r10,%r11,1
	add	%r10,%r11
	ld.w	[%r13],%r10	; 	xld.w	[%r13],%r10
	ext	uio+0x0@ah	; 	xld.w	%r10,[uio]
	ext	uio+0x0@al
	ld.w	%r10,[%r8]
	add	%r10,%r11
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	ld.b	[%r1],%r10	; 	xld.b	[%r1],%r10
	add	%r1,0x1		; 	xadd	%r1,%r1,1
	ld.w	%r11,[%r13]	; 	xld.w	%r11,[%r13]
	ld.w	%r10,[%r14]	; 	xld.w	%r10,[%r14]
	cmp	%r11,%r10
	jrne	__LX133		; 	xjrne	__L133
	ld.w	%r15,0x0
	ld.w	[%r13],%r15	; 	xld.w	[%r13],%r15
__LX133:				; __L133:
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	cmp	%r12,%r0
	jrlt	__LX134		; 	xjrlt	__L134
__LX132:				; __L132:
	ext	uio+0xc@h	; 	xld.w	%r10,uio+12
	ext	uio+0xc@m
	ld.w	%r10,uio+0xc@l
	ld.w	%r11,[%r10]	; 	xld.w	%r11,[%r10]
	sub	%r11,%r0
	ld.w	[%r10],%r11	; 	xld.w	[%r10],%r11
	add	%r10,0x4	; 	xadd	%r10,%r10,4
	ld.w	%r11,[%r10]	; 	xld.w	%r11,[%r10]
	add	%r11,%r0
	ld.w	[%r10],%r11	; 	xld.w	[%r10],%r11
	jp	__LX137		; 	xjp	__L137
__LX129:				; __L129:
	not	%r0,%r11
	add	%r0,1
__LX137:				; __L137:
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	ld.w	%r10,%r0
	add	%sp,0x1		; 	xadd	%sp,%sp,4
	popn	%r1
	ret
	.align	1
	.global	uio_send
uio_send:
;	.frame	%sp,16,$31		# vars= 4, regs= 3/0, args= 0, extra= 0
;	.mask	0x80030000,-4
;	.fmask	0x00000000,0
	pushn	%r1
	sub	%sp,0x1		; 	xsub	%sp,%sp,4
	ld.w	%r0,%r13
	ld.w	%r1,%r12
	cmp	%r0,0x0
	jrge	__LX140		; 	xjrge	__L140
	ext	strlen@rm	; 	xcall	strlen
	call	strlen@rl
	ld.w	%r0,%r10
__LX140:				; __L140:
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ext	uio+0x20@h	; 	xld.w	%r14,uio+32
	ext	uio+0x20@m
	ld.w	%r14,uio+0x20@l
	ld.w	%r11,[%r14]	; 	xld.w	%r11,[%r14]
	ext	0x8		; 	xld.w	%r12,[%r14+8]
	ld.w	%r12,[%r14]
	ld.w	%r10,%r11
	sub	%r10,%r12
	cmp	%r0,%r10
	jrle	__LX144		; 	xjrle	__L144
	ld.w	%r0,%r10
__LX144:				; __L144:
	cmp	%r0,0x0
	jreq	__LX145		; 	xjreq	__L145
	ext	0x4		; 	xld.w	%r10,[%r14+4]
	ld.w	%r10,[%r14]
	add	%r10,%r12
	ld.w	%r12,%r10
	cmp	%r12,%r11
	jrlt	__LX146		; 	xjrlt	__L146
	sub	%r12,%r11
__LX146:				; __L146:
	ld.w	%r13,0x0
	cmp	%r13,%r0
	jrge	__LX148		; 	xjrge	__L148
__LX150:				; __L150:
	ext	uio+0x1c@ah	; 	xld.w	%r10,[uio+28]
	ext	uio+0x1c@al
	ld.w	%r10,[%r8]
	add	%r10,%r12
	ld.ub	%r11,[%r1]	; 	xld.ub	%r11,[%r1]
	ld.b	[%r10],%r11	; 	xld.b	[%r10],%r11
	add	%r1,0x1		; 	xadd	%r1,%r1,1
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	ld.w	%r10,[%r14]	; 	xld.w	%r10,[%r14]
	cmp	%r12,%r10
	jrne	__LX149		; 	xjrne	__L149
	ld.w	%r12,0x0
__LX149:				; __L149:
	add	%r13,0x1	; 	xadd	%r13,%r13,1
	cmp	%r13,%r0
	jrlt	__LX150		; 	xjrlt	__L150
__LX148:				; __L148:
	ext	uio+0x28@h	; 	xld.w	%r12,uio+40
	ext	uio+0x28@m
	ld.w	%r12,uio+0x28@l
	ld.w	%r10,[%r12]	; 	xld.w	%r10,[%r12]
	add	%r10,%r0
	ld.w	[%r12],%r10	; 	xld.w	[%r12],%r10
	ext	0x4		; 	xadd	%r11,%r12,4
	add	%r11,%r12
	ld.w	%r10,[%r11]	; 	xld.w	%r10,[%r11]
	add	%r10,%r0
	ld.w	[%r11],%r10	; 	xld.w	[%r11],%r10
	add	%r12,0x8	; 	xadd	%r12,%r12,8
	ld.w	%r10,[%r12]	; 	xld.w	%r10,[%r12]
	cmp	%r10,0x0
	jrne	__LX145		; 	xjrne	__L145
	ld.w	%r10,0x1	; 	xld.w	%r10,0x00000001		; 1
	ld.w	[%r12],%r10	; 	xld.w	[%r12],%r10
	ext	ep2_txsub@rm	; 	xcall	ep2_txsub
	call	ep2_txsub@rl
__LX145:				; __L145:
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	ld.w	%r10,%r0
	add	%sp,0x1		; 	xadd	%sp,%sp,4
	popn	%r1
	ret
	.align	1
	.global	uio_stat
uio_stat:
;	.frame	%sp,12,$31		# vars= 4, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	sub	%sp,0x1		; 	xsub	%sp,%sp,4
	ld.w	%r0,%r12
	ld.w	%r12,%sp
	ext	pceSyncEnterCriticalSection@rm	; 	xcall	pceSyncEnterCriticalSection
	call	pceSyncEnterCriticalSection@rl
	ext	uio+0xc@h	; 	xld.w	%r11,uio+12
	ext	uio+0xc@m
	ld.w	%r11,uio+0xc@l
	ld.w	%r10,[%r11]	; 	xld.w	%r10,[%r11]
	ld.w	[%r0],%r10	; 	xld.w	[%r0],%r10
	ext	0x4		; 	xld.w	%r10,[%r11+4]
	ld.w	%r10,[%r11]
	ext	0x4		; 	xld.w	[%r0+4],%r10
	ld.w	[%r0],%r10
	ext	0x8		; 	xld.w	%r10,[%r11+8]
	ld.w	%r10,[%r11]
	ext	0x8		; 	xld.w	[%r0+8],%r10
	ld.w	[%r0],%r10
	ext	0x1c		; 	xld.w	%r10,[%r11+28]
	ld.w	%r10,[%r11]
	ext	0xc		; 	xld.w	[%r0+12],%r10
	ld.w	[%r0],%r10
	ext	0x20		; 	xld.w	%r10,[%r11+32]
	ld.w	%r10,[%r11]
	ext	0x10		; 	xld.w	[%r0+16],%r10
	ld.w	[%r0],%r10
	ld.w	%r12,%sp
	ext	pceSyncLeaveCriticalSection@rm	; 	xcall	pceSyncLeaveCriticalSection
	call	pceSyncLeaveCriticalSection@rl
	add	%sp,0x1		; 	xadd	%sp,%sp,4
	popn	%r0
	ret

	.lcomm	uio 56
