
;  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:
; APP
	
		.code
		.align		1
		.global		fp16_read
fp16_read:
		ld.h		%r11, [%r12]			;// %r11 := ssssssss ssssssss seeeeemm mmmmmmmm
	ext	0x3		; 		xand		%r10, %r11, 0x00007C00		;// %r10 := 00000000 00000000 0eeeee00 00000000
	ext	0x1c00
	and	%r10,%r11
		jreq		fp16_read_RET			;// if(!e) { return 0.0f }
	ext	0x100f		; 		xand		%r11, %r11, 0xFFFC03FF		;// %r11 := ssssssss ssssss00 000000mm mmmmmmmm
	and	%r11,0x3f
	ext	0x700		; 		xadd		%r10, %r10, 0x0001C000		;// %r10 := 00000000 000000ee eeeeee00 00000000 (e += (127-15)<<10)
	add	%r10,0x0
		or		%r10, %r11			;// %r10 := ssssssss ssssssee eeeeeemm mmmmmmmm
		sla		%r10, 8				;// %r10 := ssssssee eeeeeemm mmmmmmmm 00000000
fp16_read_RET:
		ret.d
		sla		%r10, 5				;// %r10 := seeeeeee emmmmmmm mmm00000 00000000		*delay*

	
		.code
		.align		1
		.global		fp16_write
fp16_write:
		rl		%r13, 6				;// %r13 := eeemmmmm mmmmmmmm mmmmmmmm mmseeeee
	ext	0x20		; 		xand		%r10, %r13, 0x00000020		;// %r10 := 00000000 00000000 00000000 00s00000
	and	%r10,%r13
		rl		%r13, 3				;// %r13 := mmmmmmmm mmmmmmmm mmmmmmms eeeeeeee
		ld.ub		%r11, %r13			;// %r11 := 00000000 00000000 00000000 eeeeeeee
		xor		%r13, %r11			;// %r13 := mmmmmmmm mmmmmmmm mmmmmmms 00000000
	ext	0x1		; 		xsub		%r11, %r11, 112			;// %r11 := 00000000 00000000 00000000 000eeeee (e -= (127-15))
	sub	%r11,0x30
		jrle		fp16_write_RET0			;// if(e <= 0) { p->s = p->e = p->m = 0 }
		cmp		%r11, 31			;// if(e > 31) { overflow }
		jrgt		fp16_write_DIE
		or		%r10, %r11			;// %r10 := 00000000 00000000 00000000 00seeeee
		or		%r10, %r13			;// %r10 := mmmmmmmm mmmmmmmm mmmmmmms 00seeeee
	rl	%r10,0x8	; 		xrl		%r10, 10			;// %r10 := mmmmmmmm mmmmms00 seeeeemm mmmmmmmm
	rl	%r10,0x2
		ld.h		[%r12], %r10			;// *p   :=                   seeeeemm mmmmmmmm
		ret
fp16_write_RET0:
		ld.h		[%r12], %r8			;// *p   :=                   00000000 00000000
		ret

	.code
	.align	2
__LC0:
	.ascii	"clipfp16.$(%d)\000"
; NO_APP
	.code
	.align	1
fp16_write_DIE:
;	.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
	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,0x0000005e		; 94
	ld.w	%r10,0x1e
	ld.w	[%sp+0x1],%r10	; 	xld.w	[%sp+4],%r10
	ext	die@rm		; 	xcall	die
	call	die@rl
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	ret
