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

📄 inffast.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
 }
 {   .mmi  //R-Addr: 0X0980 
	adds	r28=in$, sp				    //155 	cc:0
	adds	r25=bits$, sp				    //155 	cc:0
	adds	r20=hold$, sp;;				    //155 	cc:0
 }
 {   .mii  //R-Addr: 0X0990 
	ld8	r31=[r8]				    //155 	cc:1
	adds	r17=hold$, sp;;				    //155 	cc:1
	adds	r30=1, r31;;				    //155 	cc:2
 }
 {   .mmb  //R-Addr: 0X09a0 
	st8	[r29]=r30				    //155 	cc:3
	ld8	r27=[r28]				    //155 	cc:3
	nop.b	 0
 }
 {   .mmi  //R-Addr: 0X09b0 
	ld4	r22=[r25];;				    //155 	cc:3
	ld4	r19=[r20]				    //155 	cc:4
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X09c0 
	ld1	r26=[r27];;				    //155 	cc:5
	nop.m	 0
	shl	r21=r26, r22;;				    //155 	cc:7
 }
 {   .mmi  //R-Addr: 0X09d0 
	add	r18=r19, r21;;				    //155 	cc:10
	st4	[r17]=r18				    //155 	cc:11
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X09e0 
	adds	r16=bits$, sp				    //156 	cc:0
	adds	r10=bits$, sp				    //156 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X09f0 
	ld4	r15=[r16];;				    //156 	cc:1
	adds	r11=8, r15				    //156 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0a00 
	st4	[r10]=r11;;				    //156 	cc:3
	nop.m	 0
	nop.i	 0;;
 }
$LN45@inflate_fa:

// 157  :             }
// 158  :             this = dcode[hold & dmask];

 {   .mmi  //R-Addr: 0X0a10 
	adds	r9=hold$, sp				    //158 	cc:0
	adds	r31=dmask$, sp				    //158 	cc:0
	adds	r26=dcode$, sp				    //158 	cc:0
 }
 {   .mmi  //R-Addr: 0X0a20 
	adds	r16=this$, sp;;				    //158 	cc:0
	ld4	r8=[r9]					    //158 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0a30 
	ld4	r30=[r31];;				    //158 	cc:1
	ld8	r25=[r26]				    //158 	cc:2
	and	r29=r8, r30;;				    //158 	cc:2
 }
 {   .mii  //R-Addr: 0X0a40 
	nop.m	 0
	zxt4	r28=r29;;				    //158 	cc:3
	shl	r27=r28, 2;;				    //158 	cc:4
 }
 {   .mmi  //R-Addr: 0X0a50 
	add	r22=r25, r27;;				    //158 	cc:5
	mov	r21=r22					    //158 	cc:6
	adds	r20=2, r22;;				    //158 	cc:6
 }
 {   .mmb  //R-Addr: 0X0a60 
	ld2	r19=[r21]				    //158 	cc:7
	ld2	r18=[r20]				    //158 	cc:7
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X0a70 
	nop.m	 0
	dep	r17=r18, r19, 16, 16			    //158 	cc:8
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0a80 
	st4	[r16]=r17				    //158 	cc:9
	nop.m	 0
	nop.b	 0;;
 }
$dodist$78835:

// 159  :           dodist:
// 160  :             op = (unsigned)(this.bits);
// 161  :             hold >>= op;
// 162  :             bits -= op;
// 163  :             op = (unsigned)(this.op);
// 164  :             if (op & 16) {                      /* distance base */

 {   .mib  //R-Addr: 0X0a90 
	adds	r15=this$+1, sp				    //160 	cc:0
	adds	r10=op$, sp				    //160 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0aa0 
	ld1	r11=[r15];;				    //160 	cc:1
	st4	[r10]=r11				    //160 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0ab0 
	adds	r9=hold$, sp				    //161 	cc:0
	adds	r31=op$, sp				    //161 	cc:0
	adds	r28=hold$, sp;;				    //161 	cc:0
 }
 {   .mmb  //R-Addr: 0X0ac0 
	ld4	r8=[r9]					    //161 	cc:1
	ld4	r30=[r31]				    //161 	cc:1
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X0ad0 
	nop.m	 0
	shr.u	r29=r8, r30				    //161 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0ae0 
	st4	[r28]=r29;;				    //161 	cc:6
	adds	r27=bits$, sp				    //162 	cc:0
	adds	r25=op$, sp				    //162 	cc:0
 }
 {   .mmi  //R-Addr: 0X0af0 
	adds	r20=bits$, sp;;				    //162 	cc:0
	ld4	r26=[r27]				    //162 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0b00 
	ld4	r22=[r25];;				    //162 	cc:1
	sub	r21=r26, r22				    //162 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0b10 
	st4	[r20]=r21;;				    //162 	cc:3
	adds	r19=this$, sp				    //163 	cc:0
	adds	r17=op$, sp;;				    //163 	cc:0
 }
 {   .mmi  //R-Addr: 0X0b20 
	ld1	r18=[r19];;				    //163 	cc:1
	st4	[r17]=r18				    //163 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0b30 
	adds	r16=op$, sp;;				    //164 	cc:0
	ld4	r15=[r16]				    //164 	cc:1
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0b40 
	nop.m	 0
	tbit.z.unc p14,p15=r15, 4			    //164 	cc:2
  (p14)	br.cond.dptk.few $LN44@inflate_fa#;;		    //164 	cc:2
 }

// 165  :                 dist = (unsigned)(this.val);
// 166  :                 op &= 15;                       /* number of extra bits */
// 167  :                 if (bits < op) {

 {   .mib  //R-Addr: 0X0b50 
	adds	r11=this$+2, sp				    //165 	cc:0
	adds	r9=dist$, sp				    //165 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0b60 
	ld2	r10=[r11];;				    //165 	cc:1
	st4	[r9]=r10				    //165 	cc:2
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0b70 
	adds	r8=op$, sp				    //166 	cc:0
	adds	r29=op$, sp				    //166 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0b80 
	ld4	r31=[r8];;				    //166 	cc:1
	and	r30=15, r31				    //166 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0b90 
	st4	[r29]=r30;;				    //166 	cc:3
	adds	r28=bits$, sp				    //167 	cc:0
	adds	r26=op$, sp;;				    //167 	cc:0
 }
 {   .mmb  //R-Addr: 0X0ba0 
	ld4	r27=[r28]				    //167 	cc:1
	ld4	r25=[r26]				    //167 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0bb0 
	cmp4.geu.unc p14,p15=r27, r25			    //167 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.many $LN43@inflate_fa#;;		    //167 	cc:2
 }

// 168  :                     hold += (unsigned long)(PUP(in)) << bits;
// 169  :                     bits += 8;
// 170  :                     if (bits < op) {

 {   .mmi  //R-Addr: 0X0bc0 
	adds	r22=in$, sp				    //168 	cc:0
	adds	r19=in$, sp				    //168 	cc:0
	adds	r18=in$, sp				    //168 	cc:0
 }
 {   .mmi  //R-Addr: 0X0bd0 
	adds	r15=bits$, sp				    //168 	cc:0
	adds	r9=hold$, sp				    //168 	cc:0
	adds	r30=hold$, sp;;				    //168 	cc:0
 }
 {   .mmi  //R-Addr: 0X0be0 
	ld8	r21=[r22];;				    //168 	cc:1
	adds	r20=1, r21				    //168 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0bf0 
	st8	[r19]=r20				    //168 	cc:3
	ld8	r17=[r18]				    //168 	cc:3
	nop.b	 0
 }
 {   .mmi  //R-Addr: 0X0c00 
	ld4	r11=[r15];;				    //168 	cc:3
	ld4	r8=[r9]					    //168 	cc:4
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0c10 
	ld1	r16=[r17];;				    //168 	cc:5
	nop.m	 0
	shl	r10=r16, r11;;				    //168 	cc:7
 }
 {   .mmi  //R-Addr: 0X0c20 
	add	r31=r8, r10;;				    //168 	cc:10
	st4	[r30]=r31				    //168 	cc:11
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0c30 
	adds	r29=bits$, sp				    //169 	cc:0
	adds	r26=bits$, sp				    //169 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0c40 
	ld4	r28=[r29];;				    //169 	cc:1
	adds	r27=8, r28				    //169 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0c50 
	st4	[r26]=r27;;				    //169 	cc:3
	adds	r25=bits$, sp				    //170 	cc:0
	adds	r21=op$, sp;;				    //170 	cc:0
 }
 {   .mmb  //R-Addr: 0X0c60 
	ld4	r22=[r25]				    //170 	cc:1
	ld4	r20=[r21]				    //170 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0c70 
	cmp4.geu.unc p14,p15=r22, r20			    //170 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.many $LN43@inflate_fa#;;		    //170 	cc:2
 }

// 171  :                         hold += (unsigned long)(PUP(in)) << bits;
// 172  :                         bits += 8;

 {   .mmi  //R-Addr: 0X0c80 
	adds	r19=in$, sp				    //171 	cc:0
	adds	r16=in$, sp				    //171 	cc:0
	adds	r15=in$, sp				    //171 	cc:0
 }
 {   .mmi  //R-Addr: 0X0c90 
	adds	r9=bits$, sp				    //171 	cc:0
	adds	r30=hold$, sp				    //171 	cc:0
	adds	r27=hold$, sp;;				    //171 	cc:0
 }
 {   .mmi  //R-Addr: 0X0ca0 
	ld8	r18=[r19];;				    //171 	cc:1
	adds	r17=1, r18				    //171 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0cb0 
	st8	[r16]=r17				    //171 	cc:3
	ld8	r11=[r15]				    //171 	cc:3
	nop.b	 0
 }
 {   .mmi  //R-Addr: 0X0cc0 
	ld4	r8=[r9];;				    //171 	cc:3
	ld4	r29=[r30]				    //171 	cc:4
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0cd0 
	ld1	r10=[r11];;				    //171 	cc:5
	nop.m	 0
	shl	r31=r10, r8;;				    //171 	cc:7
 }
 {   .mmi  //R-Addr: 0X0ce0 
	add	r28=r29, r31;;				    //171 	cc:10
	st4	[r27]=r28				    //171 	cc:11
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0cf0 
	adds	r26=bits$, sp				    //172 	cc:0
	adds	r21=bits$, sp				    //172 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0d00 
	ld4	r25=[r26];;				    //172 	cc:1
	adds	r22=8, r25				    //172 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0d10 
	st4	[r21]=r22;;				    //172 	cc:3
	nop.m	 0
	nop.i	 0;;
 }
$LN43@inflate_fa:

