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

📄 inftrees.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	mov	r17=256					    //192 	cc:0, 00000100H
	adds	r16=end$, sp;;				    //192 	cc:0
 }
 {   .mmb  //R-Addr: 0X0bc0 
	st4	[r16]=r17				    //192 	cc:2
	nop.m	 0
	br.cond.sptk.many $LN33@inflate_ta#;;		    //193 	cc:0
 }
$LN30@inflate_ta:

// 194  :     default:            /* DISTS */
// 195  :         base = dbase;
// 196  :         extra = dext;
// 197  :         end = -1;

 {   .mib  //R-Addr: 0X0bd0 
	addl	r15=@ltoff(?dbase@?1??inflate_table@@9@9#),gp //195 	cc:0
	adds	r10=base$, sp				    //195 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0be0 
	ld8	r11=[r15];;				    //195 	cc:1
	st8	[r10]=r11				    //195 	cc:2
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0bf0 
	addl	r9=@ltoff(?dext@?1??inflate_table@@9@9#),gp //196 	cc:0
	adds	r31=extra$, sp				    //196 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0c00 
	ld8	r8=[r9];;				    //196 	cc:1
	st8	[r31]=r8				    //196 	cc:2
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0c10 
	mov	r30=-1					    //197 	cc:0
	adds	r29=end$, sp				    //197 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0c20 
	st4	[r29]=r30;;				    //197 	cc:1
	nop.m	 0
	nop.i	 0;;
 }
$LN33@inflate_ta:

// 198  :     }
// 199  : 
// 200  :     /* initialize state for loop */
// 201  :     huff = 0;                   /* starting code */
// 202  :     sym = 0;                    /* starting code symbol */
// 203  :     len = min;                  /* starting code length */
// 204  :     next = *table;              /* current table to fill in */
// 205  :     curr = root;                /* current table index bits */
// 206  :     drop = 0;                   /* current bits to drop from code for index */
// 207  :     low = (unsigned)(-1);       /* trigger new sub-table when len > root */
// 208  :     used = 1U << root;          /* use root table entries */
// 209  :     mask = used - 1;            /* mask for comparing low */
// 210  : 
// 211  :     /* check available table space */
// 212  :     if (type == LENS && used >= ENOUGH - MAXD)

 {   .mmi  //R-Addr: 0X0c30 
	adds	r28=huff$, sp;;				    //201 	cc:0
	st4	[r28]=r0				    //201 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0c40 
	adds	r27=sym$, sp;;				    //202 	cc:0
	st4	[r27]=r0				    //202 	cc:1
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0c50 
	adds	r26=min$, sp				    //203 	cc:0
	adds	r22=len$, sp				    //203 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0c60 
	ld4	r25=[r26];;				    //203 	cc:1
	st4	[r22]=r25				    //203 	cc:2
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0c70 
	adds	r21=table$, sp				    //204 	cc:0
	adds	r18=next$, sp				    //204 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0c80 
	ld8	r20=[r21];;				    //204 	cc:1
	ld8	r19=[r20]				    //204 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0c90 
	st8	[r18]=r19;;				    //204 	cc:4
	adds	r17=root$, sp				    //205 	cc:0
	adds	r15=curr$, sp;;				    //205 	cc:0
 }
 {   .mmi  //R-Addr: 0X0ca0 
	ld4	r16=[r17];;				    //205 	cc:1
	st4	[r15]=r16				    //205 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0cb0 
	adds	r11=drop$, sp;;				    //206 	cc:0
	st4	[r11]=r0				    //206 	cc:1
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0cc0 
	mov	r10=-1					    //207 	cc:0
	adds	r9=low$, sp				    //207 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0cd0 
	st4	[r9]=r10;;				    //207 	cc:1
	adds	r8=root$, sp				    //208 	cc:0
	mov	r30=1					    //208 	cc:0
 }
 {   .mmi  //R-Addr: 0X0ce0 
	adds	r28=used$, sp;;				    //208 	cc:0
	ld4	r31=[r8]				    //208 	cc:1
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0cf0 
	nop.m	 0
	shl	r29=r30, r31				    //208 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0d00 
	st4	[r28]=r29;;				    //208 	cc:6
	adds	r27=used$, sp				    //209 	cc:0
	adds	r22=mask$, sp;;				    //209 	cc:0
 }
 {   .mmi  //R-Addr: 0X0d10 
	ld4	r26=[r27];;				    //209 	cc:1
	adds	r25=-1, r26				    //209 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0d20 
	st4	[r22]=r25;;				    //209 	cc:3
	adds	r21=type$, sp				    //212 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0d30 
	ld4	r20=[r21];;				    //212 	cc:1
	cmp4.ne.unc p14,p15=1, r20			    //212 	cc:2
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0d40 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN28@inflate_ta#;;		    //212 	cc:2
 }

// 212  :     if (type == LENS && used >= ENOUGH - MAXD)

 {   .mib  //R-Addr: 0X0d50 
	adds	r19=used$, sp				    //212 	cc:3
	mov	r17=1456				    //212 	cc:3, 000005b0H
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0d60 
	ld4	r18=[r19];;				    //212 	cc:4
	cmp4.gtu.unc p14,p15=r17, r18			    //212 	cc:5
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0d70 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN28@inflate_ta#;;		    //212 	cc:5
 }

// 213  :         return 1;

 {   .mmb  //R-Addr: 0X0d80 
	mov	r8=1					    //213 	cc:0
	nop.m	 0
	br.cond.sptk.few $LN65@inflate_ta#;;		    //213 	cc:0
 }
$LN28@inflate_ta:

// 214  : 
// 215  :     /* process all codes and make table entries */
// 216  :     for (;;) {
// 217  :         /* create table entry */
// 218  :         this.bits = (unsigned char)(len - drop);
// 219  :         if ((int)(work[sym]) < end) {

 {   .mmi  //R-Addr: 0X0d90 
	adds	r16=len$, sp				    //218 	cc:0
	adds	r11=drop$, sp				    //218 	cc:0
	adds	r8=this$+1, sp;;			    //218 	cc:0
 }
 {   .mmb  //R-Addr: 0X0da0 
	ld4	r15=[r16]				    //218 	cc:1
	ld4	r10=[r11]				    //218 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0db0 
	sub	r9=r15, r10;;				    //218 	cc:2
	st1	[r8]=r9					    //218 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0dc0 
	adds	r31=sym$, sp				    //219 	cc:0
	adds	r28=work$, sp				    //219 	cc:0
	adds	r22=end$, sp;;				    //219 	cc:0
 }
 {   .mmb  //R-Addr: 0X0dd0 
	ld4	r30=[r31]				    //219 	cc:1
	ld8	r27=[r28]				    //219 	cc:1
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X0de0 
	ld4	r21=[r22]				    //219 	cc:2
	shl	r29=r30, 1;;				    //219 	cc:2
	add	r26=r27, r29;;				    //219 	cc:3
 }
 {   .mmi  //R-Addr: 0X0df0 
	ld2	r25=[r26];;				    //219 	cc:4
	cmp4.ge.unc p14,p15=r25, r21			    //219 	cc:5
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0e00 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN26@inflate_ta#;;		    //219 	cc:5
 }

// 220  :             this.op = (unsigned char)0;
// 221  :             this.val = work[sym];

 {   .mmi  //R-Addr: 0X0e10 
	adds	r20=this$, sp;;				    //220 	cc:0
	st1	[r20]=r0				    //220 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0e20 
	adds	r19=sym$, sp				    //221 	cc:0
	adds	r16=work$, sp				    //221 	cc:0
	adds	r9=this$+2, sp;;			    //221 	cc:0
 }
 {   .mmb  //R-Addr: 0X0e30 
	ld4	r18=[r19]				    //221 	cc:1
	ld8	r15=[r16]				    //221 	cc:1
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X0e40 
	nop.m	 0
	shl	r17=r18, 1;;				    //221 	cc:2
	add	r11=r15, r17;;				    //221 	cc:3
 }
 {   .mmi  //R-Addr: 0X0e50 
	ld2	r10=[r11];;				    //221 	cc:4
	st2	[r9]=r10				    //221 	cc:5
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0e60 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.many $LN25@inflate_ta#;;		    //221 	cc:0
 }
$LN26@inflate_ta:

// 222  :         }
// 223  :         else if ((int)(work[sym]) > end) {

 {   .mmi  //R-Addr: 0X0e70 
	adds	r8=sym$, sp				    //223 	cc:0
	adds	r29=work$, sp				    //223 	cc:0
	adds	r25=end$, sp;;				    //223 	cc:0
 }
 {   .mmb  //R-Addr: 0X0e80 
	ld4	r31=[r8]				    //223 	cc:1
	ld8	r28=[r29]				    //223 	cc:1
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X0e90 
	ld4	r22=[r25]				    //223 	cc:2
	shl	r30=r31, 1;;				    //223 	cc:2
	add	r27=r28, r30;;				    //223 	cc:3
 }
 {   .mmi  //R-Addr: 0X0ea0 
	ld2	r26=[r27];;				    //223 	cc:4
	cmp4.le.unc p14,p15=r26, r22			    //223 	cc:5
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0eb0 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.many $LN24@inflate_ta#;;		    //223 	cc:5
 }

// 224  :             this.op = (unsigned char)(extra[work[sym]]);
// 225  :             this.val = base[work[sym]];
// 226  :         }
// 227  :         else {

 {   .mmi  //R-Addr: 0X0ec0 
	adds	r21=sym$, sp				    //224 	cc:0
	adds	r18=work$, sp				    //224 	cc:0
	adds	r10=extra$, sp				    //224 	cc:0
 }
 {   .mmi  //R-Addr: 0X0ed0 
	adds	r30=this$, sp;;				    //224 	cc:0
	ld4	r20=[r21]				    //224 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0ee0 
	ld8	r17=[r18];;				    //224 	cc:1
	ld8	r9=[r10]				    //224 	cc:2
	shl	r19=r20, 1;;				    //224 	cc:2
 }
 {   .mmi  //R-Addr: 0X0ef0 
	add	r16=r17, r19;;				    //224 	cc:3
	ld2	r15=[r16]				    //224 	cc:4
	nop.i	 0;;
 }
 {   .mii  //R-Addr: 0X0f00 
	nop.m	 0
	shl	r11=r15, 1;;				    //224 	cc:5
	add	r8=r9, r11;;				    //224 	cc:6
 }
 {   .mmi  //R-Addr: 0X0f10 
	ld2	r31=[r8];;				    //224 	cc:7
	st1	[r30]=r31				    //224 	cc:8
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0f20 
	adds	r29=sym$, sp				    //225 	cc:0
	adds	r26=work$, sp				    //225 	cc:0
	adds	r19=base$, sp				    //225 	cc:0
 }
 {   .mmi  //R-Addr: 0X0f30 
	adds	r15=this$+2, sp;;			    //225 	cc:0
	ld4	r28=[r29]				    //225 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0f40 
	ld8	r25=[r26];;				    //225 	cc:1
	ld8	r18=[r19]				    //225 	cc:2
	shl	r27=r28, 1;;				    //225 	cc:2
 }
 {   .mmi  //R-Addr: 0X0f50 
	add	r22=r25, r27;;				    //225 	cc:3
	ld2	r21=[r22]				    //225 	cc:4
	nop.i	 0;;
 }
 {   .mii  //R-Addr: 0X0f60 
	nop.m	 0
	shl	r20=r21, 1;;				    //225 	cc:5
	add	r17=r18, r20;;				    //225 	cc:6
 }
 {   .mmi  //R-Addr: 0X0f70 
	ld2	r16=[r17];;				    //225 	cc:7
	st2	[r15]=r16				    //225 	cc:8
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0f80 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.many $LN25@inflate_ta#;;		    //227 	cc:0
 }
$LN24@inflate_ta:

// 228  :             this.op = (unsigned char)(32 + 64);         /* end of block */
// 229  :             this.val = 0;

 {   .mib  //R-Addr: 0X0f90 
	mov	r11=96					    //228 	cc:0, 00000060H
	adds	r10=this$, sp				    //228 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0fa0 
	st1	[r10]=r11;;				    //228 	cc:1
	adds	r9=this$+2, sp				    //229 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0fb0 
	st2	[r9]=r0;;				    //229 	cc:1
	nop.m	 0
	nop.i	 0;;
 }
$LN25@inflate_ta:

// 230  :         }
// 231  : 
// 232  :         /* replicate for those indices with low len bits equal to huff */
// 233  :         incr = 1U << (len - drop);
// 234  :         fill = 1U << curr;
// 235  :         min = fill;                 /* save offset to next table */

 {   .mmi  //R-Addr: 0X0fc0 
	adds	r8=len$, sp				    //233 	cc:0
	adds	r30=drop$, sp				    //233 	cc:0
	mov	r27=1					    //233 	cc:0
 }
 {   .mmi  //R-Addr: 0X0fd0 
	adds	r22=incr$, sp;;				    //233 	cc:0
	ld4	r31=[r8]				    //233 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0fe0 
	ld4	r29=[r30];;				    //233 	cc:1
	sub	r28=r31, r29				    //233 	cc:2
	nop.i	 0;;
 }
 {   .mii  //R-Addr: 0X0ff0 
	nop.m	 0
	zxt4	r26=r28;;				    //233 	cc:3
	shl	r25=r27, r26;;				    //233 	cc:6
 }
 {   .mmi  //R-Addr: 0X01000 
	st4	[r22]=r25;;				    //233 	cc:9
	adds	r21=curr$, sp				    //234 	cc:0
	mov	r19=1					    //234 	cc:0
 }
 {   .mmi  //R-Addr: 0X01010 
	adds	r17=fill$, sp;;				    //234 	cc:0
	ld4	r20=[r21]				    //234 	cc:1
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X01020 
	nop.m	 0
	shl	r18=r19, r20				    //234 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X01030 
	st4	[r17]=r18;;				    //234 	cc:6
	adds	r16=fill$, sp				    //235 	cc:0
	adds	r11=min$, sp;;				    //235 	cc:0
 }
 {   .mmi  //R-Addr: 0X01040 
	ld4	r15=[r16];;				    //235 	cc:1
	st4	[r11]=r15				    //235 	cc:2
	nop.i	 0;;
 }
$LN22@inflate_ta:

// 236  :         do {
// 237  :             fill -= incr;
// 238  :             next[(huff >> drop) + fill] = this;
// 239  :         } while (fill != 0);

 {   .mmi  //R-Addr: 0X01050 
	adds	r10=fill$, sp				    //237 	cc:0
	adds	r8=incr$, sp				    //237 	cc:0
	adds	r29=fill$, sp;;				    //237 	cc:0
 }
 {   .mmb  //R-Addr: 0X01060 
	ld4	r9=[r10]				    //237 	cc:1
	ld4	r31=[r8]				    //237 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X01070 
	sub	r30=r9, r31;;				    //237 	cc:2
	st4	[r29]=r30				    //237 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X01080 
	adds	r28=huff$, sp				    //238 	cc:0
	adds	r26=drop$, sp				    //238 	cc:0
	adds	r21=fill$, sp				    //238 	cc:0
 }
 {   .mib  //R-Addr: 0X01090 
	adds	r16=next$, sp				    //238 	cc:0
	adds	r10=this$, sp				    //238 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X010a0 
	ld4	r27=[r28]				    //238 	cc:1
	ld4	r25=[r26]				    //238 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X010b0 
	ld4	r20=[r21]				    //238 	cc:2
	ld8	r15=[r16]				    //238 	cc:2
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X010c0 
	ld4	r9=[r10]				    //238 	cc:3
	shr.u	r22=r27, r25;;				    //238 	cc:3
	shr.u	r30=r9, 16;;				    //238 	cc:4
 }
 {   .mmi  //R-Addr: 0X010d0 
	add	r19=r22, r20;;				    //238 	cc:6
	nop.m	 0
	zxt4	r18=r19;;				    //238 	cc:7
 }
 {   .mii  //R-Addr: 0X010e0 
	nop.m	 0
	shl	r17=r18, 2;;				    //238 	cc:8
	add	r11=r15, r17;;				    //238 	cc:9

⌨️ 快捷键说明

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