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

📄 zutil.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 2 页
字号:
 }
 {   .mmb  //R-Addr: 0X0360 
	st8	[r26]=r27				    //55 	cc:1
	ld8	r22=[r25]				    //55 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0370 
	cmp.eq.unc p14,p15=2, r22			    //55 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN4@zlibCompil#;;		    //55 	cc:2
 }

// 55   :     switch (sizeof(z_off_t)) {

 {   .mmi  //R-Addr: 0X0380 
	adds	r21=$T78798, sp;;			    //55 	cc:3
	ld8	r20=[r21]				    //55 	cc:4
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0390 
	cmp.eq.unc p14,p15=4, r20			    //55 	cc:5
	nop.m	 0
  (p14)	br.cond.dptk.few $LN3@zlibCompil#;;		    //55 	cc:5
 }

// 55   :     switch (sizeof(z_off_t)) {

 {   .mmi  //R-Addr: 0X03a0 
	adds	r19=$T78798, sp;;			    //55 	cc:6
	ld8	r18=[r19]				    //55 	cc:7
	nop.i	 0;;
 }
 {   .mbb  //R-Addr: 0X03b0 
	cmp.eq.unc p14,p15=8, r18			    //55 	cc:8
  (p14)	br.cond.dptk.few $LN2@zlibCompil#		    //55 	cc:8
	br.cond.sptk.few $LN1@zlibCompil#;;		    //55 	cc:8
 }
$LN4@zlibCompil:

// 56   :     case 2:     break;

 {   .mmb  //R-Addr: 0X03c0 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.few $LN5@zlibCompil#;;		    //56 	cc:0
 }
$LN3@zlibCompil:

// 57   :     case 4:     flags += 1 << 6;        break;

 {   .mib  //R-Addr: 0X03d0 
	adds	r17=flags$, sp				    //57 	cc:0
	adds	r11=flags$, sp				    //57 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X03e0 
	ld4	r16=[r17];;				    //57 	cc:1
	adds	r15=64, r16				    //57 	cc:2, 00000040H
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X03f0 
	st4	[r11]=r15				    //57 	cc:3
	nop.m	 0
	br.cond.sptk.few $LN5@zlibCompil#;;		    //57 	cc:3
 }
$LN2@zlibCompil:

// 58   :     case 8:     flags += 2 << 6;        break;

 {   .mib  //R-Addr: 0X0400 
	adds	r10=flags$, sp				    //58 	cc:0
	adds	r31=flags$, sp				    //58 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0410 
	ld4	r9=[r10];;				    //58 	cc:1
	adds	r8=128, r9				    //58 	cc:2, 00000080H
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0420 
	st4	[r31]=r8				    //58 	cc:3
	nop.m	 0
	br.cond.sptk.few $LN5@zlibCompil#;;		    //58 	cc:3
 }
$LN1@zlibCompil:

// 59   :     default:    flags += 3 << 6;

 {   .mib  //R-Addr: 0X0430 
	adds	r30=flags$, sp				    //59 	cc:0
	adds	r27=flags$, sp				    //59 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0440 
	ld4	r29=[r30];;				    //59 	cc:1
	adds	r28=192, r29				    //59 	cc:2, 000000c0H
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0450 
	st4	[r27]=r28;;				    //59 	cc:3
	nop.m	 0
	nop.i	 0;;
 }
$LN5@zlibCompil:

// 60   :     }
// 61   : #ifdef DEBUG
// 62   :     flags += 1 << 8;
// 63   : #endif
// 64   : #if defined(ASMV) || defined(ASMINF)
// 65   :     flags += 1 << 9;
// 66   : #endif
// 67   : #ifdef ZLIB_WINAPI
// 68   :     flags += 1 << 10;
// 69   : #endif
// 70   : #ifdef BUILDFIXED
// 71   :     flags += 1 << 12;
// 72   : #endif
// 73   : #ifdef DYNAMIC_CRC_TABLE
// 74   :     flags += 1 << 13;
// 75   : #endif
// 76   : #ifdef NO_GZCOMPRESS
// 77   :     flags += 1L << 16;
// 78   : #endif
// 79   : #ifdef NO_GZIP
// 80   :     flags += 1L << 17;
// 81   : #endif
// 82   : #ifdef PKZIP_BUG_WORKAROUND
// 83   :     flags += 1L << 20;
// 84   : #endif
// 85   : #ifdef FASTEST
// 86   :     flags += 1L << 21;
// 87   : #endif
// 88   : #ifdef STDC
// 89   : #  ifdef NO_vsnprintf
// 90   :         flags += 1L << 25;
// 91   : #    ifdef HAS_vsprintf_void
// 92   :         flags += 1L << 26;
// 93   : #    endif
// 94   : #  else
// 95   : #    ifdef HAS_vsnprintf_void
// 96   :         flags += 1L << 26;
// 97   : #    endif
// 98   : #  endif
// 99   : #else
// 100  :         flags += 1L << 24;
// 101  : #  ifdef NO_snprintf
// 102  :         flags += 1L << 25;
// 103  : #    ifdef HAS_sprintf_void
// 104  :         flags += 1L << 26;
// 105  : #    endif
// 106  : #  else
// 107  : #    ifdef HAS_snprintf_void
// 108  :         flags += 1L << 26;
// 109  : #    endif
// 110  : #  endif
// 111  : #endif
// 112  :     return flags;
// 113  : }

 {   .mib  //R-Addr: 0X0460 
	adds	r26=flags$, sp				    //68 	cc:0
	adds	r21=flags$, sp				    //68 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0470 
	ld4	r25=[r26];;				    //68 	cc:1
	adds	r22=1024, r25				    //68 	cc:2, 00000400H
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0480 
	st4	[r21]=r22;;				    //68 	cc:3
	adds	r20=flags$, sp				    //112 	cc:0
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0490 
	ld4	r8=[r20]				    //112 	cc:2
	adds	sp=32, sp				    //113 	cc:0
	br.ret.sptk.many b0;;				    //113 	cc:0
 }
// End code for function:
	.endp	zlibCompileFlags#
	.type	zError#	,@function 
        .global zError#
// Function compile flags: /Odtp
	.section	.text

// Begin code for function: zError:
	.proc	zError#
	.align 32
err$	= 0
zError:	
// err$ = r32
// Output regs: None

// 136  :     return ERR_MSG(err);
// 137  : }

 {   .mmi  //R-Addr: 0X00 
	adds	r31=err$, sp;;
	st4	[r31]=r32
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X010 
	adds	r30=err$, sp				    //136 	cc:0
	addl	r25=@ltoff(z_errmsg#),gp		    //136 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X020 
	ld4	r29=[r30]				    //136 	cc:1
	ld8	r22=[r25]				    //136 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X030 
	sub	r28=2, r29;;				    //136 	cc:2
	nop.m	 0
	sxt4	r27=r28;;				    //136 	cc:3
 }
 {   .mii  //R-Addr: 0X040 
	nop.m	 0
	shl	r26=r27, 3;;				    //136 	cc:4
	add	r21=r22, r26;;				    //136 	cc:5
 }
 {   .mmb  //R-Addr: 0X050 
	ld8	r8=[r21]				    //136 	cc:7
	nop.m	 0
	br.ret.sptk.many b0;;				    //137 	cc:0
 }
// End code for function:
	.endp	zError#
	.type	zcalloc#	,@function 
        .global zcalloc#
	.type	__imp_malloc#	,@function 
        .global __imp_malloc#
	.section	.pdata
$T78811: data4	@imagerel($LN4@zcalloc#)
	data4	@imagerel($LN4@zcalloc#+368)
	data4	@imagerel($T78809#)
	.section	.xdata
	.skip 8
$T78809: data2	03H
	data2	00H
	data4	03H
	string	"\x0d"		//R1:prologue size 13
	string	"\xe6\x00"	//P7:pfs_when time 0
	string	"\xb1\x24"	//P3:pfs_gr 36
	string	"\xe0\x01\x03"	//P7:mem_stack_f time 1 size 3
	string	"\xe4\x02"	//P7:rp_when time 2
	string	"\xb0\xa3"	//P3:rp_gr 35
	string	"\x61\x38"	//R3:body size 56
	string	"\x81"		//B1:label_state 1
	string	"\xc0\x05"	//B2:ecount 0 time 5
	string	"\x00\x00\x00\x00\x00\x00\x00" //padding
// Function compile flags: /Odtp
	.section	.text

// Begin code for function: zcalloc:
	.proc	zcalloc#
	.align 32
$T78808	= 16
opaque$	= 32
items$	= 40
size$	= 48
zcalloc:	 
// opaque$ = r32
// items$ = r33
// size$ = r34
// Output regs: r38-r38
$LN4@zcalloc:

// 304  : {
// 305  :     if (opaque) items += size - size; /* make compiler happy */

 {   .mmi  //R-Addr: 0X00 
	alloc	r36=3, 3, 1, 0				    //304 	cc:0
	adds	sp=-48, sp				    //304 	cc:0, ffffffd0H
	mov	r35=b0					    //304 	cc:0
 }
 {   .mmi  //R-Addr: 0X010 
	mov	r37=gp;;				    //304 	cc:0
	ld8.nta	r2=[sp]					    //304 	cc:1
	adds	r31=opaque$, sp
 }
 {   .mib  //R-Addr: 0X020 
	adds	r30=items$, sp
	adds	r29=size$, sp
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X030 
	st8	[r31]=r32
	st4	[r30]=r33
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X040 
	st4	[r29]=r34;;
	adds	r28=opaque$, sp				    //305 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X050 
	ld8	r27=[r28];;				    //305 	cc:1
	cmp.eq.unc p14,p15=r0, r27			    //305 	cc:2
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X060 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN1@zcalloc#;;		    //305 	cc:2
 }

// 305  :     if (opaque) items += size - size; /* make compiler happy */

 {   .mmi  //R-Addr: 0X070 
	adds	r26=size$, sp				    //305 	cc:3
	adds	r22=size$, sp				    //305 	cc:3
	adds	r19=items$, sp				    //305 	cc:3
 }
 {   .mmi  //R-Addr: 0X080 
	adds	r16=items$, sp;;			    //305 	cc:3
	ld4	r25=[r26]				    //305 	cc:4
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X090 
	ld4	r21=[r22];;				    //305 	cc:4
	ld4	r18=[r19]				    //305 	cc:5
	sub	r20=r25, r21;;				    //305 	cc:5
 }
 {   .mmi  //R-Addr: 0X0a0 
	add	r17=r18, r20;;				    //305 	cc:6
	st4	[r16]=r17				    //305 	cc:7
	nop.i	 0;;
 }
$LN1@zcalloc:

// 306  :     return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) :
// 307  :                               (voidpf)calloc(items, size);
// 308  : }

 {   .mmi  //R-Addr: 0X0b0 
	adds	r15=items$, sp				    //307 	cc:0
	adds	r10=size$, sp				    //307 	cc:0
	addl	r31=@gprel(__imp_malloc#),gp;;		    //307 	cc:0
 }
 {   .mmb  //R-Addr: 0X0c0 
	ld4	r11=[r15]				    //307 	cc:1
	ld4	r9=[r10]				    //307 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0d0 
	ld8	r30=[r31]				    //307 	cc:2
	setf.sig f6=r11					    //307 	cc:2
	nop.b	 0
 }
 {   .mmi  //R-Addr: 0X0e0 
	setf.sig f7=r9;;				    //307 	cc:2
	ld8	r29=[r30], 8				    //307 	cc:4
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0f0 
	ld8	gp=[r30]				    //307 	cc:5
	mov	b6=r29					    //307 	cc:5
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0100 
	nop.m	 0
	xma.lu	f8=f6, f7, f0				    //307 	cc:8
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0110 
	getf.sig r8=f8;;				    //307 	cc:12
	nop.m	 0
	zxt4	r38=r8					    //307 	cc:17
 }
 {   .mmb  //R-Addr: 0X0120 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b6;;			    //307 	cc:17
 }
 {   .mmi  //R-Addr: 0X0130 
	adds	r28=$T78808, sp				    //307 	cc:28
	adds	r27=$T78808, sp				    //307 	cc:28
	mov	gp=r37;;				    //307 	cc:28
 }
 {   .mmb  //R-Addr: 0X0140 
	st8	[r28]=r8				    //307 	cc:29
	ld8	r8=[r27]				    //307 	cc:29
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X0150 
	adds	sp=48, sp				    //308 	cc:0, 00000030H
	mov.ret	b0=r35;;				    //308 	cc:0
	mov.i	ar.pfs=r36				    //308 	cc:1
 }
 {   .mmb  //R-Addr: 0X0160 
	nop.m	 0
	nop.m	 0
	br.ret.sptk.many b0;;				    //308 	cc:1
 }
// End code for function:
	.endp	zcalloc#
	.type	zcfree#	,@function 
        .global zcfree#
	.type	__imp_free#	,@function 
        .global __imp_free#
	.section	.pdata
$T78817: data4	@imagerel($LN4@zcfree#)
	data4	@imagerel($LN4@zcfree#+144)
	data4	@imagerel($T78815#)
	.section	.xdata
	.skip 8
$T78815: data2	03H
	data2	00H
	data4	02H
	string	"\x0a"		//R1:prologue size 10
	string	"\xe6\x00"	//P7:pfs_when time 0
	string	"\xb1\x23"	//P3:pfs_gr 35
	string	"\xe0\x01\x01"	//P7:mem_stack_f time 1 size 1
	string	"\xe4\x02"	//P7:rp_when time 2
	string	"\xb0\xa2"	//P3:rp_gr 34
	string	"\x31"		//R1:body size size 17
	string	"\x81"		//B1:label_state 1
	string	"\xc0\x04"	//B2:ecount 0 time 4
// Function compile flags: /Odtp
	.section	.text

// Begin code for function: zcfree:
	.proc	zcfree#
	.align 32
opaque$	= 16
ptr$	= 24
zcfree:	
// opaque$ = r32
// ptr$ = r33
// Output regs: r37-r37
$LN4@zcfree:

// 313  : {
// 314  :     free(ptr);
// 315  :     if (opaque) return; /* make compiler happy */
// 316  : }

 {   .mmi  //R-Addr: 0X00 
	alloc	r35=2, 3, 1, 0				    //313 	cc:0
	adds	sp=-16, sp				    //313 	cc:0
	mov	r34=b0					    //313 	cc:0
 }
 {   .mmi  //R-Addr: 0X010 
	mov	r36=gp;;				    //313 	cc:0
	ld8.nta	r2=[sp]					    //313 	cc:1
	adds	r31=opaque$, sp
 }
 {   .mmi  //R-Addr: 0X020 
	adds	r30=ptr$, sp;;
	st8	[r31]=r32
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X030 
	st8	[r30]=r33;;
	addl	r28=@gprel(__imp_free#),gp		    //314 	cc:0
	adds	r29=ptr$, sp;;				    //314 	cc:0
 }
 {   .mmb  //R-Addr: 0X040 
	ld8	r27=[r28]				    //314 	cc:1
	ld8	r37=[r29]				    //314 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X050 
	ld8	r26=[r27], 8;;				    //314 	cc:3
	ld8	gp=[r27]				    //314 	cc:4
	mov	b6=r26					    //314 	cc:4
 }
 {   .mmb  //R-Addr: 0X060 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b6;;			    //314 	cc:4
 }
 {   .mmi  //R-Addr: 0X070 
	mov	gp=r36;;				    //314 	cc:15
	adds	sp=16, sp				    //316 	cc:0
	mov.ret	b0=r34;;				    //316 	cc:0
 }
 {   .mib  //R-Addr: 0X080 
	nop.m	 0
	mov.i	ar.pfs=r35				    //316 	cc:1
	br.ret.sptk.many b0;;				    //316 	cc:1
 }
// End code for function:
	.endp	zcfree#

// Total code size for all functions: 0X0710 bytes (113 bundles)

// END

⌨️ 快捷键说明

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