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

📄 inftrees.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	st2	[r19]=r31				    //110 	cc:9
	nop.m	 0
	br.cond.sptk.few $LN60@inflate_ta#;;		    //110 	cc:9
 }
$LN59@inflate_ta:

// 111  : 
// 112  :     /* bound code lengths, force root to be within code lengths */
// 113  :     root = *bits;
// 114  :     for (max = MAXBITS; max >= 1; max--)

 {   .mib  //R-Addr: 0X0210 
	adds	r18=bits$, sp				    //113 	cc:0
	adds	r15=root$, sp				    //113 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0220 
	ld8	r17=[r18];;				    //113 	cc:1
	ld4	r16=[r17]				    //113 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0230 
	st4	[r15]=r16;;				    //113 	cc:4
	mov	r11=15					    //114 	cc:0
	adds	r10=max$, sp;;				    //114 	cc:0
 }
 {   .mmb  //R-Addr: 0X0240 
	st4	[r10]=r11				    //114 	cc:1
	nop.m	 0
	br.cond.sptk.few $LN58@inflate_ta#;;		    //114 	cc:1
 }
$LN57@inflate_ta:

// 114  :     for (max = MAXBITS; max >= 1; max--)

 {   .mib  //R-Addr: 0X0250 
	adds	r9=max$, sp				    //114 	cc:0
	adds	r30=max$, sp				    //114 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0260 
	ld4	r8=[r9];;				    //114 	cc:1
	adds	r31=-1, r8				    //114 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0270 
	st4	[r30]=r31				    //114 	cc:3
	nop.m	 0
	nop.b	 0;;
 }
$LN58@inflate_ta:

// 114  :     for (max = MAXBITS; max >= 1; max--)

 {   .mmi  //R-Addr: 0X0280 
	adds	r29=max$, sp;;				    //114 	cc:0
	ld4	r28=[r29]				    //114 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0290 
	cmp4.gtu.unc p14,p15=1, r28			    //114 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN56@inflate_ta#;;		    //114 	cc:2
 }

// 115  :         if (count[max] != 0) break;

 {   .mib  //R-Addr: 0X02a0 
	adds	r27=max$, sp				    //115 	cc:0
	adds	r22=count$, sp				    //115 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X02b0 
	ld4	r26=[r27];;				    //115 	cc:1
	nop.m	 0
	shl	r25=r26, 1;;				    //115 	cc:2
 }
 {   .mmi  //R-Addr: 0X02c0 
	add	r21=r22, r25;;				    //115 	cc:3
	ld2	r20=[r21]				    //115 	cc:4
	nop.i	 0;;
 }
 {   .mbb  //R-Addr: 0X02d0 
	cmp4.eq.unc p14,p15=r0, r20			    //115 	cc:5
  (p14)	br.cond.dptk.few $LN55@inflate_ta#		    //115 	cc:5
	br.cond.sptk.few $LN56@inflate_ta#;;		    //115 	cc:5
 }
$LN55@inflate_ta:

// 116  :     if (root > max) root = max;

 {   .mmb  //R-Addr: 0X02e0 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.few $LN57@inflate_ta#;;		    //116 	cc:0
 }
$LN56@inflate_ta:

// 116  :     if (root > max) root = max;

 {   .mib  //R-Addr: 0X02f0 
	adds	r19=root$, sp				    //116 	cc:0
	adds	r17=max$, sp				    //116 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0300 
	ld4	r18=[r19]				    //116 	cc:1
	ld4	r16=[r17]				    //116 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0310 
	cmp4.leu.unc p14,p15=r18, r16			    //116 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN54@inflate_ta#;;		    //116 	cc:2
 }

// 116  :     if (root > max) root = max;

 {   .mib  //R-Addr: 0X0320 
	adds	r15=max$, sp				    //116 	cc:3
	adds	r10=root$, sp				    //116 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0330 
	ld4	r11=[r15];;				    //116 	cc:4
	st4	[r10]=r11				    //116 	cc:5
	nop.i	 0;;
 }
$LN54@inflate_ta:

// 117  :     if (max == 0) {                     /* no symbols to code at all */

 {   .mmi  //R-Addr: 0X0340 
	adds	r9=max$, sp;;				    //117 	cc:0
	ld4	r8=[r9]					    //117 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0350 
	cmp4.ne.unc p14,p15=r0, r8			    //117 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN53@inflate_ta#;;		    //117 	cc:2
 }

// 118  :         this.op = (unsigned char)64;    /* invalid code marker */
// 119  :         this.bits = (unsigned char)1;
// 120  :         this.val = (unsigned short)0;
// 121  :         *(*table)++ = this;             /* make a table to force an error */
// 122  :         *(*table)++ = this;
// 123  :         *bits = 1;
// 124  :         return 0;     /* no symbols, but wait for decoding to report error */

 {   .mib  //R-Addr: 0X0360 
	mov	r31=64					    //118 	cc:0, 00000040H
	adds	r30=this$, sp				    //118 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0370 
	st1	[r30]=r31;;				    //118 	cc:1
	mov	r29=1					    //119 	cc:0
	adds	r28=this$+1, sp;;			    //119 	cc:0
 }
 {   .mmi  //R-Addr: 0X0380 
	st1	[r28]=r29;;				    //119 	cc:1
	adds	r27=this$+2, sp				    //120 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0390 
	st2	[r27]=r0;;				    //120 	cc:1
	adds	r26=table$, sp				    //121 	cc:0
	adds	r21=this$, sp				    //121 	cc:0
 }
 {   .mib  //R-Addr: 0X03a0 
	adds	r16=table$, sp				    //121 	cc:0
	adds	r9=table$, sp				    //121 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X03b0 
	ld8	r25=[r26]				    //121 	cc:1
	ld4	r20=[r21]				    //121 	cc:1
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X03c0 
	nop.m	 0
	shr.u	r17=r20, 16				    //121 	cc:2
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X03d0 
	ld8	r22=[r25];;				    //121 	cc:3
	mov	r19=r22					    //121 	cc:4
	adds	r18=2, r22;;				    //121 	cc:4
 }
 {   .mmb  //R-Addr: 0X03e0 
	st2	[r19]=r20				    //121 	cc:5
	st2	[r18]=r17				    //121 	cc:5
	nop.b	 0
 }
 {   .mmb  //R-Addr: 0X03f0 
	ld8	r15=[r16]				    //121 	cc:5
	ld8	r8=[r9]					    //121 	cc:5
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0400 
	ld8	r11=[r15];;				    //121 	cc:7
	adds	r10=4, r11				    //121 	cc:8
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0410 
	st8	[r8]=r10;;				    //121 	cc:9
	adds	r31=table$, sp				    //122 	cc:0
	adds	r28=this$, sp				    //122 	cc:0
 }
 {   .mib  //R-Addr: 0X0420 
	adds	r21=table$, sp				    //122 	cc:0
	adds	r17=table$, sp				    //122 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0430 
	ld8	r30=[r31]				    //122 	cc:1
	ld4	r27=[r28]				    //122 	cc:1
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X0440 
	nop.m	 0
	shr.u	r22=r27, 16				    //122 	cc:2
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0450 
	ld8	r29=[r30];;				    //122 	cc:3
	mov	r26=r29					    //122 	cc:4
	adds	r25=2, r29;;				    //122 	cc:4
 }
 {   .mmb  //R-Addr: 0X0460 
	st2	[r26]=r27				    //122 	cc:5
	st2	[r25]=r22				    //122 	cc:5
	nop.b	 0
 }
 {   .mmb  //R-Addr: 0X0470 
	ld8	r20=[r21]				    //122 	cc:5
	ld8	r16=[r17]				    //122 	cc:5
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0480 
	ld8	r19=[r20];;				    //122 	cc:7
	adds	r18=4, r19				    //122 	cc:8
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0490 
	st8	[r16]=r18;;				    //122 	cc:9
	adds	r15=bits$, sp				    //123 	cc:0
	mov	r10=1;;					    //123 	cc:0
 }
 {   .mmi  //R-Addr: 0X04a0 
	ld8	r11=[r15];;				    //123 	cc:1
	st4	[r11]=r10				    //123 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X04b0 
	mov	r8=r0					    //124 	cc:0
	nop.m	 0
	br.cond.sptk.few $LN65@inflate_ta#;;		    //124 	cc:0
 }
$LN53@inflate_ta:

// 125  :     }
// 126  :     for (min = 1; min <= MAXBITS; min++)

 {   .mib  //R-Addr: 0X04c0 
	mov	r9=1					    //126 	cc:0
	adds	r8=min$, sp				    //126 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X04d0 
	st4	[r8]=r9					    //126 	cc:1
	nop.m	 0
	br.cond.sptk.few $LN52@inflate_ta#;;		    //126 	cc:1
 }
$LN51@inflate_ta:

// 126  :     for (min = 1; min <= MAXBITS; min++)

 {   .mib  //R-Addr: 0X04e0 
	adds	r31=min$, sp				    //126 	cc:0
	adds	r28=min$, sp				    //126 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X04f0 
	ld4	r30=[r31];;				    //126 	cc:1
	adds	r29=1, r30				    //126 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0500 
	st4	[r28]=r29				    //126 	cc:3
	nop.m	 0
	nop.b	 0;;
 }
$LN52@inflate_ta:

// 126  :     for (min = 1; min <= MAXBITS; min++)

 {   .mmi  //R-Addr: 0X0510 
	adds	r27=min$, sp;;				    //126 	cc:0
	ld4	r26=[r27]				    //126 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0520 
	cmp4.ltu.unc p14,p15=15, r26			    //126 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN50@inflate_ta#;;		    //126 	cc:2
 }

// 127  :         if (count[min] != 0) break;

 {   .mib  //R-Addr: 0X0530 
	adds	r25=min$, sp				    //127 	cc:0
	adds	r20=count$, sp				    //127 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0540 
	ld4	r22=[r25];;				    //127 	cc:1
	nop.m	 0
	shl	r21=r22, 1;;				    //127 	cc:2
 }
 {   .mmi  //R-Addr: 0X0550 
	add	r19=r20, r21;;				    //127 	cc:3
	ld2	r18=[r19]				    //127 	cc:4
	nop.i	 0;;
 }
 {   .mbb  //R-Addr: 0X0560 
	cmp4.eq.unc p14,p15=r0, r18			    //127 	cc:5
  (p14)	br.cond.dptk.few $LN49@inflate_ta#		    //127 	cc:5
	br.cond.sptk.few $LN50@inflate_ta#;;		    //127 	cc:5
 }
$LN49@inflate_ta:

// 128  :     if (root < min) root = min;

 {   .mmb  //R-Addr: 0X0570 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.few $LN51@inflate_ta#;;		    //128 	cc:0
 }
$LN50@inflate_ta:

// 128  :     if (root < min) root = min;

 {   .mib  //R-Addr: 0X0580 
	adds	r17=root$, sp				    //128 	cc:0
	adds	r15=min$, sp				    //128 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0590 
	ld4	r16=[r17]				    //128 	cc:1
	ld4	r11=[r15]				    //128 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X05a0 
	cmp4.geu.unc p14,p15=r16, r11			    //128 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN48@inflate_ta#;;		    //128 	cc:2
 }

// 128  :     if (root < min) root = min;

 {   .mib  //R-Addr: 0X05b0 
	adds	r10=min$, sp				    //128 	cc:3
	adds	r8=root$, sp				    //128 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X05c0 
	ld4	r9=[r10];;				    //128 	cc:4
	st4	[r8]=r9					    //128 	cc:5
	nop.i	 0;;
 }
$LN48@inflate_ta:

// 129  : 
// 130  :     /* check for an over-subscribed or incomplete set of lengths */
// 131  :     left = 1;
// 132  :     for (len = 1; len <= MAXBITS; len++) {

 {   .mib  //R-Addr: 0X05d0 
	mov	r31=1					    //131 	cc:0
	adds	r30=left$, sp				    //131 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X05e0 
	st4	[r30]=r31;;				    //131 	cc:1
	mov	r29=1					    //132 	cc:0
	adds	r28=len$, sp;;				    //132 	cc:0
 }
 {   .mmb  //R-Addr: 0X05f0 
	st4	[r28]=r29				    //132 	cc:1
	nop.m	 0
	br.cond.sptk.few $LN47@inflate_ta#;;		    //132 	cc:1
 }
$LN46@inflate_ta:

// 132  :     for (len = 1; len <= MAXBITS; len++) {

 {   .mib  //R-Addr: 0X0600 
	adds	r27=len$, sp				    //132 	cc:0
	adds	r22=len$, sp				    //132 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0610 
	ld4	r26=[r27];;				    //132 	cc:1
	adds	r25=1, r26				    //132 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0620 
	st4	[r22]=r25				    //132 	cc:3
	nop.m	 0
	nop.b	 0;;
 }
$LN47@inflate_ta:

// 132  :     for (len = 1; len <= MAXBITS; len++) {

 {   .mmi  //R-Addr: 0X0630 
	adds	r21=len$, sp;;				    //132 	cc:0
	ld4	r20=[r21]				    //132 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0640 
	cmp4.ltu.unc p14,p15=15, r20			    //132 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN45@inflate_ta#;;		    //132 	cc:2
 }

// 133  :         left <<= 1;
// 134  :         left -= count[len];
// 135  :         if (left < 0) return -1;        /* over-subscribed */

 {   .mib  //R-Addr: 0X0650 
	adds	r19=left$, sp				    //133 	cc:0
	adds	r16=left$, sp				    //133 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0660 
	ld4	r18=[r19];;				    //133 	cc:1
	nop.m	 0
	shl	r17=r18, 1;;				    //133 	cc:2
 }
 {   .mmi  //R-Addr: 0X0670 
	st4	[r16]=r17;;				    //133 	cc:3
	adds	r15=len$, sp				    //134 	cc:0
	adds	r9=count$, sp				    //134 	cc:0
 }
 {   .mib  //R-Addr: 0X0680 
	adds	r30=left$, sp				    //134 	cc:0
	adds	r27=left$, sp				    //134 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0690 
	ld4	r11=[r15]				    //134 	cc:1
	ld4	r29=[r30]				    //134 	cc:1
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X06a0 
	nop.m	 0
	shl	r10=r11, 1;;				    //134 	cc:2
	add	r8=r9, r10;;				    //134 	cc:3
 }
 {   .mmi  //R-Addr: 0X06b0 
	ld2	r31=[r8];;				    //134 	cc:4
	sub	r28=r29, r31				    //134 	cc:5
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X06c0 
	st4	[r27]=r28;;				    //134 	cc:6
	adds	r26=left$, sp				    //135 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X06d0 
	ld4	r25=[r26];;				    //135 	cc:1
	cmp4.le.unc p14,p15=r0, r25			    //135 	cc:2
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X06e0 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN44@inflate_ta#;;		    //135 	cc:2
 }

// 135  :         if (left < 0) return -1;        /* over-subscribed */

 {   .mmb  //R-Addr: 0X06f0 
	mov	r8=-1					    //135 	cc:3
	nop.m	 0
	br.cond.sptk.few $LN65@inflate_ta#;;		    //135 	cc:3
 }
$LN44@inflate_ta:

⌨️ 快捷键说明

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