
;  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:

	.lcomm	mixbuf.66 1280
	.code
	.align	1
adpcm_stream_callback:
;	.frame	%sp,12,$31		# vars= 0, regs= 3/0, args= 0, extra= 0
;	.mask	0x80030000,-4
;	.fmask	0x00000000,0
	pushn	%r1
	ld.w	%r1,%r12
	ext	mixbuf.66+0x0@h	; 	xld.w	%r12,mixbuf.66
	ext	mixbuf.66+0x0@m
	ld.w	%r12,mixbuf.66+0x0@l
	ld.w	%r13,0x0
	ext	0x14		; 	xld.w	%r14,0x00000500		; 1280
	ld.w	%r14,0x0
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ld.w	%r0,0x0
	jp	__LX77		; 	xjp	__L77
__LX74:				; __L74:
	ext	driver+0x4@ah	; 	xld.w	%r10,[driver+4]
	ext	driver+0x4@al
	ld.w	%r10,[%r8]
	ld.w	%r11,%r0
	sll	%r11,0x5	; 	xsll	%r11,5
	ld.w	%r12,%r11
	add	%r12,%r10
	ext	0x14		; 	xld.w	%r10,[%r12+20]
	ld.w	%r10,[%r12]
	cmp	%r10,0x0
	jreq	__LX73		; 	xjreq	__L73
	ext	mixbuf.66+0x0@h	; 	xld.w	%r13,mixbuf.66
	ext	mixbuf.66+0x0@m
	ld.w	%r13,mixbuf.66+0x0@l
	ext	adpcm_mix1@rm	; 	xcall	adpcm_mix1
	call	adpcm_mix1@rl
__LX73:				; __L73:
	add	%r0,0x1		; 	xadd	%r0,%r0,1
__LX77:				; __L77:
	ext	driver+0x0@ah	; 	xld.w	%r10,[driver]
	ext	driver+0x0@al
	ld.w	%r10,[%r8]
	cmp	%r0,%r10
	jrlt	__LX74		; 	xjrlt	__L74
	ld.w	%r12,%r1
	ext	mixbuf.66+0x0@h	; 	xld.w	%r13,mixbuf.66
	ext	mixbuf.66+0x0@m
	ld.w	%r13,mixbuf.66+0x0@l
	ext	adpcm_mix2@rm	; 	xcall	adpcm_mix2
	call	adpcm_mix2@rl
	ld.w	%r10,0x0
	popn	%r1
	ret
	.code
	.align	2
__LC0:
	.ascii	"clipadp.$(%d)\000"
	.code
	.align	1
	.global	adpcm_init
adpcm_init:
;	.frame	%sp,20,$31		# vars= 0, regs= 3/0, args= 8, extra= 0
;	.mask	0x80030000,-4
;	.fmask	0x00000000,0
	pushn	%r1
	sub	%sp,0x2		; 	xsub	%sp,%sp,8
	ld.w	%r0,%r12
	call	adpcm_exit	; 	xcall	adpcm_exit
	ext	driver+0x0@h	; 	xld.w	%r1,driver
	ext	driver+0x0@m
	ld.w	%r1,driver+0x0@l
	ld.w	[%r1],%r0	; 	xld.w	[%r1],%r0
	ld.w	%r12,%r0
	ext	0x0		; 	xld.w	%r13,0x00000020		; 32
	ld.w	%r13,0x20
	ext	calloc@rm	; 	xcall	calloc
	call	calloc@rl
	ext	0x4		; 	xld.w	[%r1+4],%r10
	ld.w	[%r1],%r10
	cmp	%r10,0x0
	jrne	__LX79		; 	xjrne	__L79
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x1		; 	xld.w	%r10,0x00000043		; 67
	ld.w	%r10,0x3
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX79:				; __L79:
	ext	0x5		; 	xld.w	%r12,0x00000140		; 320
	ld.w	%r12,0x0
	ext	adpcm_stream_callback+0x0@h	; 	xld.w	%r13,adpcm_stream_callback
	ext	adpcm_stream_callback+0x0@m
	ld.w	%r13,adpcm_stream_callback+0x0@l
	ld.w	%r14,0x0
	ld.w	%r15,%r14
	ext	stream_play@rm	; 	xcall	stream_play
	call	stream_play@rl
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	popn	%r1
	ret
	.align	1
	.global	adpcm_exit
adpcm_exit:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ext	stream_stop@rm	; 	xcall	stream_stop
	call	stream_stop@rl
	ext	driver+0x4@h	; 	xld.w	%r0,driver+4
	ext	driver+0x4@m
	ld.w	%r0,driver+0x4@l
	ld.w	%r12,[%r0]	; 	xld.w	%r12,[%r0]
	ext	free@rm		; 	xcall	free
	call	free@rl
	ext	0x4		; 	xsub	%r12,%r0,4
	sub	%r12,%r0
	ld.w	%r13,0x0
	ld.w	%r14,0x8	; 	xld.w	%r14,0x00000008		; 8
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	popn	%r0
	ret
	.code
	.align	2
__LC1:
	.ascii	"MCPP\000"
	.code
	.align	1
	.global	adpcm_play
adpcm_play:
;	.frame	%sp,24,$31		# vars= 0, regs= 4/0, args= 8, extra= 0
;	.mask	0x80070000,-4
;	.fmask	0x00000000,0
	pushn	%r2
	sub	%sp,0x2		; 	xsub	%sp,%sp,8
	ld.w	%r1,%r13
	ld.w	%r2,%r14
	cmp	%r12,0x0
	jrlt	__LX83		; 	xjrlt	__L83
	ext	driver+0x0@h	; 	xld.w	%r13,driver
	ext	driver+0x0@m
	ld.w	%r13,driver+0x0@l
	ld.w	%r10,[%r13]	; 	xld.w	%r10,[%r13]
	sub	%r10,0x1	; 	xsub	%r10,%r10,1
	cmp	%r12,%r10
	jrle	__LX82		; 	xjrle	__L82
__LX83:				; __L83:
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x1		; 	xld.w	%r10,0x00000061		; 97
	ld.w	%r10,0x21
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX82:				; __L82:
	ld.w	%r11,%r12
	sll	%r11,0x5	; 	xsll	%r11,5
	ext	0x4		; 	xld.w	%r10,[%r13+4]
	ld.w	%r10,[%r13]
	ld.w	%r0,%r10
	add	%r0,%r11
	ld.w	%r12,%r1
	ext	__LC1+0x0@h	; 	xld.w	%r13,__LC1
	ext	__LC1+0x0@m
	ld.w	%r13,__LC1+0x0@l
	ld.w	%r14,0x4	; 	xld.w	%r14,0x00000004		; 4
	ext	memcmp@rm	; 	xcall	memcmp
	call	memcmp@rl
	ld.w	%r11,%r10
	cmp	%r11,0x0
	jreq	__LX84		; 	xjreq	__L84
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x1		; 	xld.w	%r10,0x00000066		; 102
	ld.w	%r10,0x26
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX84:				; __L84:
	ext	0x9		; 	xld.ub	%r10,[%r1+9]
	ld.ub	%r10,[%r1]
	and	%r10,0x3	; 	xand	%r10,%r10,0x00000003
	cmp	%r10,0x3	; 	xcmp	%r10,3
	jreq	__LX85		; 	xjreq	__L85
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x1		; 	xld.w	%r10,0x0000006a		; 106
	ld.w	%r10,0x2a
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX85:				; __L85:
	ext	0x14		; 	xld.w	[%r0+20],%r11
	ld.w	[%r0],%r11
	ld.w	[%r0],%r11	; 	xld.w	[%r0],%r11
	ld.w	%r15,0x0
	ext	0x4		; 	xld.h	[%r0+4],%r15
	ld.h	[%r0],%r15
	ld.w	%r10,0x10	; 	xld.w	%r10,0x00000010		; 16
	ext	0x6		; 	xld.h	[%r0+6],%r10
	ld.h	[%r0],%r10
	ext	0x8		; 	xld.h	[%r0+8],%r11
	ld.h	[%r0],%r11
	ext	0xa		; 	xld.uh	%r10,[%r1+10]
	ld.uh	%r10,[%r1]
	ext	0xa		; 	xld.h	[%r0+10],%r10
	ld.h	[%r0],%r10
	ext	0x10		; 	xld.w	%r10,[%r1+16]
	ld.w	%r10,[%r1]
	ext	0xc		; 	xld.w	[%r0+12],%r10
	ld.w	[%r0],%r10
	ext	0x1c		; 	xadd	%r10,%r1,28
	add	%r10,%r1
	ext	0x10		; 	xld.w	[%r0+16],%r10
	ld.w	[%r0],%r10
	ext	0xc		; 	xld.w	%r10,[%r0+12]
	ld.w	%r10,[%r0]
	ext	0x18		; 	xld.w	[%r0+24],%r10
	ld.w	[%r0],%r10
	ext	0x10		; 	xld.w	%r10,[%r0+16]
	ld.w	%r10,[%r0]
	ext	0x1c		; 	xld.w	[%r0+28],%r10
	ld.w	[%r0],%r10
	ext	0x14		; 	xld.w	[%r0+20],%r2
	ld.w	[%r0],%r2
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	popn	%r2
	ret
	.align	1
	.global	adpcm_stop
adpcm_stop:
;	.frame	%sp,12,$31		# vars= 0, regs= 1/0, args= 8, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	sub	%sp,0x2		; 	xsub	%sp,%sp,8
	cmp	%r12,0x0
	jrlt	__LX88		; 	xjrlt	__L88
	ext	driver+0x0@h	; 	xld.w	%r13,driver
	ext	driver+0x0@m
	ld.w	%r13,driver+0x0@l
	ld.w	%r10,[%r13]	; 	xld.w	%r10,[%r13]
	sub	%r10,0x1	; 	xsub	%r10,%r10,1
	cmp	%r12,%r10
	jrle	__LX87		; 	xjrle	__L87
__LX88:				; __L88:
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x2		; 	xld.w	%r10,0x00000082		; 130
	ld.w	%r10,0x2
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX87:				; __L87:
	ld.w	%r11,%r12
	sll	%r11,0x5	; 	xsll	%r11,5
	ext	0x4		; 	xld.w	%r10,[%r13+4]
	ld.w	%r10,[%r13]
	add	%r10,%r11
	ld.w	%r14,0x0
	ext	0x14		; 	xld.w	[%r10+20],%r14
	ld.w	[%r10],%r14
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	ret
	.align	1
	.global	adpcm_stat
adpcm_stat:
;	.frame	%sp,12,$31		# vars= 0, regs= 1/0, args= 8, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	sub	%sp,0x2		; 	xsub	%sp,%sp,8
	cmp	%r12,0x0
	jrlt	__LX91		; 	xjrlt	__L91
	ext	driver+0x0@h	; 	xld.w	%r13,driver
	ext	driver+0x0@m
	ld.w	%r13,driver+0x0@l
	ld.w	%r10,[%r13]	; 	xld.w	%r10,[%r13]
	sub	%r10,0x1	; 	xsub	%r10,%r10,1
	cmp	%r12,%r10
	jrle	__LX90		; 	xjrle	__L90
__LX91:				; __L91:
	ext	__LC0+0x0@h	; 	xld.w	%r10,__LC0
	ext	__LC0+0x0@m
	ld.w	%r10,__LC0+0x0@l
	ld.w	[%sp+0x0],%r10	; 	xld.w	[%sp],%r10
	ext	0x2		; 	xld.w	%r10,0x0000008f		; 143
	ld.w	%r10,0xf
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
__LX90:				; __L90:
	ld.w	%r11,%r12
	sll	%r11,0x5	; 	xsll	%r11,5
	ext	0x4		; 	xld.w	%r10,[%r13+4]
	ld.w	%r10,[%r13]
	add	%r10,%r11
	ext	0x14		; 	xld.w	%r10,[%r10+20]
	ld.w	%r10,[%r10]
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	ret

	.lcomm	driver 8
