📄 inffast.asm
字号:
nop.i 0;;
}
{ .mmb //R-Addr: 0X0ef0
nop.m 0
nop.m 0
br.cond.sptk.many $LN52@inflate_fa#;; //192 cc:0
}
$LN40@inflate_fa:
// 193 : }
// 194 : from = window - OFF;
// 195 : if (write == 0) { /* very common case */
{ .mib //R-Addr: 0X0f00
adds r27=window$, sp //194 cc:0
adds r22=from$, sp //194 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0f10
ld8 r26=[r27];; //194 cc:1
adds r25=-1, r26 //194 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0f20
st8 [r22]=r25;; //194 cc:3
adds r21=write$, sp //195 cc:0
nop.i 0;;
}
{ .mmi //R-Addr: 0X0f30
ld4 r20=[r21];; //195 cc:1
cmp4.ne.unc p14,p15=r0, r20 //195 cc:2
nop.i 0
}
{ .mmb //R-Addr: 0X0f40
nop.m 0
nop.m 0
(p14) br.cond.dptk.few $LN39@inflate_fa#;; //195 cc:2
}
// 196 : from += wsize - op;
// 197 : if (op < len) { /* some from window */
{ .mmi //R-Addr: 0X0f50
adds r19=wsize$, sp //196 cc:0
adds r17=op$, sp //196 cc:0
adds r10=from$, sp //196 cc:0
}
{ .mmi //R-Addr: 0X0f60
adds r31=from$, sp;; //196 cc:0
ld4 r18=[r19] //196 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X0f70
ld4 r16=[r17];; //196 cc:1
ld8 r9=[r10] //196 cc:2
sub r15=r18, r16;; //196 cc:2
}
{ .mii //R-Addr: 0X0f80
nop.m 0
zxt4 r11=r15;; //196 cc:3
add r8=r9, r11;; //196 cc:4
}
{ .mmi //R-Addr: 0X0f90
st8 [r31]=r8;; //196 cc:5
adds r30=op$, sp //197 cc:0
adds r28=len$, sp;; //197 cc:0
}
{ .mmb //R-Addr: 0X0fa0
ld4 r29=[r30] //197 cc:1
ld4 r27=[r28] //197 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X0fb0
cmp4.geu.unc p14,p15=r29, r27 //197 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN38@inflate_fa#;; //197 cc:2
}
// 198 : len -= op;
{ .mmi //R-Addr: 0X0fc0
adds r26=len$, sp //198 cc:0
adds r22=op$, sp //198 cc:0
adds r19=len$, sp;; //198 cc:0
}
{ .mmb //R-Addr: 0X0fd0
ld4 r25=[r26] //198 cc:1
ld4 r21=[r22] //198 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0fe0
sub r20=r25, r21;; //198 cc:2
st4 [r19]=r20 //198 cc:3
nop.i 0;;
}
$LN37@inflate_fa:
// 199 : do {
// 200 : PUP(out) = PUP(from);
// 201 : } while (--op);
{ .mmi //R-Addr: 0X0ff0
adds r18=from$, sp //200 cc:0
adds r15=from$, sp //200 cc:0
adds r11=out$, sp //200 cc:0
}
{ .mmi //R-Addr: 0X01000
adds r8=out$, sp //200 cc:0
adds r31=from$, sp //200 cc:0
adds r28=out$, sp;; //200 cc:0
}
{ .mmi //R-Addr: 0X01010
ld8 r17=[r18];; //200 cc:1
adds r16=1, r17 //200 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01020
st8 [r15]=r16 //200 cc:3
ld8 r10=[r11] //200 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01030
adds r9=1, r10;; //200 cc:4
st8 [r8]=r9 //200 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X01040
ld8 r30=[r31] //200 cc:5
ld8 r27=[r28] //200 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X01050
ld1 r29=[r30];; //200 cc:7
st1 [r27]=r29 //200 cc:8
nop.i 0;;
}
{ .mmi //R-Addr: 0X01060
adds r26=op$, sp //201 cc:0
adds r21=op$, sp //201 cc:0
adds r20=op$, sp;; //201 cc:0
}
{ .mmi //R-Addr: 0X01070
ld4 r25=[r26];; //201 cc:1
adds r22=-1, r25 //201 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01080
st4 [r21]=r22 //201 cc:3
ld4 r19=[r20] //201 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X01090
cmp4.ne.unc p14,p15=r0, r19 //201 cc:4
nop.m 0
(p14) br.cond.dptk.many $LN37@inflate_fa#;; //201 cc:4
}
// 202 : from = out - dist; /* rest from output */
{ .mmi //R-Addr: 0X010a0
adds r18=dist$, sp //202 cc:0
adds r16=out$, sp //202 cc:0
adds r10=from$, sp;; //202 cc:0
}
{ .mmb //R-Addr: 0X010b0
ld4 r17=[r18] //202 cc:1
ld8 r15=[r16] //202 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X010c0
sub r11=r15, r17;; //202 cc:2
st8 [r10]=r11 //202 cc:3
nop.i 0;;
}
$LN38@inflate_fa:
// 203 : }
{ .mmb //R-Addr: 0X010d0
nop.m 0
nop.m 0
br.cond.sptk.few $LN19@inflate_fa#;; //203 cc:0
}
$LN39@inflate_fa:
// 204 : }
// 205 : else if (write < op) { /* wrap around window */
{ .mib //R-Addr: 0X010e0
adds r9=write$, sp //205 cc:0
adds r31=op$, sp //205 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X010f0
ld4 r8=[r9] //205 cc:1
ld4 r30=[r31] //205 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X01100
cmp4.geu.unc p14,p15=r8, r30 //205 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN33@inflate_fa#;; //205 cc:2
}
// 206 : from += wsize + write - op;
// 207 : op -= write;
// 208 : if (op < len) { /* some from end of window */
{ .mmi //R-Addr: 0X01110
adds r29=wsize$, sp //206 cc:0
adds r27=write$, sp //206 cc:0
adds r22=op$, sp //206 cc:0
}
{ .mib //R-Addr: 0X01120
adds r18=from$, sp //206 cc:0
adds r15=from$, sp //206 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X01130
ld4 r28=[r29] //206 cc:1
ld4 r26=[r27] //206 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X01140
ld4 r21=[r22] //206 cc:2
ld8 r17=[r18] //206 cc:2
add r25=r28, r26;; //206 cc:2
}
{ .mmi //R-Addr: 0X01150
sub r20=r25, r21;; //206 cc:3
nop.m 0
zxt4 r19=r20;; //206 cc:4
}
{ .mmi //R-Addr: 0X01160
add r16=r17, r19;; //206 cc:5
st8 [r15]=r16 //206 cc:6
nop.i 0;;
}
{ .mmi //R-Addr: 0X01170
adds r11=op$, sp //207 cc:0
adds r9=write$, sp //207 cc:0
adds r30=op$, sp;; //207 cc:0
}
{ .mmb //R-Addr: 0X01180
ld4 r10=[r11] //207 cc:1
ld4 r8=[r9] //207 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X01190
sub r31=r10, r8;; //207 cc:2
st4 [r30]=r31 //207 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X011a0
adds r29=op$, sp //208 cc:0
adds r27=len$, sp //208 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X011b0
ld4 r28=[r29] //208 cc:1
ld4 r26=[r27] //208 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X011c0
cmp4.geu.unc p14,p15=r28, r26 //208 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN32@inflate_fa#;; //208 cc:2
}
// 209 : len -= op;
{ .mmi //R-Addr: 0X011d0
adds r25=len$, sp //209 cc:0
adds r21=op$, sp //209 cc:0
adds r18=len$, sp;; //209 cc:0
}
{ .mmb //R-Addr: 0X011e0
ld4 r22=[r25] //209 cc:1
ld4 r20=[r21] //209 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X011f0
sub r19=r22, r20;; //209 cc:2
st4 [r18]=r19 //209 cc:3
nop.i 0;;
}
$LN31@inflate_fa:
// 210 : do {
// 211 : PUP(out) = PUP(from);
// 212 : } while (--op);
{ .mmi //R-Addr: 0X01200
adds r17=from$, sp //211 cc:0
adds r11=from$, sp //211 cc:0
adds r10=out$, sp //211 cc:0
}
{ .mmi //R-Addr: 0X01210
adds r31=out$, sp //211 cc:0
adds r30=from$, sp //211 cc:0
adds r27=out$, sp;; //211 cc:0
}
{ .mmi //R-Addr: 0X01220
ld8 r16=[r17];; //211 cc:1
adds r15=1, r16 //211 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01230
st8 [r11]=r15 //211 cc:3
ld8 r9=[r10] //211 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01240
adds r8=1, r9;; //211 cc:4
st8 [r31]=r8 //211 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X01250
ld8 r29=[r30] //211 cc:5
ld8 r26=[r27] //211 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X01260
ld1 r28=[r29];; //211 cc:7
st1 [r26]=r28 //211 cc:8
nop.i 0;;
}
{ .mmi //R-Addr: 0X01270
adds r25=op$, sp //212 cc:0
adds r20=op$, sp //212 cc:0
adds r19=op$, sp;; //212 cc:0
}
{ .mmi //R-Addr: 0X01280
ld4 r22=[r25];; //212 cc:1
adds r21=-1, r22 //212 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01290
st4 [r20]=r21 //212 cc:3
ld4 r18=[r19] //212 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X012a0
cmp4.ne.unc p14,p15=r0, r18 //212 cc:4
nop.m 0
(p14) br.cond.dptk.many $LN31@inflate_fa#;; //212 cc:4
}
// 213 : from = window - OFF;
// 214 : if (write < len) { /* some from start of window */
{ .mib //R-Addr: 0X012b0
adds r17=window$, sp //213 cc:0
adds r11=from$, sp //213 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X012c0
ld8 r16=[r17];; //213 cc:1
adds r15=-1, r16 //213 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X012d0
st8 [r11]=r15;; //213 cc:3
adds r10=write$, sp //214 cc:0
adds r8=len$, sp;; //214 cc:0
}
{ .mmb //R-Addr: 0X012e0
ld4 r9=[r10] //214 cc:1
ld4 r31=[r8] //214 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X012f0
cmp4.geu.unc p14,p15=r9, r31 //214 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN32@inflate_fa#;; //214 cc:2
}
// 215 : op = write;
// 216 : len -= op;
{ .mib //R-Addr: 0X01300
adds r30=write$, sp //215 cc:0
adds r28=op$, sp //215 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X01310
ld4 r29=[r30];; //215 cc:1
st4 [r28]=r29 //215 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X01320
adds r27=len$, sp //216 cc:0
adds r25=op$, sp //216 cc:0
adds r20=len$, sp;; //216 cc:0
}
{ .mmb //R-Addr: 0X01330
ld4 r26=[r27] //216 cc:1
ld4 r22=[r25] //216 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X01340
sub r21=r26, r22;; //216 cc:2
st4 [r20]=r21 //216 cc:3
nop.i 0;;
}
$LN27@inflate_fa:
// 217 : do {
// 218 : PUP(out) = PUP(from);
// 219 : } while (--op);
{ .mmi //R-Addr: 0X01350
adds r19=from$, sp //218 cc:0
adds r16=from$, sp //218 cc:0
adds r15=out$, sp //218 cc:0
}
{ .mmi //R-Addr: 0X01360
adds r9=out$, sp //218 cc:0
adds r8=from$, sp //218 cc:0
adds r29=out$, sp;; //218 cc:0
}
{ .mmi //R-Addr: 0X01370
ld8 r18=[r19];; //218 cc:1
adds r17=1, r18 //218 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01380
st8 [r16]=r17 //218 cc:3
ld8 r11=[r15] //218 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01390
adds r10=1, r11;; //218 cc:4
st8 [r9]=r10 //218 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X013a0
ld8 r31=[r8] //218 cc:5
ld8 r28=[r29] //218 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X013b0
ld1 r30=[r31];; //218 cc:7
st1 [r28]=r30 //218 cc:8
nop.i 0;;
}
{ .mmi //R-Addr: 0X013c0
adds r27=op$, sp //219 cc:0
adds r22=op$, sp //219 cc:0
adds r21=op$, sp;; //219 cc:0
}
{ .mmi //R-Addr: 0X013d0
ld4 r26=[r27];; //219 cc:1
adds r25=-1, r26 //219 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X013e0
st4 [r22]=r25 //219 cc:3
ld4 r20=[r21] //219 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X013f0
cmp4.ne.unc p14,p15=r0, r20 //219 cc:4
nop.m 0
(p14) br.cond.dptk.many $LN27@inflate_fa#;; //219 cc:4
}
// 220 : from = out - dist; /* rest from output */
{ .mmi //R-Addr: 0X01400
adds r19=dist$, sp //220 cc:0
adds r17=out$, sp //220 cc:0
adds r11=from$, sp;; //220 cc:0
}
{ .mmb //R-Addr: 0X01410
ld4 r18=[r19] //220 cc:1
ld8 r16=[r17] //220 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X01420
sub r15=r16, r18;; //220 cc:2
st8 [r11]=r15 //220 cc:3
nop.i 0;;
}
$LN32@inflate_fa:
// 221 : }
// 222 : }
// 223 : }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -