📄 inffast.asm
字号:
// 224 : else { /* contiguous in window */
{ .mmb //R-Addr: 0X01430
nop.m 0
nop.m 0
br.cond.sptk.few $LN19@inflate_fa#;; //224 cc:0
}
$LN33@inflate_fa:
// 225 : from += write - op;
// 226 : if (op < len) { /* some from window */
{ .mmi //R-Addr: 0X01440
adds r10=write$, sp //225 cc:0
adds r8=op$, sp //225 cc:0
adds r28=from$, sp //225 cc:0
}
{ .mmi //R-Addr: 0X01450
adds r25=from$, sp;; //225 cc:0
ld4 r9=[r10] //225 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X01460
ld4 r31=[r8];; //225 cc:1
ld8 r27=[r28] //225 cc:2
sub r30=r9, r31;; //225 cc:2
}
{ .mii //R-Addr: 0X01470
nop.m 0
zxt4 r29=r30;; //225 cc:3
add r26=r27, r29;; //225 cc:4
}
{ .mmi //R-Addr: 0X01480
st8 [r25]=r26;; //225 cc:5
adds r22=op$, sp //226 cc:0
adds r20=len$, sp;; //226 cc:0
}
{ .mmb //R-Addr: 0X01490
ld4 r21=[r22] //226 cc:1
ld4 r19=[r20] //226 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X014a0
cmp4.geu.unc p14,p15=r21, r19 //226 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN19@inflate_fa#;; //226 cc:2
}
// 227 : len -= op;
{ .mmi //R-Addr: 0X014b0
adds r18=len$, sp //227 cc:0
adds r16=op$, sp //227 cc:0
adds r10=len$, sp;; //227 cc:0
}
{ .mmb //R-Addr: 0X014c0
ld4 r17=[r18] //227 cc:1
ld4 r15=[r16] //227 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X014d0
sub r11=r17, r15;; //227 cc:2
st4 [r10]=r11 //227 cc:3
nop.i 0;;
}
$LN22@inflate_fa:
// 228 : do {
// 229 : PUP(out) = PUP(from);
// 230 : } while (--op);
{ .mmi //R-Addr: 0X014e0
adds r9=from$, sp //229 cc:0
adds r30=from$, sp //229 cc:0
adds r29=out$, sp //229 cc:0
}
{ .mmi //R-Addr: 0X014f0
adds r26=out$, sp //229 cc:0
adds r25=from$, sp //229 cc:0
adds r20=out$, sp;; //229 cc:0
}
{ .mmi //R-Addr: 0X01500
ld8 r8=[r9];; //229 cc:1
adds r31=1, r8 //229 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01510
st8 [r30]=r31 //229 cc:3
ld8 r28=[r29] //229 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01520
adds r27=1, r28;; //229 cc:4
st8 [r26]=r27 //229 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X01530
ld8 r22=[r25] //229 cc:5
ld8 r19=[r20] //229 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X01540
ld1 r21=[r22];; //229 cc:7
st1 [r19]=r21 //229 cc:8
nop.i 0;;
}
{ .mmi //R-Addr: 0X01550
adds r18=op$, sp //230 cc:0
adds r15=op$, sp //230 cc:0
adds r11=op$, sp;; //230 cc:0
}
{ .mmi //R-Addr: 0X01560
ld4 r17=[r18];; //230 cc:1
adds r16=-1, r17 //230 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01570
st4 [r15]=r16 //230 cc:3
ld4 r10=[r11] //230 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X01580
cmp4.ne.unc p14,p15=r0, r10 //230 cc:4
nop.m 0
(p14) br.cond.dptk.many $LN22@inflate_fa#;; //230 cc:4
}
// 231 : from = out - dist; /* rest from output */
{ .mmi //R-Addr: 0X01590
adds r9=dist$, sp //231 cc:0
adds r31=out$, sp //231 cc:0
adds r28=from$, sp;; //231 cc:0
}
{ .mmb //R-Addr: 0X015a0
ld4 r8=[r9] //231 cc:1
ld8 r30=[r31] //231 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X015b0
sub r29=r30, r8;; //231 cc:2
st8 [r28]=r29 //231 cc:3
nop.i 0;;
}
$LN19@inflate_fa:
// 232 : }
// 233 : }
// 234 : while (len > 2) {
{ .mmi //R-Addr: 0X015c0
adds r27=len$, sp;; //234 cc:0
ld4 r26=[r27] //234 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X015d0
cmp4.geu.unc p14,p15=2, r26 //234 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN18@inflate_fa#;; //234 cc:2
}
// 235 : PUP(out) = PUP(from);
// 236 : PUP(out) = PUP(from);
// 237 : PUP(out) = PUP(from);
// 238 : len -= 3;
// 239 : }
{ .mmi //R-Addr: 0X015e0
adds r25=from$, sp //235 cc:0
adds r20=from$, sp //235 cc:0
adds r19=out$, sp //235 cc:0
}
{ .mmi //R-Addr: 0X015f0
adds r16=out$, sp //235 cc:0
adds r15=from$, sp //235 cc:0
adds r9=out$, sp;; //235 cc:0
}
{ .mmi //R-Addr: 0X01600
ld8 r22=[r25];; //235 cc:1
adds r21=1, r22 //235 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01610
st8 [r20]=r21 //235 cc:3
ld8 r18=[r19] //235 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01620
adds r17=1, r18;; //235 cc:4
st8 [r16]=r17 //235 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X01630
ld8 r11=[r15] //235 cc:5
ld8 r8=[r9] //235 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X01640
ld1 r10=[r11];; //235 cc:7
st1 [r8]=r10 //235 cc:8
nop.i 0;;
}
{ .mmi //R-Addr: 0X01650
adds r31=from$, sp //236 cc:0
adds r28=from$, sp //236 cc:0
adds r27=out$, sp //236 cc:0
}
{ .mmi //R-Addr: 0X01660
adds r22=out$, sp //236 cc:0
adds r21=from$, sp //236 cc:0
adds r18=out$, sp;; //236 cc:0
}
{ .mmi //R-Addr: 0X01670
ld8 r30=[r31];; //236 cc:1
adds r29=1, r30 //236 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01680
st8 [r28]=r29 //236 cc:3
ld8 r26=[r27] //236 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01690
adds r25=1, r26;; //236 cc:4
st8 [r22]=r25 //236 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X016a0
ld8 r20=[r21] //236 cc:5
ld8 r17=[r18] //236 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X016b0
ld1 r19=[r20];; //236 cc:7
st1 [r17]=r19 //236 cc:8
nop.i 0;;
}
{ .mmi //R-Addr: 0X016c0
adds r16=from$, sp //237 cc:0
adds r10=from$, sp //237 cc:0
adds r9=out$, sp //237 cc:0
}
{ .mmi //R-Addr: 0X016d0
adds r30=out$, sp //237 cc:0
adds r29=from$, sp //237 cc:0
adds r26=out$, sp;; //237 cc:0
}
{ .mmi //R-Addr: 0X016e0
ld8 r15=[r16];; //237 cc:1
adds r11=1, r15 //237 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X016f0
st8 [r10]=r11 //237 cc:3
ld8 r8=[r9] //237 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01700
adds r31=1, r8;; //237 cc:4
st8 [r30]=r31 //237 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X01710
ld8 r28=[r29] //237 cc:5
ld8 r25=[r26] //237 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X01720
ld1 r27=[r28];; //237 cc:7
st1 [r25]=r27 //237 cc:8
nop.i 0;;
}
{ .mib //R-Addr: 0X01730
adds r22=len$, sp //238 cc:0
adds r19=len$, sp //238 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X01740
ld4 r21=[r22];; //238 cc:1
adds r20=-3, r21 //238 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01750
st4 [r19]=r20 //238 cc:4
nop.m 0
br.cond.sptk.few $LN19@inflate_fa#;; //239 cc:0
}
$LN18@inflate_fa:
// 240 : if (len) {
{ .mmi //R-Addr: 0X01760
adds r18=len$, sp;; //240 cc:0
ld4 r17=[r18] //240 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X01770
cmp4.eq.unc p14,p15=r0, r17 //240 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN17@inflate_fa#;; //240 cc:2
}
// 241 : PUP(out) = PUP(from);
// 242 : if (len > 1)
{ .mmi //R-Addr: 0X01780
adds r16=from$, sp //241 cc:0
adds r10=from$, sp //241 cc:0
adds r9=out$, sp //241 cc:0
}
{ .mmi //R-Addr: 0X01790
adds r30=out$, sp //241 cc:0
adds r29=from$, sp //241 cc:0
adds r26=out$, sp;; //241 cc:0
}
{ .mmi //R-Addr: 0X017a0
ld8 r15=[r16];; //241 cc:1
adds r11=1, r15 //241 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X017b0
st8 [r10]=r11 //241 cc:3
ld8 r8=[r9] //241 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X017c0
adds r31=1, r8;; //241 cc:4
st8 [r30]=r31 //241 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X017d0
ld8 r28=[r29] //241 cc:5
ld8 r25=[r26] //241 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X017e0
ld1 r27=[r28];; //241 cc:7
st1 [r25]=r27 //241 cc:8
nop.i 0;;
}
{ .mmi //R-Addr: 0X017f0
adds r22=len$, sp;; //242 cc:0
ld4 r21=[r22] //242 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X01800
cmp4.geu.unc p14,p15=1, r21 //242 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN17@inflate_fa#;; //242 cc:2
}
// 243 : PUP(out) = PUP(from);
{ .mmi //R-Addr: 0X01810
adds r20=from$, sp //243 cc:0
adds r17=from$, sp //243 cc:0
adds r16=out$, sp //243 cc:0
}
{ .mmi //R-Addr: 0X01820
adds r10=out$, sp //243 cc:0
adds r9=from$, sp //243 cc:0
adds r30=out$, sp;; //243 cc:0
}
{ .mmi //R-Addr: 0X01830
ld8 r19=[r20];; //243 cc:1
adds r18=1, r19 //243 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01840
st8 [r17]=r18 //243 cc:3
ld8 r15=[r16] //243 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01850
adds r11=1, r15;; //243 cc:4
st8 [r10]=r11 //243 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X01860
ld8 r8=[r9] //243 cc:5
ld8 r29=[r30] //243 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X01870
ld1 r31=[r8];; //243 cc:7
st1 [r29]=r31 //243 cc:8
nop.i 0;;
}
$LN17@inflate_fa:
// 244 : }
// 245 : }
// 246 : else {
{ .mmb //R-Addr: 0X01880
nop.m 0
nop.m 0
br.cond.sptk.few $LN15@inflate_fa#;; //246 cc:0
}
$LN41@inflate_fa:
// 247 : from = out - dist; /* copy direct from output */
{ .mmi //R-Addr: 0X01890
adds r28=dist$, sp //247 cc:0
adds r26=out$, sp //247 cc:0
adds r21=from$, sp;; //247 cc:0
}
{ .mmb //R-Addr: 0X018a0
ld4 r27=[r28] //247 cc:1
ld8 r25=[r26] //247 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X018b0
sub r22=r25, r27;; //247 cc:2
st8 [r21]=r22 //247 cc:3
nop.i 0;;
}
$LN14@inflate_fa:
// 248 : do { /* minimum length is three */
// 249 : PUP(out) = PUP(from);
// 250 : PUP(out) = PUP(from);
// 251 : PUP(out) = PUP(from);
// 252 : len -= 3;
// 253 : } while (len > 2);
{ .mmi //R-Addr: 0X018c0
adds r20=from$, sp //249 cc:0
adds r17=from$, sp //249 cc:0
adds r16=out$, sp //249 cc:0
}
{ .mmi //R-Addr: 0X018d0
adds r10=out$, sp //249 cc:0
adds r9=from$, sp //249 cc:0
adds r30=out$, sp;; //249 cc:0
}
{ .mmi //R-Addr: 0X018e0
ld8 r19=[r20];; //249 cc:1
adds r18=1, r19 //249 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X018f0
st8 [r17]=r18 //249 cc:3
ld8 r15=[r16] //249 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01900
adds r11=1, r15;; //249 cc:4
st8 [r10]=r11 //249 cc:5
nop.i 0
}
{ .mmb //R-Addr: 0X01910
ld8 r8=[r9] //249 cc:5
ld8 r29=[r30] //249 cc:5
nop.b 0;;
}
{ .mmi //R-Addr: 0X01920
ld1 r31=[r8];; //249 cc:7
st1 [r29]=r31 //249 cc:8
nop.i 0;;
}
{ .mmi //R-Addr: 0X01930
adds r28=from$, sp //250 cc:0
adds r25=from$, sp //250 cc:0
adds r22=out$, sp //250 cc:0
}
{ .mmi //R-Addr: 0X01940
adds r19=out$, sp //250 cc:0
adds r18=from$, sp //250 cc:0
adds r15=out$, sp;; //250 cc:0
}
{ .mmi //R-Addr: 0X01950
ld8 r27=[r28];; //250 cc:1
adds r26=1, r27 //250 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X01960
st8 [r25]=r26 //250 cc:3
ld8 r21=[r22] //250 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X01970
adds r20=1, r21;; //250 cc:4
st8 [r19]=r20 //250 cc:5
nop.i 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -