📄 zutil.asm
字号:
}
{ .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 + -