📄 inffast.asm
字号:
ld4 r29=[r30];; //122 cc:3
ld4 r26=[r27] //122 cc:4
nop.i 0;;
}
{ .mmi //R-Addr: 0X0420
ld1 r31=[r8];; //122 cc:5
nop.m 0
shl r28=r31, r29;; //122 cc:7
}
{ .mmi //R-Addr: 0X0430
add r25=r26, r28;; //122 cc:10
st4 [r22]=r25 //122 cc:11
nop.i 0;;
}
{ .mib //R-Addr: 0X0440
adds r21=bits$, sp //123 cc:0
adds r18=bits$, sp //123 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0450
ld4 r20=[r21];; //123 cc:1
adds r19=8, r20 //123 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0460
st4 [r18]=r19;; //123 cc:3
adds r17=in$, sp //124 cc:0
adds r11=in$, sp //124 cc:0
}
{ .mmi //R-Addr: 0X0470
adds r10=in$, sp //124 cc:0
adds r31=bits$, sp //124 cc:0
adds r28=hold$, sp;; //124 cc:0
}
{ .mii //R-Addr: 0X0480
ld8 r16=[r17] //124 cc:1
adds r25=hold$, sp;; //124 cc:1
adds r15=1, r16;; //124 cc:2
}
{ .mmb //R-Addr: 0X0490
st8 [r11]=r15 //124 cc:3
ld8 r9=[r10] //124 cc:3
nop.b 0
}
{ .mmi //R-Addr: 0X04a0
ld4 r30=[r31];; //124 cc:3
ld4 r27=[r28] //124 cc:4
nop.i 0;;
}
{ .mmi //R-Addr: 0X04b0
ld1 r8=[r9];; //124 cc:5
nop.m 0
shl r29=r8, r30;; //124 cc:7
}
{ .mmi //R-Addr: 0X04c0
add r26=r27, r29;; //124 cc:10
st4 [r25]=r26 //124 cc:11
nop.i 0;;
}
{ .mib //R-Addr: 0X04d0
adds r22=bits$, sp //125 cc:0
adds r19=bits$, sp //125 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X04e0
ld4 r21=[r22];; //125 cc:1
adds r20=8, r21 //125 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X04f0
st4 [r19]=r20;; //125 cc:3
nop.m 0
nop.i 0;;
}
$LN51@inflate_fa:
// 126 : }
// 127 : this = lcode[hold & lmask];
{ .mmi //R-Addr: 0X0500
adds r18=hold$, sp //127 cc:0
adds r16=lmask$, sp //127 cc:0
adds r8=lcode$, sp //127 cc:0
}
{ .mmi //R-Addr: 0X0510
adds r22=this$, sp;; //127 cc:0
ld4 r17=[r18] //127 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X0520
ld4 r15=[r16];; //127 cc:1
ld8 r31=[r8] //127 cc:2
and r11=r17, r15;; //127 cc:2
}
{ .mii //R-Addr: 0X0530
nop.m 0
zxt4 r10=r11;; //127 cc:3
shl r9=r10, 2;; //127 cc:4
}
{ .mmi //R-Addr: 0X0540
add r30=r31, r9;; //127 cc:5
mov r29=r30 //127 cc:6
adds r28=2, r30;; //127 cc:6
}
{ .mmb //R-Addr: 0X0550
ld2 r27=[r29] //127 cc:7
ld2 r26=[r28] //127 cc:7
nop.b 0;;
}
{ .mib //R-Addr: 0X0560
nop.m 0
dep r25=r26, r27, 16, 16 //127 cc:8
nop.b 0;;
}
{ .mmb //R-Addr: 0X0570
st4 [r22]=r25 //127 cc:9
nop.m 0
nop.b 0;;
}
$dolen$78820:
// 128 : dolen:
// 129 : op = (unsigned)(this.bits);
// 130 : hold >>= op;
// 131 : bits -= op;
// 132 : op = (unsigned)(this.op);
// 133 : if (op == 0) { /* literal */
{ .mib //R-Addr: 0X0580
adds r21=this$+1, sp //129 cc:0
adds r19=op$, sp //129 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0590
ld1 r20=[r21];; //129 cc:1
st4 [r19]=r20 //129 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X05a0
adds r18=hold$, sp //130 cc:0
adds r16=op$, sp //130 cc:0
adds r10=hold$, sp;; //130 cc:0
}
{ .mmb //R-Addr: 0X05b0
ld4 r17=[r18] //130 cc:1
ld4 r15=[r16] //130 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X05c0
nop.m 0
shr.u r11=r17, r15 //130 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X05d0
st4 [r10]=r11;; //130 cc:6
adds r9=bits$, sp //131 cc:0
adds r31=op$, sp //131 cc:0
}
{ .mmi //R-Addr: 0X05e0
adds r28=bits$, sp;; //131 cc:0
ld4 r8=[r9] //131 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X05f0
ld4 r30=[r31];; //131 cc:1
sub r29=r8, r30 //131 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0600
st4 [r28]=r29;; //131 cc:3
adds r27=this$, sp //132 cc:0
adds r25=op$, sp;; //132 cc:0
}
{ .mmi //R-Addr: 0X0610
ld1 r26=[r27];; //132 cc:1
st4 [r25]=r26 //132 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0620
adds r22=op$, sp;; //133 cc:0
ld4 r21=[r22] //133 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0630
cmp4.ne.unc p14,p15=r0, r21 //133 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN50@inflate_fa#;; //133 cc:2
}
// 134 : Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ?
// 135 : "inflate: literal '%c'\n" :
// 136 : "inflate: literal 0x%02x\n", this.val));
// 137 : PUP(out) = (unsigned char)(this.val);
{ .mmi //R-Addr: 0X0640
adds r20=out$, sp //137 cc:0
adds r17=out$, sp //137 cc:0
adds r16=this$+2, sp //137 cc:0
}
{ .mmi //R-Addr: 0X0650
adds r11=out$, sp;; //137 cc:0
ld8 r19=[r20] //137 cc:1
nop.i 0;;
}
{ .mmi //R-Addr: 0X0660
adds r18=1, r19;; //137 cc:2
st8 [r17]=r18 //137 cc:3
nop.i 0
}
{ .mmb //R-Addr: 0X0670
ld2 r15=[r16] //137 cc:3
ld8 r10=[r11] //137 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X0680
st1 [r10]=r15 //137 cc:5
nop.m 0
br.cond.sptk.few $LN53@inflate_fa#;; //137 cc:0
}
$LN50@inflate_fa:
// 138 : }
// 139 : else if (op & 16) { /* length base */
{ .mmi //R-Addr: 0X0690
adds r9=op$, sp;; //139 cc:0
ld4 r8=[r9] //139 cc:1
nop.i 0;;
}
{ .mib //R-Addr: 0X06a0
nop.m 0
tbit.z.unc p14,p15=r8, 4 //139 cc:2
(p14) br.cond.dptk.few $LN48@inflate_fa#;; //139 cc:2
}
// 140 : len = (unsigned)(this.val);
// 141 : op &= 15; /* number of extra bits */
// 142 : if (op) {
{ .mib //R-Addr: 0X06b0
adds r31=this$+2, sp //140 cc:0
adds r29=len$, sp //140 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X06c0
ld2 r30=[r31];; //140 cc:1
st4 [r29]=r30 //140 cc:2
nop.i 0;;
}
{ .mib //R-Addr: 0X06d0
adds r28=op$, sp //141 cc:0
adds r25=op$, sp //141 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X06e0
ld4 r27=[r28];; //141 cc:1
and r26=15, r27 //141 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X06f0
st4 [r25]=r26;; //141 cc:3
adds r22=op$, sp //142 cc:0
nop.i 0;;
}
{ .mmi //R-Addr: 0X0700
ld4 r21=[r22];; //142 cc:1
cmp4.eq.unc p14,p15=r0, r21 //142 cc:2
nop.i 0
}
{ .mmb //R-Addr: 0X0710
nop.m 0
nop.m 0
(p14) br.cond.dptk.few $LN47@inflate_fa#;; //142 cc:2
}
// 143 : if (bits < op) {
{ .mib //R-Addr: 0X0720
adds r20=bits$, sp //143 cc:0
adds r18=op$, sp //143 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X0730
ld4 r19=[r20] //143 cc:1
ld4 r17=[r18] //143 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X0740
cmp4.geu.unc p14,p15=r19, r17 //143 cc:2
nop.m 0
(p14) br.cond.dptk.many $LN46@inflate_fa#;; //143 cc:2
}
// 144 : hold += (unsigned long)(PUP(in)) << bits;
// 145 : bits += 8;
{ .mmi //R-Addr: 0X0750
adds r16=in$, sp //144 cc:0
adds r10=in$, sp //144 cc:0
adds r9=in$, sp //144 cc:0
}
{ .mmi //R-Addr: 0X0760
adds r30=bits$, sp //144 cc:0
adds r27=hold$, sp //144 cc:0
adds r22=hold$, sp;; //144 cc:0
}
{ .mmi //R-Addr: 0X0770
ld8 r15=[r16];; //144 cc:1
adds r11=1, r15 //144 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X0780
st8 [r10]=r11 //144 cc:3
ld8 r8=[r9] //144 cc:3
nop.b 0
}
{ .mmi //R-Addr: 0X0790
ld4 r29=[r30];; //144 cc:3
ld4 r26=[r27] //144 cc:4
nop.i 0;;
}
{ .mmi //R-Addr: 0X07a0
ld1 r31=[r8];; //144 cc:5
nop.m 0
shl r28=r31, r29;; //144 cc:7
}
{ .mmi //R-Addr: 0X07b0
add r25=r26, r28;; //144 cc:10
st4 [r22]=r25 //144 cc:11
nop.i 0;;
}
{ .mib //R-Addr: 0X07c0
adds r21=bits$, sp //145 cc:0
adds r18=bits$, sp //145 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X07d0
ld4 r20=[r21];; //145 cc:1
adds r19=8, r20 //145 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X07e0
st4 [r18]=r19;; //145 cc:3
nop.m 0
nop.i 0;;
}
$LN46@inflate_fa:
// 146 : }
// 147 : len += (unsigned)hold & ((1U << op) - 1);
// 148 : hold >>= op;
// 149 : bits -= op;
{ .mmi //R-Addr: 0X07f0
adds r17=op$, sp //147 cc:0
mov r15=1 //147 cc:0
adds r9=hold$, sp //147 cc:0
}
{ .mib //R-Addr: 0X0800
adds r30=len$, sp //147 cc:0
adds r27=len$, sp //147 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X0810
ld4 r16=[r17] //147 cc:1
ld4 r8=[r9] //147 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0820
ld4 r29=[r30];; //147 cc:2
nop.m 0
shl r11=r15, r16;; //147 cc:3
}
{ .mmi //R-Addr: 0X0830
adds r10=-1, r11;; //147 cc:6
and r31=r8, r10 //147 cc:7
nop.i 0;;
}
{ .mmi //R-Addr: 0X0840
add r28=r29, r31;; //147 cc:8
st4 [r27]=r28 //147 cc:9
nop.i 0;;
}
{ .mmi //R-Addr: 0X0850
adds r26=hold$, sp //148 cc:0
adds r22=op$, sp //148 cc:0
adds r19=hold$, sp;; //148 cc:0
}
{ .mmb //R-Addr: 0X0860
ld4 r25=[r26] //148 cc:1
ld4 r21=[r22] //148 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X0870
nop.m 0
shr.u r20=r25, r21 //148 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X0880
st4 [r19]=r20;; //148 cc:6
adds r18=bits$, sp //149 cc:0
adds r16=op$, sp //149 cc:0
}
{ .mmi //R-Addr: 0X0890
adds r10=bits$, sp;; //149 cc:0
ld4 r17=[r18] //149 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X08a0
ld4 r15=[r16];; //149 cc:1
sub r11=r17, r15 //149 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X08b0
st4 [r10]=r11;; //149 cc:3
nop.m 0
nop.i 0;;
}
$LN47@inflate_fa:
// 150 : }
// 151 : Tracevv((stderr, "inflate: length %u\n", len));
// 152 : if (bits < 15) {
{ .mmi //R-Addr: 0X08c0
adds r9=bits$, sp;; //152 cc:0
ld4 r8=[r9] //152 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X08d0
cmp4.leu.unc p14,p15=15, r8 //152 cc:2
nop.m 0
(p14) br.cond.dptk.many $LN45@inflate_fa#;; //152 cc:2
}
// 153 : hold += (unsigned long)(PUP(in)) << bits;
// 154 : bits += 8;
// 155 : hold += (unsigned long)(PUP(in)) << bits;
// 156 : bits += 8;
{ .mmi //R-Addr: 0X08e0
adds r31=in$, sp //153 cc:0
adds r28=in$, sp //153 cc:0
adds r27=in$, sp //153 cc:0
}
{ .mmi //R-Addr: 0X08f0
adds r22=bits$, sp //153 cc:0
adds r19=hold$, sp //153 cc:0
adds r16=hold$, sp;; //153 cc:0
}
{ .mmi //R-Addr: 0X0900
ld8 r30=[r31];; //153 cc:1
adds r29=1, r30 //153 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X0910
st8 [r28]=r29 //153 cc:3
ld8 r26=[r27] //153 cc:3
nop.b 0
}
{ .mmi //R-Addr: 0X0920
ld4 r21=[r22];; //153 cc:3
ld4 r18=[r19] //153 cc:4
nop.i 0;;
}
{ .mmi //R-Addr: 0X0930
ld1 r25=[r26];; //153 cc:5
nop.m 0
shl r20=r25, r21;; //153 cc:7
}
{ .mmi //R-Addr: 0X0940
add r17=r18, r20;; //153 cc:10
st4 [r16]=r17 //153 cc:11
nop.i 0;;
}
{ .mib //R-Addr: 0X0950
adds r15=bits$, sp //154 cc:0
adds r9=bits$, sp //154 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0960
ld4 r11=[r15];; //154 cc:1
adds r10=8, r11 //154 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0970
st4 [r9]=r10;; //154 cc:3
adds r8=in$, sp //155 cc:0
adds r29=in$, sp //155 cc:0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -