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 + -
显示快捷键?