📄 deflate.asm
字号:
{ .mmb //R-Addr: 0X0d50
nop.m 0
nop.m 0
br.call.sptk.few b0=deflateEnd#;; //301 cc:1
}
{ .mmb //R-Addr: 0X0d60
mov r8=-4 //302 cc:0
nop.m 0
br.cond.sptk.few $LN16@deflateIni@2#;; //302 cc:0
}
$LN2@deflateIni@2:
// 303 : }
// 304 : s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
// 305 : s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
// 306 :
// 307 : s->level = level;
// 308 : s->strategy = strategy;
// 309 : s->method = (Byte)method;
// 310 :
// 311 : return deflateReset(strm);
{ .mmi //R-Addr: 0X0d70
adds r19=s$, sp //304 cc:0
mov r15=2 //304 cc:0
mov r11=65501 //304 cc:0, 0000ffddH
}
{ .mii //R-Addr: 0X0d80
adds r8=overlay$, sp //304 cc:0
adds r29=s$, sp;; //304 cc:0
cmp.eq.unc p15,p0=0, r15 //304 cc:1
}
{ .mmb //R-Addr: 0X0d90
ld8 r18=[r19] //304 cc:1
setf.sig f13=r15 //304 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X0da0
adds r17=5872, r18 //304 cc:2, 000016f0H
setf.exp f32=r11 //304 cc:2
nop.b 0;;
}
{ .mib //R-Addr: 0X0db0
ld4 r16=[r17] //304 cc:3
(p15) break.i 1 //304 cc:3
nop.b 0
}
{ .mmi //R-Addr: 0X0dc0
ld8 r31=[r8];; //304 cc:3
setf.sig f12=r16 //304 cc:4
nop.i 0
}
{ .mmi //R-Addr: 0X0dd0
ld8 r28=[r29];; //304 cc:4
adds r27=5880, r28 //304 cc:5, 000016f8H
nop.i 0;;
}
{ .mfb //R-Addr: 0X0de0
nop.m 0
fcvt.xuf.s1 f15=f13 //304 cc:7
nop.b 0;;
}
{ .mfb //R-Addr: 0X0df0
nop.m 0
fcvt.xuf.s1 f14=f12 //304 cc:10
nop.b 0;;
}
{ .mfb //R-Addr: 0X0e00
nop.m 0
frcpa.s1 f33,p7=f14, f15 //304 cc:14
nop.b 0;;
}
{ .mfb //R-Addr: 0X0e10
nop.m 0
(p7) fma.s1 f14=f14, f33, f0 //304 cc:18
nop.b 0
}
{ .mfb //R-Addr: 0X0e20
nop.m 0
(p7) fnma.s1 f15=f15, f33, f1 //304 cc:18
nop.b 0;;
}
{ .mfb //R-Addr: 0X0e30
nop.m 0
(p7) fma.s1 f14=f15, f14, f14 //304 cc:22
nop.b 0
}
{ .mfb //R-Addr: 0X0e40
nop.m 0
(p7) fma.s1 f15=f15, f15, f32 //304 cc:22
nop.b 0;;
}
{ .mfb //R-Addr: 0X0e50
nop.m 0
(p7) fma.s1 f33=f15, f14, f14, f33 //304 cc:26
nop.b 0;;
}
{ .mfb //R-Addr: 0X0e60
nop.m 0
fcvt.fxu.trunc.s1 f14=f33, f14 //304 cc:30
nop.b 0;;
}
{ .mmi //R-Addr: 0X0e70
getf.sig r10=f14;; //304 cc:34
nop.m 0
shl r9=r10, 1;; //304 cc:39
}
{ .mmi //R-Addr: 0X0e80
add r30=r31, r9;; //304 cc:40
st8 [r27]=r30 //304 cc:41
nop.i 0;;
}
{ .mmi //R-Addr: 0X0e90
adds r21=s$, sp //305 cc:0
mov r17=3 //305 cc:0
adds r26=s$, sp //305 cc:0
}
{ .mmi //R-Addr: 0X0ea0
adds r10=s$, sp;; //305 cc:0
ld8 r20=[r21] //305 cc:1
nop.i 0
}
{ .mmb //R-Addr: 0X0eb0
ld8 r25=[r26] //305 cc:1
setf.sig f35=r17 //305 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0ec0
ld8 r9=[r10] //305 cc:2
adds r19=5872, r20 //305 cc:2, 000016f0H
adds r22=16, r25;; //305 cc:2
}
{ .mmi //R-Addr: 0X0ed0
ld4 r18=[r19] //305 cc:3
ld8 r15=[r22] //305 cc:3
adds r8=5864, r9;; //305 cc:3, 000016e8H
}
{ .mmb //R-Addr: 0X0ee0
setf.sig f34=r18 //305 cc:4
nop.m 0
nop.b 0;;
}
{ .mfb //R-Addr: 0X0ef0
nop.m 0
xma.lu f36=f34, f35, f0 //305 cc:10
nop.b 0;;
}
{ .mmi //R-Addr: 0X0f00
getf.sig r16=f36;; //305 cc:14
add r11=r15, r16 //305 cc:19
nop.i 0;;
}
{ .mmi //R-Addr: 0X0f10
st8 [r8]=r11;; //305 cc:20
adds r31=s$, sp //307 cc:0
adds r28=level$, sp;; //307 cc:0
}
{ .mmb //R-Addr: 0X0f20
ld8 r30=[r31] //307 cc:1
ld4 r27=[r28] //307 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0f30
adds r29=172, r30;; //307 cc:2, 000000acH
st4 [r29]=r27 //307 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X0f40
adds r26=s$, sp //308 cc:0
adds r21=strategy$, sp //308 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X0f50
ld8 r25=[r26] //308 cc:1
ld4 r20=[r21] //308 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0f60
adds r22=176, r25;; //308 cc:2, 000000b0H
st4 [r22]=r20 //308 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X0f70
adds r17=s$, sp //309 cc:0
adds r19=method$, sp //309 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X0f80
ld8 r16=[r17] //309 cc:1
ld4 r18=[r19] //309 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0f90
adds r15=60, r16;; //309 cc:2, 0000003cH
st1 [r15]=r18 //309 cc:3
nop.i 0;;
}
{ .mmi //R-Addr: 0X0fa0
adds r11=strm$, sp;; //311 cc:0
ld8 r43=[r11] //311 cc:1
nop.i 0
}
{ .mmb //R-Addr: 0X0fb0
nop.m 0
nop.m 0
br.call.sptk.few b0=deflateReset#;; //311 cc:1
}
{ .mib //R-Addr: 0X0fc0
adds r10=$T79487, sp //311 cc:12
adds r9=$T79487, sp //311 cc:12
nop.b 0;;
}
{ .mmb //R-Addr: 0X0fd0
st4 [r10]=r8 //311 cc:13
ld4 r8=[r9] //311 cc:13
nop.b 0;;
}
$LN16@deflateIni@2:
// 312 : }
{ .mii //R-Addr: 0X0fe0
adds sp=144, sp //312 cc:0, 00000090H
mov.ret b0=r40;; //312 cc:0
mov.i ar.pfs=r41 //312 cc:1
}
{ .mmb //R-Addr: 0X0ff0
nop.m 0
nop.m 0
br.ret.sptk.many b0;; //312 cc:1
}
// End code for function:
.endp deflateInit2_#
.type deflateSetDictionary# ,@function
.global deflateSetDictionary#
.type memcpy# ,@function
.global memcpy#
.type adler32# ,@function
.global adler32#
.section .pdata
$T79499: data4 @imagerel($LN12@deflateSet#)
data4 @imagerel($LN12@deflateSet#+2064)
data4 @imagerel($T79497#)
.section .xdata
.skip 8
$T79497: 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\x04" //P7:mem_stack_f time 1 size 4
string "\xe4\x02" //P7:rp_when time 2
string "\xb0\xa3" //P3:rp_gr 35
string "\x61\xf6\x02" //R3:body size 374
string "\x81" //B1:label_state 1
string "\xc0\x05" //B2:ecount 0 time 5
string "\x00\x00\x00\x00\x00\x00" //padding
// Function compile flags: /Odtp
.section .text
// Begin code for function: deflateSetDictionary:
.proc deflateSetDictionary#
.align 32
length$ = 16
n$ = 20
s$ = 24
hash_head$ = 32
$T79496 = 36
strm$ = 48
dictionary$ = 56
dictLength$ = 64
deflateSetDictionary:
// strm$ = r32
// dictionary$ = r33
// dictLength$ = r34
// Output regs: r38-r40
$LN12@deflateSet:
// 319 : {
// 320 : deflate_state *s;
// 321 : uInt length = dictLength;
// 322 : uInt n;
// 323 : IPos hash_head = 0;
// 324 :
// 325 : if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL ||
// 326 : strm->state->wrap == 2 ||
// 327 : (strm->state->wrap == 1 && strm->state->status != INIT_STATE))
{ .mmi //R-Addr: 0X00
alloc r36=3, 3, 3, 0 //319 cc:0
adds sp=-64, sp //319 cc:0, ffffffc0H
mov r35=b0 //319 cc:0
}
{ .mmi //R-Addr: 0X010
mov r37=gp;; //319 cc:0
ld8.nta r2=[sp] //319 cc:1
adds r31=strm$, sp
}
{ .mib //R-Addr: 0X020
adds r30=dictionary$, sp
adds r29=dictLength$, sp
nop.b 0;;
}
{ .mmb //R-Addr: 0X030
st8 [r31]=r32
st8 [r30]=r33
nop.b 0;;
}
{ .mmi //R-Addr: 0X040
st4 [r29]=r34;;
adds r28=dictLength$, sp //321 cc:0
adds r26=length$, sp;; //321 cc:0
}
{ .mmi //R-Addr: 0X050
ld4 r27=[r28];; //321 cc:1
st4 [r26]=r27 //321 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X060
adds r25=hash_head$, sp;; //323 cc:0
st4 [r25]=r0 //323 cc:1
nop.i 0;;
}
{ .mmi //R-Addr: 0X070
adds r22=strm$, sp;; //327 cc:0
ld8 r21=[r22] //327 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X080
cmp.eq.unc p14,p15=r0, r21 //327 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN8@deflateSet#;; //327 cc:2
}
// 327 : (strm->state->wrap == 1 && strm->state->status != INIT_STATE))
{ .mmi //R-Addr: 0X090
adds r20=strm$, sp;; //327 cc:3
ld8 r19=[r20] //327 cc:4
nop.i 0;;
}
{ .mmi //R-Addr: 0X0a0
adds r18=40, r19;; //327 cc:5, 00000028H
ld8 r17=[r18] //327 cc:6
nop.i 0;;
}
{ .mmb //R-Addr: 0X0b0
cmp.eq.unc p14,p15=r0, r17 //327 cc:7
nop.m 0
(p14) br.cond.dptk.few $LN8@deflateSet#;; //327 cc:7
}
// 327 : (strm->state->wrap == 1 && strm->state->status != INIT_STATE))
{ .mmi //R-Addr: 0X0c0
adds r16=dictionary$, sp;; //327 cc:8
ld8 r15=[r16] //327 cc:9
nop.i 0;;
}
{ .mmb //R-Addr: 0X0d0
cmp.eq.unc p14,p15=r0, r15 //327 cc:10
nop.m 0
(p14) br.cond.dptk.few $LN8@deflateSet#;; //327 cc:10
}
// 327 : (strm->state->wrap == 1 && strm->state->status != INIT_STATE))
{ .mmi //R-Addr: 0X0e0
adds r11=strm$, sp;; //327 cc:11
ld8 r10=[r11] //327 cc:12
nop.i 0;;
}
{ .mmi //R-Addr: 0X0f0
adds r9=40, r10;; //327 cc:13, 00000028H
ld8 r8=[r9] //327 cc:14
nop.i 0;;
}
{ .mmi //R-Addr: 0X0100
adds r31=44, r8;; //327 cc:15, 0000002cH
ld4 r30=[r31] //327 cc:16
nop.i 0;;
}
{ .mmb //R-Addr: 0X0110
cmp4.eq.unc p14,p15=2, r30 //327 cc:17
nop.m 0
(p14) br.cond.dptk.few $LN8@deflateSet#;; //327 cc:17
}
// 327 : (strm->state->wrap == 1 && strm->state->status != INIT_STATE))
{ .mmi //R-Addr: 0X0120
adds r29=strm$, sp;; //327 cc:18
ld8 r28=[r29] //327 cc:19
nop.i 0;;
}
{ .mmi //R-Addr: 0X0130
adds r27=40, r28;; //327 cc:20, 00000028H
ld8 r26=[r27] //327 cc:21
nop.i 0;;
}
{ .mmi //R-Addr: 0X0140
adds r25=44, r26;; //327 cc:22, 0000002cH
ld4 r22=[r25] //327 cc:23
nop.i 0;;
}
{ .mmb //R-Addr: 0X0150
cmp4.ne.unc p14,p15=1, r22 //327 cc:24
nop.m 0
(p14) br.cond.dptk.few $LN9@deflateSet#;; //327 cc:24
}
// 327 : (strm->state->wrap == 1 && strm->state->status != INIT_STATE))
{ .mmi //R-Addr: 0X0160
adds r21=strm$, sp;; //327 cc:25
ld8 r20=[r21] //327 cc:26
nop.i 0;;
}
{ .mmi //R-Addr: 0X0170
adds r19=40, r20;; //327 cc:27, 00000028H
ld8 r18=[r19] //327 cc:28
nop.i 0;;
}
{ .mmi //R-Addr: 0X0180
adds r17=8, r18;; //327 cc:29
ld4 r16=[r17] //327 cc:30
nop.i 0;;
}
{ .mmb //R-Addr: 0X0190
cmp4.eq.unc p14,p15=42, r16 //327 cc:31, 0000002aH
nop.m 0
(p14) br.cond.dptk.few $LN9@deflateSet#;; //327 cc:31
}
$LN8@deflateSet:
// 328 : return Z_STREAM_ERROR;
{ .mmb //R-Addr: 0X01a0
mov r8=-2 //328 cc:0
nop.m 0
br.cond.sptk.few $LN10@deflateSet#;; //328 cc:0
}
$LN9@deflateSet:
// 329 :
// 330 : s = strm->state;
// 331 : if (s->wrap)
{ .mib //R-Addr: 0X01b0
adds r15=strm$, sp //330 cc:0
adds r8=s$, sp //330 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X01c0
ld8 r11=[r15];; //330 cc:1
adds r10=40, r11 //330 cc:2, 00000028H
nop.i 0;;
}
{ .mmi //R-Addr: 0X01d0
ld8 r9=[r10];; //330 cc:3
st8 [r8]=r9 //330 cc:4
nop.i 0;;
}
{ .mmi //R-Addr: 0X01e0
adds r31=s$, sp;; //331 cc:0
ld8 r30=[r31] //331 cc:1
nop.i 0;;
}
{ .mmi //R-Addr: 0X01f0
adds r29=44, r30;; //331 cc:2, 0000002cH
ld4 r28=[r29] //331 cc:3
nop.i 0;;
}
{ .mmb //R-Addr: 0X0200
cmp4.eq.unc p14,p15=r0, r28 //331 cc:4
nop.m 0
(p14) br.cond.dptk.few $LN7@deflateSet#;; //331 cc:4
}
// 332 : strm->adler = adler32(strm->adler, dictionary, dictLength);
{ .mmi //R-Addr: 0X0210
adds r25=strm$, sp //332 cc:0
adds r27=dictLength$, sp //332 cc:0
adds r26=dictionary$, sp;; //332 cc:0
}
{ .mmb //R-Addr: 0X0220
ld8 r22=[r25] //332 cc:1
ld4 r40=[r27] //332 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X0230
ld8 r39=[r26] //332 cc:2
adds r21=76, r22 //332 cc:2, 0000004cH
nop.b 0;;
}
{ .mmb //R-Addr: 0X0240
ld4 r38=[r21] //332 cc:3
nop.m 0
br.call.sptk.few b0=adler32#;; //332 cc:3
}
{ .mmi //R-Addr: 0X0250
adds r20=$T79496, sp //332 cc:14
adds r19=strm$, sp //332 cc:14
adds r16=$T79496, sp //332 cc:14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -