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

📄 deflate.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
 }
 {   .mmi  //R-Addr: 0X0260 
	mov	gp=r37;;				    //332 	cc:14
	st4	[r20]=r8				    //332 	cc:15
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0270 
	ld8	r18=[r19]				    //332 	cc:15
	ld4	r15=[r16]				    //332 	cc:15
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0280 
	adds	r17=76, r18;;				    //332 	cc:16, 0000004cH
	st4	[r17]=r15				    //332 	cc:17
	nop.i	 0;;
 }
$LN7@deflateSet:

// 333  : 
// 334  :     if (length < MIN_MATCH) return Z_OK;

 {   .mmi  //R-Addr: 0X0290 
	adds	r11=length$, sp;;			    //334 	cc:0
	ld4	r10=[r11]				    //334 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X02a0 
	cmp4.leu.unc p14,p15=3, r10			    //334 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN6@deflateSet#;;		    //334 	cc:2
 }

// 334  :     if (length < MIN_MATCH) return Z_OK;

 {   .mmb  //R-Addr: 0X02b0 
	mov	r8=r0					    //334 	cc:3
	nop.m	 0
	br.cond.sptk.few $LN10@deflateSet#;;		    //334 	cc:3
 }
$LN6@deflateSet:

// 335  :     if (length > MAX_DIST(s)) {

 {   .mib  //R-Addr: 0X02c0 
	adds	r9=s$, sp				    //335 	cc:0
	adds	r28=length$, sp				    //335 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X02d0 
	ld8	r8=[r9]					    //335 	cc:1
	ld4	r27=[r28]				    //335 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X02e0 
	adds	r31=68, r8;;				    //335 	cc:2, 00000044H
	ld4	r30=[r31]				    //335 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X02f0 
	adds	r29=-262, r30;;				    //335 	cc:4, fffffefaH
	cmp4.leu.unc p14,p15=r27, r29			    //335 	cc:5
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0300 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@deflateSet#;;		    //335 	cc:5
 }

// 336  :         length = MAX_DIST(s);
// 337  :         dictionary += dictLength - length; /* use the tail of the dictionary */

 {   .mib  //R-Addr: 0X0310 
	adds	r26=s$, sp				    //336 	cc:0
	adds	r19=length$, sp				    //336 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0320 
	ld8	r25=[r26];;				    //336 	cc:1
	adds	r22=68, r25				    //336 	cc:2, 00000044H
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0330 
	ld4	r21=[r22];;				    //336 	cc:3
	adds	r20=-262, r21				    //336 	cc:4, fffffefaH
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0340 
	st4	[r19]=r20;;				    //336 	cc:5
	adds	r18=dictLength$, sp			    //337 	cc:0
	adds	r16=length$, sp				    //337 	cc:0
 }
 {   .mib  //R-Addr: 0X0350 
	adds	r9=dictionary$, sp			    //337 	cc:0
	adds	r30=dictionary$, sp			    //337 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0360 
	ld4	r17=[r18]				    //337 	cc:1
	ld4	r15=[r16]				    //337 	cc:1
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X0370 
	ld8	r8=[r9]					    //337 	cc:2
	sub	r11=r17, r15;;				    //337 	cc:2
	zxt4	r10=r11;;				    //337 	cc:3
 }
 {   .mmi  //R-Addr: 0X0380 
	add	r31=r8, r10;;				    //337 	cc:4
	st8	[r30]=r31				    //337 	cc:5
	nop.i	 0;;
 }
$LN5@deflateSet:

// 338  :     }
// 339  :     zmemcpy(s->window, dictionary, length);
// 340  :     s->strstart = length;
// 341  :     s->block_start = (long)length;
// 342  : 
// 343  :     /* Insert all strings in the hash table (except for the last two bytes).
// 344  :      * s->lookahead stays null, so s->ins_h will be recomputed at the next
// 345  :      * call of fill_window.
// 346  :      */
// 347  :     s->ins_h = s->window[0];
// 348  :     UPDATE_HASH(s, s->ins_h, s->window[1]);
// 349  :     for (n = 0; n <= length - MIN_MATCH; n++) {

 {   .mmi  //R-Addr: 0X0390 
	adds	r26=s$, sp				    //339 	cc:0
	adds	r29=length$, sp				    //339 	cc:0
	adds	r27=dictionary$, sp;;			    //339 	cc:0
 }
 {   .mmb  //R-Addr: 0X03a0 
	ld8	r25=[r26]				    //339 	cc:1
	ld4	r28=[r29]				    //339 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X03b0 
	ld8	r39=[r27]				    //339 	cc:2
	adds	r22=80, r25				    //339 	cc:2, 00000050H
	mov	r40=r28;;				    //339 	cc:2
 }
 {   .mmb  //R-Addr: 0X03c0 
	ld8	r38=[r22]				    //339 	cc:3
	nop.m	 0
	br.call.sptk.few b0=memcpy#;;			    //339 	cc:3
 }
 {   .mmi  //R-Addr: 0X03d0 
	mov	gp=r37;;				    //339 	cc:14
	adds	r21=s$, sp				    //340 	cc:0
	adds	r18=length$, sp;;			    //340 	cc:0
 }
 {   .mmb  //R-Addr: 0X03e0 
	ld8	r20=[r21]				    //340 	cc:1
	ld4	r17=[r18]				    //340 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X03f0 
	adds	r19=148, r20;;				    //340 	cc:2, 00000094H
	st4	[r19]=r17				    //340 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0400 
	adds	r16=s$, sp				    //341 	cc:0
	adds	r10=length$, sp				    //341 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0410 
	ld8	r15=[r16]				    //341 	cc:1
	ld4	r9=[r10]				    //341 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0420 
	adds	r11=132, r15;;				    //341 	cc:2, 00000084H
	st4	[r11]=r9				    //341 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0430 
	adds	r8=s$, sp				    //347 	cc:0
	adds	r28=s$, sp				    //347 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0440 
	ld8	r31=[r8]				    //347 	cc:1
	ld8	r27=[r28]				    //347 	cc:1
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X0450 
	adds	r30=80, r31				    //347 	cc:2, 00000050H
	adds	r26=112, r27				    //347 	cc:2, 00000070H
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0460 
	ld8	r29=[r30];;				    //347 	cc:3
	ld1	r25=[r29]				    //347 	cc:5
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0470 
	st4	[r26]=r25;;				    //347 	cc:6
	adds	r22=s$, sp				    //348 	cc:0
	adds	r19=s$, sp				    //348 	cc:0
 }
 {   .mib  //R-Addr: 0X0480 
	adds	r10=s$, sp				    //348 	cc:0
	adds	r27=s$, sp				    //348 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0490 
	ld8	r21=[r22]				    //348 	cc:1
	ld8	r18=[r19]				    //348 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X04a0 
	ld8	r9=[r10]				    //348 	cc:2
	ld8	r26=[r27]				    //348 	cc:2
	adds	r20=112, r21				    //348 	cc:2, 00000070H
 }
 {   .mmi  //R-Addr: 0X04b0 
	adds	r17=128, r18;;				    //348 	cc:2, 00000080H
	ld4	r16=[r20]				    //348 	cc:3
	adds	r8=80, r9				    //348 	cc:3, 00000050H
 }
 {   .mmi  //R-Addr: 0X04c0 
	ld4	r15=[r17]				    //348 	cc:3
	adds	r25=124, r26				    //348 	cc:3, 0000007cH
	adds	r20=s$, sp;;				    //348 	cc:3
 }
 {   .mmb  //R-Addr: 0X04d0 
	ld8	r31=[r8]				    //348 	cc:4
	ld4	r22=[r25]				    //348 	cc:4
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X04e0 
	ld8	r19=[r20]				    //348 	cc:5
	adds	r30=1, r31				    //348 	cc:5
	shl	r11=r16, r15;;				    //348 	cc:5
 }
 {   .mii  //R-Addr: 0X04f0 
	ld1	r29=[r30]				    //348 	cc:6
	adds	r18=112, r19;;				    //348 	cc:6, 00000070H
	xor	r28=r11, r29;;				    //348 	cc:8
 }
 {   .mmi  //R-Addr: 0X0500 
	and	r21=r28, r22;;				    //348 	cc:9
	st4	[r18]=r21				    //348 	cc:10
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0510 
	adds	r17=n$, sp;;				    //349 	cc:0
	st4	[r17]=r0				    //349 	cc:1
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0520 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.few $LN4@deflateSet#;;		    //349 	cc:1
 }
$LN3@deflateSet:

// 349  :     for (n = 0; n <= length - MIN_MATCH; n++) {

 {   .mib  //R-Addr: 0X0530 
	adds	r16=n$, sp				    //349 	cc:0
	adds	r10=n$, sp				    //349 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0540 
	ld4	r15=[r16];;				    //349 	cc:1
	adds	r11=1, r15				    //349 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0550 
	st4	[r10]=r11				    //349 	cc:3
	nop.m	 0
	nop.b	 0;;
 }
$LN4@deflateSet:

// 349  :     for (n = 0; n <= length - MIN_MATCH; n++) {

 {   .mib  //R-Addr: 0X0560 
	adds	r9=length$, sp				    //349 	cc:0
	adds	r30=n$, sp				    //349 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0570 
	ld4	r8=[r9]					    //349 	cc:1
	ld4	r29=[r30]				    //349 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0580 
	adds	r31=-3, r8;;				    //349 	cc:2
	cmp4.gtu.unc p14,p15=r29, r31			    //349 	cc:3
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0590 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN2@deflateSet#;;		    //349 	cc:3
 }

// 350  :         INSERT_STRING(s, n, hash_head);
// 351  :     }

 {   .mmi  //R-Addr: 0X05a0 
	adds	r28=s$, sp				    //350 	cc:0
	adds	r25=s$, sp				    //350 	cc:0
	adds	r17=s$, sp				    //350 	cc:0
 }
 {   .mmi  //R-Addr: 0X05b0 
	adds	r11=n$, sp;;				    //350 	cc:0
	ld8	r27=[r28]				    //350 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X05c0 
	ld8	r22=[r25];;				    //350 	cc:1
	ld8	r16=[r17]				    //350 	cc:2
	adds	r26=112, r27				    //350 	cc:2, 00000070H
 }
 {   .mmi  //R-Addr: 0X05d0 
	ld4	r10=[r11]				    //350 	cc:2
	adds	r21=128, r22				    //350 	cc:2, 00000080H
	adds	r27=s$, sp;;				    //350 	cc:2
 }
 {   .mmi  //R-Addr: 0X05e0 
	ld4	r20=[r26]				    //350 	cc:3
	ld4	r19=[r21]				    //350 	cc:3
	adds	r15=80, r16				    //350 	cc:3, 00000050H
 }
 {   .mmi  //R-Addr: 0X05f0 
	adds	r9=2, r10				    //350 	cc:3
	adds	r11=s$, sp				    //350 	cc:3
	adds	r17=s$, sp;;				    //350 	cc:3
 }
 {   .mmi  //R-Addr: 0X0600 
	ld8	r31=[r15]				    //350 	cc:4
	ld8	r26=[r27]				    //350 	cc:4
	zxt4	r8=r9;;					    //350 	cc:4
 }
 {   .mmi  //R-Addr: 0X0610 
	add	r30=r31, r8				    //350 	cc:5
	adds	r25=124, r26				    //350 	cc:5, 0000007cH
	shl	r18=r20, r19				    //350 	cc:5
 }
 {   .mmi  //R-Addr: 0X0620 
	adds	r20=s$, sp;;				    //350 	cc:5
	ld1	r29=[r30]				    //350 	cc:6
	nop.i	 0
 }
 {   .mii  //R-Addr: 0X0630 
	ld4	r22=[r25]				    //350 	cc:6
	adds	r25=s$, sp;;				    //350 	cc:6
	nop.i	 0
 }
 {   .mii  //R-Addr: 0X0640 
	ld8	r19=[r20]				    //350 	cc:7
	adds	r20=n$, sp;;				    //350 	cc:7
	xor	r28=r18, r29				    //350 	cc:8
 }
 {   .mmi  //R-Addr: 0X0650 
	adds	r18=112, r19;;				    //350 	cc:8, 00000070H
	and	r21=r28, r22				    //350 	cc:9
	adds	r28=s$, sp;;				    //350 	cc:9
 }
 {   .mmb  //R-Addr: 0X0660 
	st4	[r18]=r21				    //350 	cc:10
	ld8	r22=[r25]				    //350 	cc:10
	nop.b	 0
 }
 {   .mmi  //R-Addr: 0X0670 
	ld8	r10=[r11];;				    //350 	cc:10
	ld8	r16=[r17]				    //350 	cc:11
	adds	r21=76, r22				    //350 	cc:11, 0000004cH
 }
 {   .mii  //R-Addr: 0X0680 
	ld4	r19=[r20]				    //350 	cc:11
	adds	r9=112, r10;;				    //350 	cc:11, 00000070H
	adds	r15=104, r16				    //350 	cc:12, 00000068H
 }
 {   .mmb  //R-Addr: 0X0690 
	ld4	r18=[r21]				    //350 	cc:12
	ld4	r8=[r9]					    //350 	cc:12
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X06a0 
	ld8	r27=[r28]				    //350 	cc:13
	ld8	r30=[r15]				    //350 	cc:13
	shl	r31=r8, 1				    //350 	cc:13
 }
 {   .mii  //R-Addr: 0X06b0 
	and	r17=r19, r18				    //350 	cc:13
	adds	r8=s$, sp;;				    //350 	cc:13
	zxt4	r16=r17					    //350 	cc:14
 }
 {   .mii  //R-Addr: 0X06c0 
	add	r29=r30, r31				    //350 	cc:14
	adds	r26=96, r27;;				    //350 	cc:14, 00000060H
	shl	r15=r16, 1				    //350 	cc:15
 }
 {   .mmi  //R-Addr: 0X06d0 
	ld8	r11=[r26]				    //350 	cc:15
	ld2	r9=[r29]				    //350 	cc:15
	adds	r29=s$, sp;;				    //350 	cc:15
 }
 {   .mmi  //R-Addr: 0X06e0 
	add	r10=r11, r15				    //350 	cc:16
	adds	r26=n$, sp				    //350 	cc:16
	adds	r15=hash_head$, sp			    //350 	cc:16
 }
 {   .mmi  //R-Addr: 0X06f0 
	adds	r11=n$, sp;;				    //350 	cc:16
	st2	[r10]=r9				    //350 	cc:17
	adds	r9=s$, sp				    //350 	cc:17
 }
 {   .mmb  //R-Addr: 0X0700 
	ld8	r28=[r29]				    //350 	cc:17
	ld8	r31=[r8]				    //350 	cc:17
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0710 
	ld4	r25=[r26]				    //350 	cc:18
	adds	r27=76, r28				    //350 	cc:18, 0000004cH
	adds	r30=96, r31;;				    //350 	cc:18, 00000060H
 }
 {   .mmi  //R-Addr: 0X0720 
	ld4	r22=[r27]				    //350 	cc:19
	ld8	r18=[r30]				    //350 	cc:19
	adds	r30=s$, sp;;				    //350 	cc:19
 }
 {   .mmi  //R-Addr: 0X0730 
	and	r21=r25, r22;;				    //350 	cc:20
	nop.m	 0
	zxt4	r20=r21;;				    //350 	cc:21
 }
 {   .mii  //R-Addr: 0X0740 
	nop.m	 0
	shl	r19=r20, 1;;				    //350 	cc:22
	add	r17=r18, r19;;				    //350 	cc:23
 }
 {   .mmi  //R-Addr: 0X0750 
	ld2	r16=[r17];;				    //350 	cc:24
	st4	[r15]=r16				    //350 	cc:25
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0760 
	ld8	r29=[r30]				    //350 	cc:25
	ld8	r8=[r9]					    //350 	cc:25
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0770 
	ld4	r10=[r11]				    //350 	cc:26
	adds	r28=112, r29				    //350 	cc:26, 00000070H
	adds	r31=104, r8;;				    //350 	cc:26, 00000068H
 }
 {   .mmi  //R-Addr: 0X0780 
	ld4	r27=[r28];;				    //350 	cc:27
	ld8	r25=[r31]				    //350 	cc:0
	shl	r26=r27, 1;;				    //350 	cc:0
 }
 {   .mmi  //R-Addr: 0X0790 
	add	r22=r25, r26;;				    //350 	cc:1
	st2	[r22]=r10				    //350 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X07a0 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.few $LN3@deflateSet#;;		    //351 	cc:0
 }
$LN2@deflateSet:

// 352  :     if (hash_head) hash_head = 0;  /* to make compiler happy */

 {   .mmi  //R-Addr: 0X07b0 
	adds	r21=hash_head$, sp;;			    //352 	cc:0
	ld4	r20=[r21]				    //352 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X07c0 
	cmp4.eq.unc p14,p15=r0, r20			    //352 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN1@deflateSet#;;		    //352 	cc:2
 }

// 352  :     if (hash_head) hash_head = 0;  /* to make compiler happy */

 {   .mmi  //R-Addr: 0X07d0 
	adds	r19=hash_head$, sp;;			    //352 	cc:3
	st4	[r19]=r0				    //352 	cc:4
	nop.i	 0;;
 }
$LN1@deflateSet:

// 353  :     return Z_OK;

 {   .mmi  //R-Addr: 0X07e0 
	mov	r8=r0;;					    //353 	cc:0
	nop.m	 0
	nop.i	 0;;
 }
$LN10@deflateSet:

/

⌨️ 快捷键说明

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