📄 trees.asm
字号:
adds r9=n$, sp;; //418 cc:0
st4 [r9]=r0 //418 cc:1
nop.i 0
}
{ .mmb //R-Addr: 0X0f0
nop.m 0
nop.m 0
br.cond.sptk.few $LN6@init_block#;; //418 cc:1
}
$LN5@init_block:
// 418 : for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0;
{ .mib //R-Addr: 0X0100
adds r8=n$, sp //418 cc:0
adds r29=n$, sp //418 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0110
ld4 r31=[r8];; //418 cc:1
adds r30=1, r31 //418 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X0120
st4 [r29]=r30 //418 cc:3
nop.m 0
nop.b 0;;
}
$LN6@init_block:
// 418 : for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0;
{ .mmi //R-Addr: 0X0130
adds r28=n$, sp;; //418 cc:0
ld4 r27=[r28] //418 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0140
cmp4.le.unc p14,p15=30, r27 //418 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN4@init_block#;; //418 cc:2
}
// 418 : for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0;
{ .mib //R-Addr: 0X0150
adds r21=n$, sp //418 cc:3
adds r26=s$, sp //418 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X0160
ld4 r20=[r21] //418 cc:4
ld8 r25=[r26] //418 cc:4
nop.b 0;;
}
{ .mii //R-Addr: 0X0170
adds r22=2480, r25 //418 cc:5, 000009b0H
sxt4 r19=r20;; //418 cc:5
shl r18=r19, 2;; //418 cc:6
}
{ .mmi //R-Addr: 0X0180
add r17=r22, r18;; //418 cc:7
st2 [r17]=r0 //418 cc:8
nop.i 0
}
{ .mmb //R-Addr: 0X0190
nop.m 0
nop.m 0
br.cond.sptk.few $LN5@init_block#;; //418 cc:8
}
$LN4@init_block:
// 419 : for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
{ .mmi //R-Addr: 0X01a0
adds r16=n$, sp;; //419 cc:0
st4 [r16]=r0 //419 cc:1
nop.i 0
}
{ .mmb //R-Addr: 0X01b0
nop.m 0
nop.m 0
br.cond.sptk.few $LN3@init_block#;; //419 cc:1
}
$LN2@init_block:
// 419 : for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
{ .mib //R-Addr: 0X01c0
adds r15=n$, sp //419 cc:0
adds r9=n$, sp //419 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X01d0
ld4 r11=[r15];; //419 cc:1
adds r10=1, r11 //419 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01e0
st4 [r9]=r10 //419 cc:3
nop.m 0
nop.b 0;;
}
$LN3@init_block:
// 419 : for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
{ .mmi //R-Addr: 0X01f0
adds r8=n$, sp;; //419 cc:0
ld4 r31=[r8] //419 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0200
cmp4.le.unc p14,p15=19, r31 //419 cc:2
nop.m 0
(p14) br.cond.dptk.many $LN1@init_block#;; //419 cc:2
}
// 419 : for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
{ .mib //R-Addr: 0X0210
adds r27=n$, sp //419 cc:3
adds r30=s$, sp //419 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X0220
ld4 r26=[r27] //419 cc:4
ld8 r29=[r30] //419 cc:4
nop.b 0;;
}
{ .mii //R-Addr: 0X0230
adds r28=2724, r29 //419 cc:5, 00000aa4H
sxt4 r25=r26;; //419 cc:5
shl r22=r25, 2;; //419 cc:6
}
{ .mmi //R-Addr: 0X0240
add r21=r28, r22;; //419 cc:7
st2 [r21]=r0 //419 cc:8
nop.i 0
}
{ .mmb //R-Addr: 0X0250
nop.m 0
nop.m 0
br.cond.sptk.few $LN2@init_block#;; //419 cc:8
}
$LN1@init_block:
// 420 :
// 421 : s->dyn_ltree[END_BLOCK].Freq = 1;
// 422 : s->opt_len = s->static_len = 0L;
// 423 : s->last_lit = s->matches = 0;
// 424 : }
{ .mib //R-Addr: 0X0260
adds r20=s$, sp //421 cc:0
mov r17=1 //421 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0270
ld8 r19=[r20];; //421 cc:1
adds r18=1212, r19 //421 cc:2, 000004bcH
nop.i 0;;
}
{ .mmi //R-Addr: 0X0280
st2 [r18]=r17;; //421 cc:3
adds r16=s$, sp //422 cc:0
adds r10=s$, sp;; //422 cc:0
}
{ .mmi //R-Addr: 0X0290
ld8 r15=[r16];; //422 cc:1
adds r11=5892, r15 //422 cc:2, 00001704H
nop.i 0;;
}
{ .mmb //R-Addr: 0X02a0
st4 [r11]=r0 //422 cc:3
ld8 r9=[r10] //422 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X02b0
adds r8=5888, r9;; //422 cc:4, 00001700H
st4 [r8]=r0 //422 cc:5
nop.i 0;;
}
{ .mib //R-Addr: 0X02c0
adds r31=s$, sp //423 cc:0
adds r28=s$, sp //423 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X02d0
ld8 r30=[r31];; //423 cc:1
adds r29=5896, r30 //423 cc:2, 00001708H
nop.i 0;;
}
{ .mmb //R-Addr: 0X02e0
st4 [r29]=r0 //423 cc:3
ld8 r27=[r28] //423 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X02f0
adds r26=5876, r27;; //423 cc:4, 000016f4H
st4 [r26]=r0 //423 cc:5
nop.i 0;;
}
{ .mmb //R-Addr: 0X0300
adds sp=16, sp //424 cc:0
nop.m 0
br.ret.sptk.many b0;; //424 cc:0
}
// End code for function:
.endp init_block#
.type _tr_stored_block# ,@function
.global _tr_stored_block#
.section .pdata
$T79588: data4 @imagerel($LN5@tr_stored_#)
data4 @imagerel($LN5@tr_stored_#+1056)
data4 @imagerel($T79586#)
.section .xdata
.skip 8
$T79586: data2 03H
data2 00H
data4 03H
string "\x0e" //R1:prologue size 14
string "\xe6\x00" //P7:pfs_when time 0
string "\xb1\x25" //P3:pfs_gr 37
string "\xe4\x01" //P7:rp_when time 1
string "\xb0\xa4" //P3:rp_gr 36
string "\xe0\x02\x03" //P7:mem_stack_f time 2 size 3
string "\x61\xb8\x01" //R3:body size 184
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: _tr_stored_block:
.proc _tr_stored_block#
.align 32
len$79273 = 16
val$79277 = 20
s$ = 32
buf$ = 40
stored_len$ = 48
eof$ = 56
_tr_stored_block:
// s$ = r32
// buf$ = r33
// stored_len$ = r34
// eof$ = r35
// Output regs: r38-r41
$LN5@tr_stored_:
// 872 : {
// 873 : send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */
{ .mii //R-Addr: 0X00
alloc r37=4, 2, 4, 0 //872 cc:0
mov r36=b0 //872 cc:0
adds sp=-48, sp;; //872 cc:0, ffffffd0H
}
{ .mmi //R-Addr: 0X010
ld8.nta r2=[sp] //872 cc:1
adds r31=s$, sp
adds r30=buf$, sp
}
{ .mib //R-Addr: 0X020
adds r29=stored_len$, sp
adds r28=eof$, sp
nop.b 0;;
}
{ .mmb //R-Addr: 0X030
st8 [r31]=r32
st8 [r30]=r33
nop.b 0;;
}
{ .mmb //R-Addr: 0X040
st4 [r29]=r34
st4 [r28]=r35
nop.b 0;;
}
{ .mmi //R-Addr: 0X050
mov r27=3 //873 cc:0
adds r26=len$79273, sp //873 cc:0
adds r25=s$, sp //873 cc:0
}
{ .mmi //R-Addr: 0X060
adds r20=len$79273, sp;; //873 cc:0
st4 [r26]=r27 //873 cc:1
nop.i 0
}
{ .mmb //R-Addr: 0X070
ld8 r22=[r25] //873 cc:1
ld4 r19=[r20] //873 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X080
adds r21=5908, r22 //873 cc:2, 00001714H
sub r18=16, r19 //873 cc:2
nop.b 0;;
}
{ .mmi //R-Addr: 0X090
ld4 r17=[r21];; //873 cc:3
cmp4.le.unc p14,p15=r17, r18 //873 cc:4
nop.i 0
}
{ .mmb //R-Addr: 0X0a0
nop.m 0
nop.m 0
(p14) br.cond.dptk.many $LN2@tr_stored_#;; //873 cc:4
}
// 873 : send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */
{ .mmi //R-Addr: 0X0b0
adds r16=eof$, sp //873 cc:5
adds r11=val$79277, sp //873 cc:5
adds r31=s$, sp //873 cc:5
}
{ .mmi //R-Addr: 0X0c0
adds r28=val$79277, sp //873 cc:5
adds r10=s$, sp //873 cc:5
adds r20=s$, sp;; //873 cc:5
}
{ .mmi //R-Addr: 0X0d0
ld4 r15=[r16];; //873 cc:6
st4 [r11]=r15 //873 cc:7
nop.i 0
}
{ .mmb //R-Addr: 0X0e0
ld8 r30=[r31] //873 cc:7
ld4 r27=[r28] //873 cc:7
nop.b 0;;
}
{ .mmi //R-Addr: 0X0f0
ld8 r9=[r10] //873 cc:8
ld8 r19=[r20] //873 cc:8
adds r29=5908, r30;; //873 cc:8, 00001714H
}
{ .mmi //R-Addr: 0X0100
ld4 r26=[r29] //873 cc:9
adds r8=5904, r9 //873 cc:9, 00001710H
adds r18=5904, r19;; //873 cc:9, 00001710H
}
{ .mmi //R-Addr: 0X0110
ld2 r22=[r8];; //873 cc:10
nop.m 0
shl r25=r27, r26;; //873 cc:11
}
{ .mmi //R-Addr: 0X0120
or r21=r22, r25;; //873 cc:14
st2 [r18]=r21 //873 cc:15
adds r17=s$, sp //873 cc:15
}
{ .mmi //R-Addr: 0X0130
adds r9=s$, sp //873 cc:15
adds r30=s$, sp //873 cc:15
adds r22=s$, sp;; //873 cc:15
}
{ .mmi //R-Addr: 0X0140
ld8 r16=[r17] //873 cc:16
ld8 r8=[r9] //873 cc:16
adds r17=s$, sp;; //873 cc:16
}
{ .mmi //R-Addr: 0X0150
ld8 r29=[r30] //873 cc:17
adds r15=5904, r16 //873 cc:17, 00001710H
adds r31=16, r8;; //873 cc:17
}
{ .mmi //R-Addr: 0X0160
ld2 r11=[r15] //873 cc:18
ld8 r26=[r31] //873 cc:18
adds r28=40, r29;; //873 cc:18, 00000028H
}
{ .mii //R-Addr: 0X0170
ld4 r27=[r28] //873 cc:19
zxt1 r10=r11;; //873 cc:19
add r25=r26, r27;; //873 cc:20
}
{ .mmb //R-Addr: 0X0180
st1 [r25]=r10 //873 cc:21
ld8 r21=[r22] //873 cc:21
nop.b 0
}
{ .mmi //R-Addr: 0X0190
ld8 r16=[r17];; //873 cc:21
adds r20=40, r21 //873 cc:22, 00000028H
adds r15=40, r16;; //873 cc:22, 00000028H
}
{ .mmi //R-Addr: 0X01a0
ld4 r19=[r20];; //873 cc:23
adds r18=1, r19 //873 cc:24
nop.i 0;;
}
{ .mmi //R-Addr: 0X01b0
st4 [r15]=r18 //873 cc:25
adds r11=s$, sp //873 cc:25
adds r30=s$, sp //873 cc:25
}
{ .mib //R-Addr: 0X01c0
adds r27=s$, sp //873 cc:25
adds r19=s$, sp //873 cc:25
nop.b 0;;
}
{ .mmb //R-Addr: 0X01d0
ld8 r10=[r11] //873 cc:26
ld8 r29=[r30] //873 cc:26
nop.b 0;;
}
{ .mmi //R-Addr: 0X01e0
ld8 r26=[r27] //873 cc:27
adds r9=5904, r10 //873 cc:27, 00001710H
adds r28=16, r29;; //873 cc:27
}
{ .mmi //R-Addr: 0X01f0
ld2 r8=[r9] //873 cc:28
ld8 r21=[r28] //873 cc:28
adds r25=40, r26;; //873 cc:28, 00000028H
}
{ .mii //R-Addr: 0X0200
ld4 r22=[r25] //873 cc:29
extr r31=r8, 8, 24;; //873 cc:29
add r20=r21, r22;; //873 cc:30
}
{ .mmb //R-Addr: 0X0210
st1 [r20]=r31 //873 cc:31
ld8 r18=[r19] //873 cc:31
nop.b 0;;
}
{ .mmi //R-Addr: 0X0220
adds r17=40, r18;; //873 cc:32, 00000028H
ld4 r16=[r17] //873 cc:33
nop.i 0;;
}
{ .mmi //R-Addr: 0X0230
adds r15=1, r16;; //873 cc:34
adds r11=s$, sp //873 cc:0
nop.i 0;;
}
{ .mmi //R-Addr: 0X0240
ld8 r10=[r11];; //873 cc:1
adds r9=40, r10 //873 cc:2, 00000028H
nop.i 0;;
}
{ .mmi //R-Addr: 0X0250
st4 [r9]=r15 //873 cc:3
adds r29=s$, sp //873 cc:3
adds r8=val$79277, sp //873 cc:3
}
{ .mmi //R-Addr: 0X0260
adds r20=s$, sp //873 cc:3
adds r17=s$, sp //873 cc:3
adds r11=len$79273, sp;; //873 cc:3
}
{ .mmb //R-Addr: 0X0270
ld8 r28=[r29] //873 cc:4
ld4 r31=[r8] //873 cc:4
nop.b 0;;
}
{ .mmi //R-Addr: 0X0280
ld8 r19=[r20] //873 cc:5
adds r27=5908, r28 //873 cc:5, 00001714H
zxt2 r30=r31 //873 cc:5
}
{ .mmi //R-Addr: 0X0290
adds r28=s$, sp;; //873 cc:5
ld4 r26=[r27] //873 cc:6
adds r18=5904, r19;; //873 cc:6, 00001710H
}
{ .mii //R-Addr: 0X02a0
nop.m 0
sxt4 r25=r26;; //873 cc:7
sub r22=16, r25;; //873 cc:8
}
{ .mib //R-Addr: 0X02b0
nop.m 0
shr r21=r30, r22 //873 cc:11
nop.b 0;;
}
{ .mmb //R-Addr: 0X02c0
st2 [r18]=r21 //873 cc:14
ld8 r16=[r17] //873 cc:14
nop.b 0
}
{ .mmi //R-Addr: 0X02d0
ld4 r10=[r11];; //873 cc:14
ld8 r27=[r28] //873 cc:15
sxt4 r9=r10 //873 cc:15
}
{ .mmi //R-Addr: 0X02e0
adds r15=5908, r16;; //873 cc:15, 00001714H
ld4 r31=[r15] //873 cc:16
adds r8=-16, r9 //873 cc:16
}
{ .mmi //R-Addr: 0X02f0
adds r26=5908, r27;; //873 cc:16, 00001714H
nop.m 0
sxt4 r30=r31;; //873 cc:17
}
{ .mmi //R-Addr: 0X0300
add r29=r30, r8;; //873 cc:18
st4 [r26]=r29 //873 cc:19
nop.i 0
}
{ .mmb //R-Addr: 0X0310
nop.m 0
nop.m 0
br.cond.sptk.few $LN1@tr_stored_#;; //873 cc:19
}
$LN2@tr_stored_:
// 873 : send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */
{ .mmi //R-Addr: 0X0320
adds r20=s$, sp //873 cc:0
adds r25=s$, sp //873 cc:0
adds r17=eof$, sp //873 cc:0
}
{ .mib //R-Addr: 0X0330
adds r8=s$, sp //873 cc:0
adds r29=s$, sp //873 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0340
ld8 r19=[r20] //873 cc:1
ld8 r22=[r25] //873 cc:1
adds r25=len$79273, sp //873 cc:1
}
{ .mmi //R-Addr: 0X0350
adds r20=s$, sp;; //873 cc:1
ld4 r16=[r17] //873 cc:2
adds r18=5908, r19 //873 cc:2, 00001714H
}
{ .mii //R-Addr: 0X0360
ld8 r31=[r8] //873 cc:2
adds r21=5904, r22;; //873 cc:2, 00001710H
adds r30=5904, r31 //873 cc:3, 00001710H
}
{ .mmb //R-Addr: 0X0370
ld4 r15=[r18] //873 cc:3
ld2 r10=[r21] //873 cc:3
nop.b 0;;
}
{ .mii //R-Addr: 0X0380
nop.m 0
shl r11=r16, r15;; //873 cc:5
or r9=r10, r11;; //873 cc:8
}
{ .mmb //R-Addr: 0X0390
st2 [r30]=r9 //873 cc:9
ld8 r28=[r29] //873 cc:9
nop.b 0
}
{ .mmi //R-Addr: 0X03a0
ld4 r22=[r25];; //873 cc:9
ld8 r19=[r20] //873 cc:10
adds r27=5908, r28;; //873 cc:10, 00001714H
}
{ .mii //R-Addr: 0X03b0
ld4 r26=[r27] //873 cc:11
adds r18=5908, r19;; //873 cc:11, 00001714H
add r21=r26, r22;; //873 cc:12
}
{ .mmb //R-Addr: 0X03c0
st4 [r18]=r21 //873 cc:13
nop.m 0
nop.b 0;;
}
$LN1@tr_stored_:
// 874 : #ifdef DEBUG
// 875 : s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
// 876 : s->compressed_len += (stored_len + 4) << 3;
// 877 : #endif
// 878 : copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
// 879 : }
{ .mmi //R-Addr: 0X03d0
adds r17=stored_len$, sp //878 cc:0
adds r16=buf$, sp //878 cc:0
adds r15=s$, sp //878 cc:0
}
{ .mmi //R-Addr: 0X03e0
mov r41=1;; //878 cc:0
ld4 r40=[r17] //878 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X03f0
ld8 r39=[r16] //878 cc:2
ld8 r38=[r15] //878 cc:2
br.call.sptk.few b0=copy_block#;; //878 cc:2
}
{ .mii //R-Addr: 0X0400
adds sp=48, sp //879 cc:0, 00000030H
mov.ret b0=r36;; //879 cc:0
mov.i ar.pfs=r37 //879 cc:1
}
{ .mmb //R-Addr: 0X0410
nop.m 0
nop.m 0
br.ret.sptk.many b0;; //879 cc:1
}
// End code for function:
.endp _tr_stored_block#
.type _tr_align# ,@function
.global _tr_align#
.section .pdata
$T79594: data4 @imagerel($LN12@tr_align#)
data4 @imagerel($LN12@tr_align#+3904)
data4 @imagerel($T79592#)
.section .xdata
.skip 8
$T79592: data2 03H
data2 00H
data4 03H
string "\x07" //R1:prologue size 7
string "\xe6\x00" //P7:pfs_when time 0
string "\xb1\x22" //P3:pfs_gr 34
string "\xe4\x01" //P7:rp_when time 1
string "\xb0\xa1" //P3:rp_gr 33
string "\xe0\x02\x03" //P7:mem_stack_f time 2 size 3
string "\x61\xd5\x05" //R3:body size 725
string "\x81" //B1:label_state 1
string "\xc0\x04" //B2:ecount 0 time 4
string "\x00\x00\x00\x00\x00\x00" //padding
// Function compile flags: /Odtp
.section .text
// Begin code for function: _tr_align:
.proc _tr_align#
.align 32
len$79289 = 16
val$79293 = 20
len$79301 = 24
val$79305 = 28
len$79314 = 32
val$79318 = 36
len$79326 = 40
val$79330 = 44
s$ = 48
_tr_align:
// s$ = r32
// Output regs: r35-r35
$LN12@tr_align:
// 894 : {
// 895 : send_bits(s, STATIC_TREES<<1, 3);
{ .mii //R-Addr: 0X00
alloc r34=1, 2, 1, 0 //894 cc:0
mov r33=b0 //894 cc:0
adds sp=-48, sp;; //894 cc:0, ffffffd0H
}
{ .mib //R-Addr: 0X010
ld8.nta r2=[sp] //894 cc:1
adds r31=s$, sp
nop.b 0;;
}
{ .mmi //R-Addr: 0X020
st8 [r31]=r32;;
mov r30=3 //895 cc:0
adds r29=len$79289, sp //895 cc:0
}
{ .mib //R-Addr: 0X030
adds r28=s$, sp //895 cc:0
adds r25=len$79289, sp //895 cc:0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -