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