bmp.s

来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· S 代码 · 共 1,106 行

S
1,106
字号
.file	1 "bmp.c".section .mdebug.abi32.previous.section	.text.bmp_decode_end,"ax",@progbits.align	2.align	5.ent	bmp_decode_end.type	bmp_decode_end, @functionbmp_decode_end:.frame	$sp,24,$31		# vars= 0, regs= 1/0, args= 16, gp= 0.mask	0x80000000,-8.fmask	0x00000000,0.set	noreorder.set	nomacroaddiu	$sp,$sp,-24sw	$31,16($sp)lw	$5,136($4)lw	$2,0($5)beq	$2,$0,$L6lw	$31,16($sp)lw	$2,264($4)jal	$2noplw	$31,16($sp)$L6:move	$2,$0j	$31addiu	$sp,$sp,24.set	macro.set	reorder.end	bmp_decode_end.section	.text.bmp_decode_init,"ax",@progbits.align	2.align	5.ent	bmp_decode_init.type	bmp_decode_init, @functionbmp_decode_init:.frame	$sp,32,$31		# vars= 0, regs= 3/0, args= 16, gp= 0.mask	0x80030000,-8.fmask	0x00000000,0.set	noreorder.set	nomacroaddiu	$sp,$sp,-32sw	$31,24($sp)sw	$17,20($sp)sw	$16,16($sp)lw	$16,136($4)move	$17,$4jal	avcodec_get_frame_defaultsmove	$4,$16sw	$16,408($17)lw	$31,24($sp)lw	$17,20($sp)lw	$16,16($sp)move	$2,$0j	$31addiu	$sp,$sp,32.set	macro.set	reorder.end	bmp_decode_init.section	.rodata.str1.4,"aMS",@progbits,1.align	2$LC0:.ascii	"buf size too small (%d)\012\000".align	2$LC1:.ascii	"bad magic number\012\000".align	2$LC2:.ascii	"not enough data (%d < %d)\012\000".align	2$LC3:.ascii	"invalid header size %d\012\000".align	2$LC4:.ascii	"invalid BMP header\012\000".align	2$LC5:.ascii	"BMP coding %d not supported\012\000".align	2$LC6:.ascii	"depth %d not supported\012\000".align	2$LC7:.ascii	"unsupported pixel format\012\000".align	2$LC8:.ascii	"get_buffer() failed\012\000".align	2$LC9:.ascii	"BMP decoder is broken\012\000".section	.text.bmp_decode_frame,"ax",@progbits.align	2.align	5.ent	bmp_decode_frame.type	bmp_decode_frame, @functionbmp_decode_frame:.frame	$sp,96,$31		# vars= 32, regs= 10/0, args= 24, gp= 0.mask	0xc0ff0000,-4.fmask	0x00000000,0addiu	$sp,$sp,-96sw	$19,68($sp)lw	$19,112($sp)sw	$20,72($sp)sw	$17,60($sp)sw	$31,92($sp)sw	$fp,88($sp)sw	$23,84($sp)sw	$22,80($sp)sw	$21,76($sp)sw	$18,64($sp)sw	$16,56($sp)sw	$5,100($sp)slt	$2,$19,14move	$20,$4sw	$6,104($sp)move	$17,$7.set	noreorder.set	nomacrobne	$2,$0,$L97lw	$22,136($4).set	macro.set	reorderlbu	$3,0($7)li	$2,66			# 0x42.set	noreorder.set	nomacrobne	$3,$2,$L13li	$2,77			# 0x4d.set	macro.set	reorderlbu	$3,1($7).set	noreorder.set	nomacrobeq	$3,$2,$L15addiu	$5,$7,6.set	macro.set	reorder$L13:lui	$6,%hi($LC1)addiu	$6,$6,%lo($LC1).set	noreorder.set	nomacrojal	av_logmove	$5,$0.set	macro.set	reorderli	$19,-1			# 0xffffffffffffffff$L12:move	$2,$19$L111:lw	$31,92($sp)lw	$fp,88($sp)lw	$23,84($sp)lw	$22,80($sp)lw	$21,76($sp)lw	$20,72($sp)lw	$19,68($sp)lw	$18,64($sp)lw	$17,60($sp)lw	$16,56($sp).set	noreorder.set	nomacroj	$31addiu	$sp,$sp,96.set	macro.set	reorder$L15:lbu	$2,-1($5)lbu	$6,-2($5)lbu	$7,-4($5)lbu	$3,-3($5)sll	$2,$2,24sll	$6,$6,16or	$2,$2,$6or	$2,$2,$7sll	$3,$3,8or	$8,$3,$2sltu	$5,$19,$8.set	noreorder.set	nomacrobne	$5,$0,$L98lui	$6,%hi($LC2).set	macro.set	reorderaddiu	$5,$17,14lbu	$2,-1($5)lbu	$6,-2($5)lbu	$7,-4($5)lbu	$3,-3($5)sll	$2,$2,24sll	$6,$6,16or	$2,$2,$6or	$2,$2,$7sll	$3,$3,8or	$23,$3,$2sltu	$5,$23,$8.set	noreorder.set	nomacrobeq	$5,$0,$L99lui	$6,%hi($LC2).set	macro.set	reorderaddiu	$2,$17,18lbu	$3,-1($2)lbu	$6,-2($2)lbu	$7,-4($2)sll	$6,$6,16lbu	$5,-3($2)sll	$3,$3,24or	$3,$3,$6or	$3,$3,$7sll	$5,$5,8or	$6,$5,$3addiu	$2,$6,14sltu	$2,$23,$2.set	noreorder.set	nomacrobne	$2,$0,$L100addiu	$2,$17,28.set	macro.set	reorderlbu	$3,-2($2)lbu	$5,-1($2)addiu	$2,$17,22lbu	$7,-4($2)sll	$5,$5,8sw	$7,48($sp)or	$5,$5,$3addiu	$3,$17,26lbu	$7,-4($3)sw	$7,40($sp)lbu	$fp,-1($2)lbu	$31,-2($2)lbu	$2,-3($2)sw	$2,44($sp)li	$2,1			# 0x1lbu	$18,-1($3)lbu	$21,-2($3).set	noreorder.set	nomacrobne	$5,$2,$L101lbu	$25,-3($3).set	macro.set	reorderaddiu	$2,$17,30lbu	$5,-2($2)sltu	$3,$6,17sw	$5,36($sp).set	noreorder.set	nomacrobeq	$3,$0,$L24lbu	$24,-1($2).set	macro.set	reordermove	$16,$0$L26:sll	$3,$18,24$L113:sll	$2,$21,16lw	$6,40($sp)or	$3,$3,$2or	$3,$3,$6sll	$2,$25,8sll	$4,$fp,24sll	$5,$31,16or	$fp,$2,$3lw	$7,48($sp)lw	$3,44($sp)or	$4,$4,$5or	$4,$4,$7sll	$2,$3,8or	$5,$2,$4lw	$4,36($sp)sll	$3,$24,8or	$18,$3,$4sw	$5,40($20).set	noreorder.set	nomacrobltz	$fp,$L102sw	$fp,44($20).set	macro.set	reorder$L30:li	$2,-1			# 0xffffffffffffffffli	$3,24			# 0x18.set	noreorder.set	nomacrobeq	$18,$3,$L33sw	$2,52($20).set	macro.set	reorderli	$2,32			# 0x20.set	noreorder.set	nomacrobeq	$18,$2,$L34li	$2,16			# 0x10.set	macro.set	reorder.set	noreorder.set	nomacrobeq	$18,$2,$L103lui	$6,%hi($LC6).set	macro.set	reordermove	$4,$20addiu	$6,$6,%lo($LC6)move	$7,$18.set	noreorder.set	nomacrojal	av_logmove	$5,$0.set	macro.set	reorder.set	noreorder.set	nomacroj	$L12li	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder$L24:addiu	$5,$17,34lbu	$2,-1($5)lbu	$6,-2($5)sll	$2,$2,24sll	$6,$6,16lbu	$7,-4($5)lbu	$3,-3($5)or	$2,$2,$6or	$2,$2,$7sll	$3,$3,8or	$16,$3,$2.set	noreorder.set	nomacrobeq	$16,$0,$L113sll	$3,$18,24.set	macro.set	reorderli	$2,3			# 0x3.set	noreorder.set	nomacrobne	$16,$2,$L104addiu	$7,$17,58.set	macro.set	reorderaddiu	$8,$17,62addiu	$9,$17,66lbu	$4,-1($7)lbu	$12,-2($7)lbu	$3,-1($8)lbu	$11,-2($8)lbu	$2,-1($9)lbu	$10,-2($9)lbu	$15,-4($7)lbu	$5,-3($7)lbu	$14,-4($8)lbu	$13,-4($9)lbu	$6,-3($8)lbu	$7,-3($9)sll	$4,$4,24sll	$12,$12,16sll	$3,$3,24sll	$11,$11,16sll	$2,$2,24sll	$10,$10,16or	$4,$4,$12or	$3,$3,$11or	$2,$2,$10or	$4,$4,$15or	$3,$3,$14or	$2,$2,$13sll	$5,$5,8sll	$6,$6,8sll	$7,$7,8or	$5,$5,$4or	$6,$6,$3or	$7,$7,$2sw	$5,24($sp)sw	$6,28($sp).set	noreorder.set	nomacroj	$L26sw	$7,32($sp).set	macro.set	reorder$L34:li	$2,3			# 0x3.set	noreorder.set	nomacrobeq	$16,$2,$L35li	$5,1			# 0x1.set	macro.set	reorderli	$6,2			# 0x2sw	$0,32($sp)sw	$5,28($sp)sw	$6,24($sp)$L33:li	$2,3			# 0x3$L116:sw	$2,52($20)$L42:lw	$2,0($22).set	noreorder.set	nomacrobeq	$2,$0,$L45move	$4,$20.set	macro.set	reorderlw	$2,264($20).set	noreorder.set	nomacrojal	$2move	$5,$22.set	macro.set	reorder$L45:lw	$2,260($20)sw	$0,80($22)move	$4,$20.set	noreorder.set	nomacrojal	$2move	$5,$22.set	macro.set	reorder.set	noreorder.set	nomacrobltz	$2,$L105li	$2,1			# 0x1.set	macro.set	reordersw	$2,48($22)sw	$2,52($22)lw	$5,40($20)srl	$2,$18,3mul	$2,$2,$5li	$3,-4			# 0xfffffffffffffffcaddiu	$2,$2,3lw	$10,44($20)and	$21,$2,$3mul	$3,$21,$10subu	$7,$19,$23slt	$2,$7,$3.set	noreorder.set	nomacrobne	$2,$0,$L106lui	$6,%hi($LC2).set	macro.set	reorder.set	noreorder.set	nomacroblez	$fp,$L50addiu	$2,$10,-1.set	macro.set	reorderlw	$4,16($22)mul	$6,$2,$4lw	$3,0($22)subu	$fp,$0,$4addu	$16,$6,$3$L52:li	$2,24			# 0x18.set	noreorder.set	nomacrobeq	$18,$2,$L55addu	$17,$17,$23.set	macro.set	reorderli	$2,32			# 0x20.set	noreorder.set	nomacrobeq	$18,$2,$L56li	$2,16			# 0x10.set	macro.set	reorder.set	noreorder.set	nomacrobeq	$18,$2,$L107lui	$6,%hi($LC9).set	macro.set	reordermove	$4,$20addiu	$6,$6,%lo($LC9).set	noreorder.set	nomacrojal	av_logmove	$5,$0.set	macro.set	reorder.set	noreorder.set	nomacroj	$L12li	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder$L102:subu	$10,$0,$fp.set	noreorder.set	nomacroj	$L30sw	$10,44($20).set	macro.set	reorder$L107:.set	noreorder.set	nomacroblez	$10,$L58move	$6,$0.set	macro.set	reorder$L75:blez	$5,$L76move	$7,$17move	$4,$16move	$8,$0$L78:lhu	$2,0($7)addiu	$8,$8,1slt	$3,$8,$5sh	$2,0($4)addiu	$7,$7,2.set	noreorder.set	nomacrobne	$3,$0,$L78addiu	$4,$4,2.set	macro.set	reorder$L76:addiu	$6,$6,1slt	$2,$6,$10.set	noreorder.set	nomacrobeq	$2,$0,$L58addu	$17,$17,$21.set	macro.set	reorder.set	noreorder.set	nomacroj	$L75addu	$16,$16,$fp.set	macro.set	reorder$L35:lw	$3,28($sp)lw	$7,24($sp)srl	$4,$3,15andi	$4,$4,0x3sw	$4,28($sp)lw	$4,32($sp)srl	$2,$7,15lw	$5,28($sp)andi	$2,$2,0x3srl	$3,$4,15andi	$3,$3,0x3sw	$2,24($sp)addu	$2,$2,$5addu	$2,$3,$2.set	noreorder.set	nomacrobeq	$2,$16,$L108sw	$3,32($sp).set	macro.set	reorder$L38:lui	$6,%hi($LC7)$L112:move	$4,$20$L117:addiu	$6,$6,%lo($LC7).set	noreorder.set	nomacrojal	av_logmove	$5,$0.set	macro.set	reorder.set	noreorder.set	nomacroj	$L12li	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder$L58:lw	$7,100($sp)move	$6,$22addiu	$8,$22,192$L85:lw	$2,0($6)lw	$3,4($6)lw	$4,8($6)lw	$5,12($6)addiu	$6,$6,16sw	$2,0($7)sw	$3,4($7)sw	$4,8($7)sw	$5,12($7).set	noreorder.set	nomacrobne	$6,$8,$L85addiu	$7,$7,16.set	macro.set	reorderlw	$2,4($6)lw	$3,0($6)sw	$2,4($7)sw	$3,0($7)lw	$3,104($sp)li	$2,32			# 0x20.set	noreorder.set	nomacroj	$L12sw	$2,0($3).set	macro.set	reorder$L103:.set	noreorder.set	nomacrobne	$16,$0,$L112lui	$6,%hi($LC7).set	macro.set	reorderli	$2,10			# 0xa.set	noreorder.set	nomacroj	$L42sw	$2,52($20).set	macro.set	reorder$L55:.set	noreorder.set	nomacroblez	$10,$L58move	$18,$0.set	macro.set	reorder$L61:sll	$2,$5,1addu	$6,$2,$5sltu	$3,$6,32.set	noreorder.set	nomacrobne	$3,$0,$L114move	$4,$16.set	macro.set	reorderandi	$2,$16,0x3bne	$2,$0,$L114andi	$2,$17,0x3bne	$2,$0,$L62li	$2,-32			# 0xffffffffffffffe0addiu	$8,$16,-4and	$2,$6,$2addu	$9,$2,$8sltu	$3,$8,$9.set	noreorder.set	nomacrobeq	$3,$0,$L66addiu	$7,$17,-4.set	macro.set	reorder$L87:#APP.word	0b01110000111000000000010001010100	#S32LDI XR1,$7,4.word	0b01110000111000000000010010010100	#S32LDI XR2,$7,4.word	0b01110000111000000000010011010100	#S32LDI XR3,$7,4.word	0b01110000111000000000010100010100	#S32LDI XR4,$7,4.word	0b01110000111000000000010101010100	#S32LDI XR5,$7,4.word	0b01110000111000000000010110010100	#S32LDI XR6,$7,4.word	0b01110000111000000000010111010100	#S32LDI XR7,$7,4.word	0b01110000111000000000011000010100	#S32LDI XR8,$7,4.word	0b01110001000000000000010001010101	#S32SDI XR1,$8,4.word	0b01110001000000000000010010010101	#S32SDI XR2,$8,4.word	0b01110001000000000000010011010101	#S32SDI XR3,$8,4.word	0b01110001000000000000010100010101	#S32SDI XR4,$8,4.word	0b01110001000000000000010101010101	#S32SDI XR5,$8,4.word	0b01110001000000000000010110010101	#S32SDI XR6,$8,4.word	0b01110001000000000000010111010101	#S32SDI XR7,$8,4.word	0b01110001000000000000011000010101	#S32SDI XR8,$8,4#NO_APPsltu	$2,$8,$9bne	$2,$0,$L87$L66:andi	$2,$6,0x1caddu	$9,$9,$2sltu	$3,$8,$9.set	noreorder.set	nomacrobeq	$3,$0,$L115andi	$3,$6,0x3.set	macro.set	reorder$L88:#APP.word	0b01110000111000000000010001010100	#S32LDI XR1,$7,4.word	0b01110001000000000000010001010101	#S32SDI XR1,$8,4#NO_APPsltu	$2,$8,$9.set	noreorder.set	nomacrobne	$2,$0,$L88andi	$3,$6,0x3.set	macro.set	reorder$L115:li	$2,2			# 0x2.set	noreorder.set	nomacrobeq	$3,$2,$L72li	$2,3			# 0x3.set	macro.set	reorder.set	noreorder.set	nomacrobeq	$3,$2,$L73li	$2,1			# 0x1.set	macro.set	reorderbeq	$3,$2,$L109$L70:lw	$2,44($20)$L110:addiu	$18,$18,1slt	$2,$18,$2.set	noreorder.set	nomacrobeq	$2,$0,$L58addu	$17,$17,$21.set	macro.set	reorderlw	$5,40($20).set	noreorder.set	nomacroj	$L61addu	$16,$16,$fp.set	macro.set	reorder$L62:$L114:.set	noreorder.set	nomacrojal	memcpymove	$5,$17.set	macro.set	reorder.set	noreorder.set	nomacroj	$L110lw	$2,44($20).set	macro.set	reorder$L50:lw	$16,0($22).set	noreorder.set	nomacroj	$L52lw	$fp,16($22).set	macro.set	reorder$L56:.set	noreorder.set	nomacroblez	$10,$L58lw	$2,32($sp).set	macro.set	reorderlw	$3,24($sp)addu	$7,$17,$2lw	$2,28($sp)addu	$6,$3,$17addu	$4,$17,$2move	$8,$0$L80:blez	$5,$L81move	$13,$7move	$12,$4move	$11,$6move	$10,$16move	$14,$0$L83:lbu	$2,0($13)addiu	$14,$14,1sb	$2,0($10)lbu	$3,0($12)addiu	$13,$13,4sb	$3,1($10)lbu	$2,0($11)addiu	$12,$12,4sb	$2,2($10)lw	$5,40($20)addiu	$10,$10,3slt	$2,$14,$5.set	noreorder.set	nomacrobne	$2,$0,$L83addiu	$11,$11,4.set	macro.set	reorderlw	$10,44($20)$L81:addiu	$8,$8,1slt	$2,$8,$10addu	$6,$6,$21addu	$4,$4,$21.set	noreorder.set	nomacrobeq	$2,$0,$L58addu	$7,$7,$21.set	macro.set	reorder.set	noreorder.set	nomacroj	$L80addu	$16,$16,$fp.set	macro.set	reorder$L97:lui	$6,%hi($LC0)move	$7,$19addiu	$6,$6,%lo($LC0).set	noreorder.set	nomacrojal	av_logmove	$5,$0.set	macro.set	reorder.set	noreorder.set	nomacroj	$L12li	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder$L72:lbu	$2,4($7)sb	$2,4($8)lbu	$3,5($7).set	noreorder.set	nomacroj	$L70sb	$3,5($8).set	macro.set	reorder$L73:lbu	$2,4($7)sb	$2,4($8)lbu	$3,5($7)sb	$3,5($8)lbu	$2,6($7).set	noreorder.set	nomacroj	$L70sb	$2,6($8).set	macro.set	reorder$L101:lui	$6,%hi($LC4)addiu	$6,$6,%lo($LC4).set	noreorder.set	nomacrojal	av_logmove	$5,$0.set	macro.set	reorder.set	noreorder.set	nomacroj	$L12li	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder$L109:lbu	$2,4($7).set	noreorder.set	nomacroj	$L70sb	$2,4($8).set	macro.set	reorder$L98:move	$7,$19addiu	$6,$6,%lo($LC2)move	$5,$0sw	$8,16($sp).set	noreorder.set	nomacrojal	av_logli	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder.set	noreorder.set	nomacroj	$L111move	$2,$19.set	macro.set	reorder$L99:addiu	$6,$6,%lo($LC2)move	$7,$8move	$5,$0sw	$23,16($sp).set	noreorder.set	nomacrojal	av_logli	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder.set	noreorder.set	nomacroj	$L111move	$2,$19.set	macro.set	reorder$L100:lui	$6,%hi($LC3)addiu	$6,$6,%lo($LC3)move	$7,$23.set	noreorder.set	nomacrojal	av_logmove	$5,$0.set	macro.set	reorder.set	noreorder.set	nomacroj	$L12li	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder$L108:lw	$6,24($sp)beq	$6,$5,$L38.set	noreorder.set	nomacrobeq	$6,$3,$L112lui	$6,%hi($LC7).set	macro.set	reorder.set	noreorder.set	nomacrobne	$5,$3,$L116li	$2,3			# 0x3.set	macro.set	reorder.set	noreorder.set	nomacroj	$L117move	$4,$20.set	macro.set	reorder$L104:lui	$6,%hi($LC5)addiu	$6,$6,%lo($LC5)move	$7,$16.set	noreorder.set	nomacrojal	av_logmove	$5,$0.set	macro.set	reorder.set	noreorder.set	nomacroj	$L12li	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder$L106:move	$4,$20addiu	$6,$6,%lo($LC2)move	$5,$0sw	$3,16($sp).set	noreorder.set	nomacrojal	av_logli	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder.set	noreorder.set	nomacroj	$L111move	$2,$19.set	macro.set	reorder$L105:lui	$6,%hi($LC8)move	$4,$20addiu	$6,$6,%lo($LC8).set	noreorder.set	nomacrojal	av_logmove	$5,$0.set	macro.set	reorder.set	noreorder.set	nomacroj	$L12li	$19,-1			# 0xffffffffffffffff.set	macro.set	reorder.end	bmp_decode_frame.globl	bmp_decoder.section	.rodata.str1.4.align	2$LC10:.ascii	"bmp\000".data.align	2.type	bmp_decoder, @object.size	bmp_decoder, 52bmp_decoder:.word	$LC10.word	0.word	81.word	200.word	bmp_decode_init.word	0.word	bmp_decode_end.word	bmp_decode_frame.space	20.ident	"GCC: (GNU) 4.1.2"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?