// 173  :                     }
// 174  :                 }
// 175  :                 dist += (unsigned)hold & ((1U << op) - 1);
// 176  : #ifdef INFLATE_STRICT
// 177  :                 if (dist > dmax) {
// 178  :                     strm->msg = (char *)"invalid distance too far back";
// 179  :                     state->mode = BAD;
// 180  :                     break;
// 181  :                 }
// 182  : #endif
// 183  :                 hold >>= op;
// 184  :                 bits -= op;
// 185  :                 Tracevv((stderr, "inflate:         distance %u\n", dist));
// 186  :                 op = (unsigned)(out - beg);     /* max distance in output */
// 187  :                 if (dist > op) {                /* see if copy from window */

 {   .mmi  //R-Addr: 0X0d20 
	adds	r20=op$, sp				    //175 	cc:0
	mov	r18=1					    //175 	cc:0
	adds	r15=hold$, sp				    //175 	cc:0
 }
 {   .mib  //R-Addr: 0X0d30 
	adds	r9=dist$, sp				    //175 	cc:0
	adds	r30=dist$, sp				    //175 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0d40 
	ld4	r19=[r20]				    //175 	cc:1
	ld4	r11=[r15]				    //175 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0d50 
	ld4	r8=[r9];;				    //175 	cc:2
	nop.m	 0
	shl	r17=r18, r19;;				    //175 	cc:3
 }
 {   .mmi  //R-Addr: 0X0d60 
	adds	r16=-1, r17;;				    //175 	cc:6
	and	r10=r11, r16				    //175 	cc:7
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0d70 
	add	r31=r8, r10;;				    //175 	cc:8
	st4	[r30]=r31				    //175 	cc:9
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0d80 
	adds	r29=hold$, sp				    //183 	cc:0
	adds	r27=op$, sp				    //183 	cc:0
	adds	r22=hold$, sp;;				    //183 	cc:0
 }
 {   .mmb  //R-Addr: 0X0d90 
	ld4	r28=[r29]				    //183 	cc:1
	ld4	r26=[r27]				    //183 	cc:1
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X0da0 
	nop.m	 0
	shr.u	r25=r28, r26				    //183 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0db0 
	st4	[r22]=r25;;				    //183 	cc:6
	adds	r21=bits$, sp				    //184 	cc:0
	adds	r19=op$, sp				    //184 	cc:0
 }
 {   .mmi  //R-Addr: 0X0dc0 
	adds	r16=bits$, sp;;				    //184 	cc:0
	ld4	r20=[r21]				    //184 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0dd0 
	ld4	r18=[r19];;				    //184 	cc:1
	sub	r17=r20, r18				    //184 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0de0 
	st4	[r16]=r17;;				    //184 	cc:3
	adds	r15=out$, sp				    //186 	cc:0
	adds	r10=beg$, sp				    //186 	cc:0
 }
 {   .mmi  //R-Addr: 0X0df0 
	adds	r31=op$, sp;;				    //186 	cc:0
	ld8	r11=[r15]				    //186 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0e00 
	ld8	r9=[r10];;				    //186 	cc:1
	sub	r8=r11, r9				    //186 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0e10 
	st4	[r31]=r8;;				    //186 	cc:3
	adds	r30=dist$, sp				    //187 	cc:0
	adds	r28=op$, sp;;				    //187 	cc:0
 }
 {   .mmb  //R-Addr: 0X0e20 
	ld4	r29=[r30]				    //187 	cc:1
	ld4	r27=[r28]				    //187 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0e30 
	cmp4.leu.unc p14,p15=r29, r27			    //187 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.many $LN41@inflate_fa#;;		    //187 	cc:2
 }

// 188  :                     op = dist - op;             /* distance back in window */
// 189  :                     if (op > whave) {

 {   .mmi  //R-Addr: 0X0e40 
	adds	r26=dist$, sp				    //188 	cc:0
	adds	r22=op$, sp				    //188 	cc:0
	adds	r19=op$, sp;;				    //188 	cc:0
 }
 {   .mmb  //R-Addr: 0X0e50 
	ld4	r25=[r26]				    //188 	cc:1
	ld4	r21=[r22]				    //188 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0e60 
	sub	r20=r25, r21;;				    //188 	cc:2
	st4	[r19]=r20				    //188 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0e70 
	adds	r18=op$, sp				    //189 	cc:0
	adds	r16=whave$, sp				    //189 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0e80 
	ld4	r17=[r18]				    //189 	cc:1
	ld4	r15=[r16]				    //189 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0e90 
	cmp4.leu.unc p14,p15=r17, r15			    //189 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN40@inflate_fa#;;		    //189 	cc:2
 }

// 190  :                         strm->msg = (char *)"invalid distance too far back";
// 191  :                         state->mode = BAD;
// 192  :                         break;

 {   .mib  //R-Addr: 0X0ea0 
	adds	r11=strm$, sp				    //190 	cc:0
	addl	r8=@ltoff($SG78849#),gp			    //190 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0eb0 
	ld8	r10=[r11]				    //190 	cc:1
	ld8	r31=[r8]				    //190 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0ec0 
	adds	r9=32, r10;;				    //190 	cc:2
	st8	[r9]=r31				    //190 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0ed0 
	adds	r30=state$, sp				    //191 	cc:0
	mov	r28=27					    //191 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0ee0 
	ld8	r29=[r30];;				    //191 	cc:1
	st4	[r29]=r28				    //191 	cc:2

⌨️ 快捷键说明

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