⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unpack.s

📁 This Source-Navigator, an IDE for C/C++/Fortran/Java/Tcl/PHP/Python and a host of other languages.
💻 S
字号:
	.file	"unpack.c" # rs6000/powerpc options: -msdata=data -G 8 # GNU C version 2.7-97r2 (powerpc-eabi) compiled by GNU C version 2.7-97r2. # options passed:  -O # options enabled:  -fdefer-pop -fomit-frame-pointer -fthread-jumps # -fpeephole -ffunction-cse -finline -fkeep-static-consts # -fpcc-struct-return -fsjlj-exceptions -fcommon -fverbose-asm # -fgnu-linker -mpowerpc -mnew-mnemonics -meabi -mcall-sysv -msdata=datagcc2_compiled.:	.section	".rodata"	.align 2.LC0:	.string	"invalid compressed data -- Huffman code > 32 bits"	.align 2.LC1:	.string	"too many leaves in Huffman tree"	.section ".text"	.align 2	.type	 read_tree,@functionread_tree:	stwu 1,-48(1)	mflr 0	stw 22,8(1)	stw 23,12(1)	stw 24,16(1)	stw 25,20(1)	stw 26,24(1)	stw 27,28(1)	stw 28,32(1)	stw 29,36(1)	stw 30,40(1)	stw 31,44(1)	stw 0,52(1)	addis 9,0,orig_len@ha	li 0,0	stw 0,orig_len@l(9)	li 30,1	mr 25,9	addi 26,9,orig_len@l	addis 29,0,inptr@ha	addis 27,0,insize@ha	addis 9,0,inbuf@ha	addi 28,9,inbuf@l.L5:	lwz 0,orig_len@l(25)	slwi 31,0,8	lwz 9,inptr@l(29)	lwz 0,insize@l(27)	cmplw 1,9,0	bc 4,4,.L6	lbzx 0,28,9	or 11,31,0	addi 0,9,1	stw 0,inptr@l(29)	b .L7.L6:	li 3,0	bl fill_inbuf	or 11,31,3.L7:	stw 11,0(26)	addi 30,30,1	cmpwi 1,30,4	bc 4,5,.L5	addis 9,0,max_len@ha	addi 31,9,max_len@l	addis 10,0,inptr@ha	addis 9,0,insize@ha	lwz 11,inptr@l(10)	lwz 0,insize@l(9)	cmplw 1,11,0	bc 4,4,.L9	addis 9,0,inbuf@ha	addi 9,9,inbuf@l	lbzx 3,9,11	addi 0,11,1	stw 0,inptr@l(10)	b .L10.L9:	li 3,0	bl fill_inbuf.L10:	stw 3,0(31)	addis 9,0,max_len@ha	lwz 0,max_len@l(9)	cmpwi 1,0,25	bc 4,5,.L11	addis 3,0,.LC0@ha	addi 3,3,.LC0@l	bl error.L11:	li 30,0	li 29,1	addis 9,0,max_len@ha	lwz 0,max_len@l(9)	cmpw 1,29,0	bc 12,5,.L13	addis 9,0,leaves@ha	addi 27,9,leaves@l	addis 28,0,inptr@ha	addis 24,0,insize@ha	addis 9,0,inbuf@ha	addi 25,9,inbuf@l	addis 26,0,max_len@ha.L15:	slwi 31,29,2	lwz 9,inptr@l(28)	lwz 0,insize@l(24)	cmplw 1,9,0	bc 4,4,.L16	lbzx 3,25,9	addi 0,9,1	stw 0,inptr@l(28)	b .L17.L16:	li 3,0	bl fill_inbuf.L17:	stwx 3,27,31	slwi 0,29,2	lwzx 0,27,0	add 30,30,0	addi 29,29,1	lwz 0,max_len@l(26)	cmpw 1,29,0	bc 4,5,.L15.L13:	cmpwi 1,30,256	bc 4,5,.L19	addis 3,0,.LC1@ha	addi 3,3,.LC1@l	bl error.L19:	addis 11,0,leaves@ha	addis 9,0,max_len@ha	lwz 10,max_len@l(9)	addi 11,11,leaves@l	slwi 9,10,2	lwzx 0,11,9	addic 0,0,1	stwx 0,11,9	li 28,0	li 29,1	cmpw 1,29,10	bc 12,5,.L21	addis 9,0,lit_base@ha	addi 22,9,lit_base@l	addis 9,0,leaves@ha	addi 23,9,leaves@l	addis 9,0,literal@ha	addi 24,9,literal@l	addis 26,0,inptr@ha	addis 25,0,insize@ha.L23:	slwi 0,29,2	stwx 28,22,0	lwzx 30,23,0	cmpwi 1,30,0	bc 4,5,.L22	addis 9,0,inbuf@ha	addi 27,9,inbuf@l.L27:	mr 31,28	addi 28,31,1	lwz 9,inptr@l(26)	lwz 0,insize@l(25)	cmplw 1,9,0	bc 4,4,.L28	lbzx 3,27,9	addi 0,9,1	stw 0,inptr@l(26)	b .L29.L28:	li 3,0	bl fill_inbuf.L29:	stbx 3,24,31	addic. 30,30,-1	bc 12,1,.L27.L22:	addi 29,29,1	addis 9,0,max_len@ha	lwz 0,max_len@l(9)	cmpw 1,29,0	bc 4,5,.L23.L21:	addis 11,0,leaves@ha	addis 9,0,max_len@ha	lwz 9,max_len@l(9)	addi 11,11,leaves@l	slwi 9,9,2	lwzx 0,11,9	addic 0,0,1	stwx 0,11,9	lwz 0,52(1)	mtlr 0	lwz 22,8(1)	lwz 23,12(1)	lwz 24,16(1)	lwz 25,20(1)	lwz 26,24(1)	lwz 27,28(1)	lwz 28,32(1)	lwz 29,36(1)	lwz 30,40(1)	lwz 31,44(1)	addi 1,1,48	blr.Lfe1:	.size	 read_tree,.Lfe1-read_tree	.align 2	.type	 build_tree,@functionbuild_tree:	li 11,0	addis 9,0,max_len@ha	lwz 10,max_len@l(9)	cmpw 1,10,11	bc 4,5,.L34	addis 9,0,parents@ha	addi 6,9,parents@l	addis 9,0,lit_base@ha	addi 8,9,lit_base@l	addis 9,0,leaves@ha	addi 7,9,leaves@l.L36:	srawi 11,11,1	slwi 0,10,2	stwx 11,6,0	lwzx 9,8,0	subf 9,11,9	stwx 9,8,0	lwzx 0,7,0	add 11,11,0	addic. 10,10,-1	bc 12,1,.L36.L34:	addis 9,0,peek_bits@ha	addi 11,9,peek_bits@l	addis 9,0,max_len@ha	lwz 0,max_len@l(9)	cmpwi 1,0,12	bc 4,5,.L39	li 0,12.L39:	stw 0,0(11)	addis 9,0,peek_bits@ha	li 0,1	lwz 11,peek_bits@l(9)	slw 0,0,11	addis 9,0,outbuf@ha	addi 9,9,outbuf@l	add 8,0,9	li 10,1	cmpw 1,10,11	bc 12,5,.L41	addis 9,0,leaves@ha	addi 7,9,leaves@l	addis 11,0,peek_bits@ha.L43:	slwi 9,10,2	lwz 0,peek_bits@l(11)	subf 0,10,0	lwzx 9,7,9	slw 9,9,0	cmpwi 1,9,0	addi 9,9,-1	bc 12,6,.L42.L46:	stbu 10,-1(8)	cmpwi 1,9,0	addi 9,9,-1	bc 4,6,.L46.L42:	addi 10,10,1	lwz 0,peek_bits@l(11)	cmpw 1,10,0	bc 4,5,.L43.L41:	addis 9,0,outbuf@ha	addi 9,9,outbuf@l	cmplw 1,8,9	bclr 4,5	li 0,0	addis 9,0,outbuf@ha	addi 9,9,outbuf@l.L51:	stbu 0,-1(8)	cmplw 1,8,9	bc 12,5,.L51	blr.Lfe2:	.size	 build_tree,.Lfe2-build_tree	.section	".rodata"	.align 2.LC2:	.string	"invalid compressed data--length error"	.section ".text"	.align 2	.globl unpack	.type	 unpack,@functionunpack:	stwu 1,-56(1)	mflr 0	stw 20,8(1)	stw 21,12(1)	stw 22,16(1)	stw 23,20(1)	stw 24,24(1)	stw 25,28(1)	stw 26,32(1)	stw 27,36(1)	stw 28,40(1)	stw 29,44(1)	stw 30,48(1)	stw 31,52(1)	stw 0,60(1)	addis 9,0,ifd@ha	stw 3,ifd@l(9)	addis 9,0,ofd@ha	stw 4,ofd@l(9)	bl read_tree	bl build_tree	addis 9,0,valid@ha	li 0,0	stw 0,valid@l(9)	addis 9,0,bitbuf@ha	stw 0,bitbuf@l(9)	addis 9,0,peek_bits@ha	li 11,1	lwz 0,peek_bits@l(9)	slw 24,11,0	addi 24,24,-1	addis 11,0,leaves@ha	addi 11,11,leaves@l	addis 9,0,max_len@ha	lwz 0,max_len@l(9)	slwi 0,0,2	lwzx 0,11,0	addic 20,0,-1	addis 28,0,valid@ha	addis 21,0,peek_bits@ha	addis 25,0,bitbuf@ha	mr 9,25	addi 22,9,bitbuf@l	addis 26,0,inptr@ha	addis 23,0,insize@ha.L55:	lwz 0,valid@l(28)	lwz 9,peek_bits@l(21)	cmpw 1,0,9	bc 4,4,.L59	addis 9,0,inbuf@ha	addi 29,9,inbuf@l	addis 30,0,peek_bits@ha.L60:	lwz 0,bitbuf@l(25)	slwi 31,0,8	lwz 11,inptr@l(26)	lwz 0,insize@l(23)	cmplw 1,11,0	bc 4,4,.L61	lbzx 0,29,11	or 9,31,0	addi 0,11,1	stw 0,inptr@l(26)	b .L62.L61:	li 3,0	bl fill_inbuf	or 9,31,3.L62:	stw 9,0(22)	lwz 0,valid@l(28)	addic 0,0,8	stw 0,valid@l(28)	lwz 9,peek_bits@l(30)	cmpw 1,0,9	bc 12,4,.L60.L59:	lwz 9,valid@l(28)	lwz 11,peek_bits@l(21)	subf 9,11,9	lwz 0,bitbuf@l(25)	srw 0,0,9	and 6,0,24	addis 9,0,outbuf@ha	addi 9,9,outbuf@l	lbzx 30,9,6	cmpwi 1,30,0	bc 4,5,.L64	subf 0,30,11	srw 6,6,0	b .L65.L64:	mr 29,24	lwz 30,peek_bits@l(21).L66:	addi 30,30,1	slwi 0,29,1	addic 29,0,1	lwz 0,valid@l(28)	cmpw 1,0,30	bc 4,4,.L70	addis 9,0,inbuf@ha	addi 27,9,inbuf@l.L71:	lwz 0,bitbuf@l(25)	slwi 31,0,8	lwz 9,inptr@l(26)	lwz 0,insize@l(23)	cmplw 1,9,0	bc 4,4,.L72	lbzx 0,27,9	or 11,31,0	addi 0,9,1	stw 0,inptr@l(26)	b .L73.L72:	li 3,0	bl fill_inbuf	or 11,31,3.L73:	stw 11,0(22)	lwz 0,valid@l(28)	addic 0,0,8	stw 0,valid@l(28)	cmpw 1,0,30	bc 12,4,.L71.L70:	lwz 9,valid@l(28)	subf 9,30,9	lwz 0,bitbuf@l(25)	srw 0,0,9	and 6,0,29	addis 9,0,parents@ha	addi 9,9,parents@l	slwi 0,30,2	lwzx 0,9,0	cmplw 1,6,0	bc 12,4,.L66.L65:	cmpw 1,6,20	bc 4,6,.L76	addis 9,0,max_len@ha	lwz 0,max_len@l(9)	cmpw 1,30,0	bc 12,6,.L56.L76:	addis 8,0,window@ha	addi 8,8,window@l	addis 7,0,outcnt@ha	lwz 10,outcnt@l(7)	addis 11,0,literal@ha	addi 11,11,literal@l	addis 9,0,lit_base@ha	addi 9,9,lit_base@l	slwi 0,30,2	lwzx 0,9,0	add 0,6,0	lbzx 0,11,0	stbx 0,8,10	addi 10,10,1	stw 10,outcnt@l(7)	li 0,0	ori 0,0,32768	cmpw 1,10,0	bc 4,6,.L77	bl flush_window.L77:	lwz 0,valid@l(28)	subf 0,30,0	stw 0,valid@l(28)	b .L55.L56:	bl flush_window	addis 9,0,orig_len@ha	addis 11,0,bytes_out@ha	lwz 9,orig_len@l(9)	lwz 0,bytes_out@l(11)	cmpw 1,9,0	bc 12,6,.L78	addis 3,0,.LC2@ha	addi 3,3,.LC2@l	bl error.L78:	li 3,0	lwz 0,60(1)	mtlr 0	lwz 20,8(1)	lwz 21,12(1)	lwz 22,16(1)	lwz 23,20(1)	lwz 24,24(1)	lwz 25,28(1)	lwz 26,32(1)	lwz 27,36(1)	lwz 28,40(1)	lwz 29,44(1)	lwz 30,48(1)	lwz 31,52(1)	addi 1,1,56	blr.Lfe3:	.size	 unpack,.Lfe3-unpack	.section ".sdata","aw"	.align 2orig_len:	.space	4	.size	 orig_len,4	.align 2max_len:	.space	4	.size	 max_len,4	.lcomm	literal,256,1	.lcomm	lit_base,104,4	.lcomm	leaves,104,4	.lcomm	parents,104,4	.align 2peek_bits:	.space	4	.size	 peek_bits,4	.align 2bitbuf:	.space	4	.size	 bitbuf,4	.align 2valid:	.space	4	.size	 valid,4	.ident	"GCC: (GNU) 2.7-97r2"

⌨️ 快捷键说明

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