📄 deflate.asm
字号:
}
// 247 : if (strm->zfree == (free_func)0) strm->zfree = zcfree;
{ .mib //R-Addr: 0X0250
adds r26=strm$, sp //247 cc:5
addl r21=@ltoff(@fptr(zcfree#)),gp //247 cc:5
nop.b 0;;
}
{ .mmb //R-Addr: 0X0260
ld8 r25=[r26] //247 cc:6
ld8 r20=[r21] //247 cc:6
nop.b 0;;
}
{ .mmi //R-Addr: 0X0270
adds r22=56, r25;; //247 cc:7, 00000038H
st8 [r22]=r20 //247 cc:8
nop.i 0;;
}
$LN11@deflateIni@2:
// 248 :
// 249 : #ifdef FASTEST
// 250 : if (level != 0) level = 1;
// 251 : #else
// 252 : if (level == Z_DEFAULT_COMPRESSION) level = 6;
{ .mmi //R-Addr: 0X0280
adds r19=level$, sp;; //252 cc:0
ld4 r18=[r19] //252 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0290
cmp4.ne.unc p14,p15=-1, r18 //252 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN10@deflateIni@2#;; //252 cc:2
}
// 252 : if (level == Z_DEFAULT_COMPRESSION) level = 6;
{ .mib //R-Addr: 0X02a0
mov r17=6 //252 cc:3
adds r16=level$, sp //252 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X02b0
st4 [r16]=r17 //252 cc:4
nop.m 0
nop.b 0;;
}
$LN10@deflateIni@2:
// 253 : #endif
// 254 :
// 255 : if (windowBits < 0) { /* suppress zlib wrapper */
{ .mmi //R-Addr: 0X02c0
adds r15=windowBits$, sp;; //255 cc:0
ld4 r11=[r15] //255 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X02d0
cmp4.le.unc p14,p15=r0, r11 //255 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN9@deflateIni@2#;; //255 cc:2
}
// 256 : wrap = 0;
// 257 : windowBits = -windowBits;
{ .mmi //R-Addr: 0X02e0
adds r10=wrap$, sp;; //256 cc:0
st4 [r10]=r0 //256 cc:1
nop.i 0;;
}
{ .mib //R-Addr: 0X02f0
adds r9=windowBits$, sp //257 cc:0
adds r30=windowBits$, sp //257 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0300
ld4 r8=[r9];; //257 cc:1
sub r31=r0, r8 //257 cc:2
nop.i 0;;
}
{ .mmb //R-Addr: 0X0310
st4 [r30]=r31 //257 cc:4
nop.m 0
br.cond.sptk.few $LN8@deflateIni@2#;; //257 cc:0
}
$LN9@deflateIni@2:
// 258 : }
// 259 : #ifdef GZIP
// 260 : else if (windowBits > 15) {
{ .mmi //R-Addr: 0X0320
adds r29=windowBits$, sp;; //260 cc:0
ld4 r28=[r29] //260 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0330
cmp4.ge.unc p14,p15=15, r28 //260 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN8@deflateIni@2#;; //260 cc:2
}
// 261 : wrap = 2; /* write gzip wrapper instead */
// 262 : windowBits -= 16;
{ .mib //R-Addr: 0X0340
mov r27=2 //261 cc:0
adds r26=wrap$, sp //261 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0350
st4 [r26]=r27;; //261 cc:1
adds r25=windowBits$, sp //262 cc:0
adds r20=windowBits$, sp;; //262 cc:0
}
{ .mmi //R-Addr: 0X0360
ld4 r22=[r25];; //262 cc:1
adds r21=-16, r22 //262 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0370
st4 [r20]=r21;; //262 cc:3
nop.m 0
nop.i 0;;
}
$LN8@deflateIni@2:
// 263 : }
// 264 : #endif
// 265 : if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
// 266 : windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
// 267 : strategy < 0 || strategy > Z_FIXED) {
{ .mmi //R-Addr: 0X0380
adds r19=memLevel$, sp;; //267 cc:0
ld4 r18=[r19] //267 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0390
cmp4.gt.unc p14,p15=1, r18 //267 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN5@deflateIni@2#;; //267 cc:2
}
// 267 : strategy < 0 || strategy > Z_FIXED) {
{ .mmi //R-Addr: 0X03a0
adds r17=memLevel$, sp;; //267 cc:3
ld4 r16=[r17] //267 cc:4
nop.i 0;;
}
{ .mmb //R-Addr: 0X03b0
cmp4.lt.unc p14,p15=9, r16 //267 cc:5
nop.m 0
(p14) br.cond.dptk.few $LN5@deflateIni@2#;; //267 cc:5
}
// 267 : strategy < 0 || strategy > Z_FIXED) {
{ .mmi //R-Addr: 0X03c0
adds r15=method$, sp;; //267 cc:6
ld4 r11=[r15] //267 cc:7
nop.i 0;;
}
{ .mmb //R-Addr: 0X03d0
cmp4.ne.unc p14,p15=8, r11 //267 cc:8
nop.m 0
(p14) br.cond.dptk.few $LN5@deflateIni@2#;; //267 cc:8
}
// 267 : strategy < 0 || strategy > Z_FIXED) {
{ .mmi //R-Addr: 0X03e0
adds r10=windowBits$, sp;; //267 cc:9
ld4 r9=[r10] //267 cc:10
nop.i 0;;
}
{ .mmb //R-Addr: 0X03f0
cmp4.gt.unc p14,p15=8, r9 //267 cc:11
nop.m 0
(p14) br.cond.dptk.few $LN5@deflateIni@2#;; //267 cc:11
}
// 267 : strategy < 0 || strategy > Z_FIXED) {
{ .mmi //R-Addr: 0X0400
adds r8=windowBits$, sp;; //267 cc:12
ld4 r31=[r8] //267 cc:13
nop.i 0;;
}
{ .mmb //R-Addr: 0X0410
cmp4.lt.unc p14,p15=15, r31 //267 cc:14
nop.m 0
(p14) br.cond.dptk.few $LN5@deflateIni@2#;; //267 cc:14
}
// 267 : strategy < 0 || strategy > Z_FIXED) {
{ .mmi //R-Addr: 0X0420
adds r30=level$, sp;; //267 cc:15
ld4 r29=[r30] //267 cc:16
nop.i 0;;
}
{ .mmb //R-Addr: 0X0430
cmp4.gt.unc p14,p15=r0, r29 //267 cc:17
nop.m 0
(p14) br.cond.dptk.few $LN5@deflateIni@2#;; //267 cc:17
}
// 267 : strategy < 0 || strategy > Z_FIXED) {
{ .mmi //R-Addr: 0X0440
adds r28=level$, sp;; //267 cc:18
ld4 r27=[r28] //267 cc:19
nop.i 0;;
}
{ .mmb //R-Addr: 0X0450
cmp4.lt.unc p14,p15=9, r27 //267 cc:20
nop.m 0
(p14) br.cond.dptk.few $LN5@deflateIni@2#;; //267 cc:20
}
// 267 : strategy < 0 || strategy > Z_FIXED) {
{ .mmi //R-Addr: 0X0460
adds r26=strategy$, sp;; //267 cc:21
ld4 r25=[r26] //267 cc:22
nop.i 0;;
}
{ .mmb //R-Addr: 0X0470
cmp4.gt.unc p14,p15=r0, r25 //267 cc:23
nop.m 0
(p14) br.cond.dptk.few $LN5@deflateIni@2#;; //267 cc:23
}
// 267 : strategy < 0 || strategy > Z_FIXED) {
{ .mmi //R-Addr: 0X0480
adds r22=strategy$, sp;; //267 cc:24
ld4 r21=[r22] //267 cc:25
nop.i 0;;
}
{ .mmb //R-Addr: 0X0490
cmp4.ge.unc p14,p15=4, r21 //267 cc:26
nop.m 0
(p14) br.cond.dptk.few $LN6@deflateIni@2#;; //267 cc:26
}
$LN5@deflateIni@2:
// 268 : return Z_STREAM_ERROR;
{ .mmb //R-Addr: 0X04a0
mov r8=-2 //268 cc:0
nop.m 0
br.cond.sptk.few $LN16@deflateIni@2#;; //268 cc:0
}
$LN6@deflateIni@2:
// 269 : }
// 270 : if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */
{ .mmi //R-Addr: 0X04b0
adds r20=windowBits$, sp;; //270 cc:0
ld4 r19=[r20] //270 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X04c0
cmp4.ne.unc p14,p15=8, r19 //270 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN4@deflateIni@2#;; //270 cc:2
}
// 270 : if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */
{ .mib //R-Addr: 0X04d0
mov r18=9 //270 cc:3
adds r17=windowBits$, sp //270 cc:3
nop.b 0;;
}
{ .mmb //R-Addr: 0X04e0
st4 [r17]=r18 //270 cc:4
nop.m 0
nop.b 0;;
}
$LN4@deflateIni@2:
// 271 : s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
// 272 : if (s == Z_NULL) return Z_MEM_ERROR;
{ .mmi //R-Addr: 0X04f0
adds r10=strm$, sp //271 cc:0
adds r16=strm$, sp //271 cc:0
mov r45=5912 //271 cc:0, 00001718H
}
{ .mmi //R-Addr: 0X0500
mov r44=1;; //271 cc:0
ld8 r9=[r10] //271 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X0510
ld8 r15=[r16];; //271 cc:1
adds r8=48, r9 //271 cc:2, 00000030H
adds r11=64, r15;; //271 cc:2, 00000040H
}
{ .mmb //R-Addr: 0X0520
ld8 r31=[r8] //271 cc:3
ld8 r43=[r11] //271 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X0530
ld8 r30=[r31], 8;; //271 cc:5
ld8 gp=[r31] //271 cc:6
mov b6=r30 //271 cc:6
}
{ .mmb //R-Addr: 0X0540
nop.m 0
nop.m 0
br.call.dptk.many b0=b6;; //271 cc:6
}
{ .mmi //R-Addr: 0X0550
adds r29=$T79478, sp //271 cc:17
adds r28=$T79478, sp //271 cc:17
adds r26=s$, sp //271 cc:17
}
{ .mmi //R-Addr: 0X0560
mov gp=r42;; //271 cc:17
st8 [r29]=r8 //271 cc:18
nop.i 0
}
{ .mmi //R-Addr: 0X0570
ld8 r27=[r28];; //271 cc:18
st8 [r26]=r27 //271 cc:19
nop.i 0;;
}
{ .mmi //R-Addr: 0X0580
adds r25=s$, sp;; //272 cc:0
ld8 r22=[r25] //272 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0590
cmp.ne.unc p14,p15=r0, r22 //272 cc:2
nop.m 0
(p14) br.cond.dptk.many $LN3@deflateIni@2#;; //272 cc:2
}
// 272 : if (s == Z_NULL) return Z_MEM_ERROR;
{ .mmb //R-Addr: 0X05a0
mov r8=-4 //272 cc:3
nop.m 0
br.cond.sptk.few $LN16@deflateIni@2#;; //272 cc:3
}
$LN3@deflateIni@2:
// 273 : strm->state = (struct internal_state FAR *)s;
// 274 : s->strm = strm;
// 275 :
// 276 : s->wrap = wrap;
// 277 : s->gzhead = Z_NULL;
// 278 : s->w_bits = windowBits;
// 279 : s->w_size = 1 << s->w_bits;
// 280 : s->w_mask = s->w_size - 1;
// 281 :
// 282 : s->hash_bits = memLevel + 7;
// 283 : s->hash_size = 1 << s->hash_bits;
// 284 : s->hash_mask = s->hash_size - 1;
// 285 : s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
// 286 :
// 287 : s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
// 288 : s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos));
// 289 : s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos));
// 290 :
// 291 : s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
// 292 :
// 293 : overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
// 294 : s->pending_buf = (uchf *) overlay;
// 295 : s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
// 296 :
// 297 : if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
// 298 : s->pending_buf == Z_NULL) {
{ .mib //R-Addr: 0X05b0
adds r21=strm$, sp //273 cc:0
adds r18=s$, sp //273 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X05c0
ld8 r20=[r21] //273 cc:1
ld8 r17=[r18] //273 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X05d0
adds r19=40, r20;; //273 cc:2, 00000028H
st8 [r19]=r17 //273 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X05e0
adds r16=strm$, sp //274 cc:0
adds r11=s$, sp //274 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X05f0
ld8 r15=[r16] //274 cc:1
ld8 r10=[r11] //274 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0600
st8 [r10]=r15;; //274 cc:2
adds r9=s$, sp //276 cc:0
adds r30=wrap$, sp;; //276 cc:0
}
{ .mmb //R-Addr: 0X0610
ld8 r8=[r9] //276 cc:1
ld4 r29=[r30] //276 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0620
adds r31=44, r8;; //276 cc:2, 0000002cH
st4 [r31]=r29 //276 cc:3
nop.i 0;;
}
{ .mmi //R-Addr: 0X0630
adds r28=s$, sp;; //277 cc:0
ld8 r27=[r28] //277 cc:1
nop.i 0;;
}
{ .mmi //R-Addr: 0X0640
adds r26=48, r27;; //277 cc:2, 00000030H
st8 [r26]=r0 //277 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X0650
adds r25=s$, sp //278 cc:0
adds r20=windowBits$, sp //278 cc:0
nop.b 0;;
}
{ .mmb //R-Addr: 0X0660
ld8 r22=[r25] //278 cc:1
ld4 r19=[r20] //278 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0670
adds r21=72, r22;; //278 cc:2, 00000048H
st4 [r21]=r19 //278 cc:3
nop.i 0;;
}
{ .mmi //R-Addr: 0X0680
adds r18=s$, sp //279 cc:0
mov r11=1 //279 cc:0
adds r9=s$, sp;; //279 cc:0
}
{ .mmb //R-Addr: 0X0690
ld8 r17=[r18] //279 cc:1
ld8 r8=[r9] //279 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X06a0
adds r16=72, r17 //279 cc:2, 00000048H
adds r31=68, r8 //279 cc:2, 00000044H
nop.b 0;;
}
{ .mmi //R-Addr: 0X06b0
ld4 r15=[r16];; //279 cc:3
nop.m 0
shl r10=r11, r15;; //279 cc:5
}
{ .mmi //R-Addr: 0X06c0
st4 [r31]=r10;; //279 cc:8
adds r30=s$, sp //280 cc:0
adds r25=s$, sp;; //280 cc:0
}
{ .mmb //R-Addr: 0X06d0
ld8 r29=[r30] //280 cc:1
ld8 r22=[r25] //280 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X06e0
adds r28=68, r29 //280 cc:2, 00000044H
adds r21=76, r22 //280 cc:2, 0000004cH
nop.b 0;;
}
{ .mmi //R-Addr: 0X06f0
ld4 r27=[r28];; //280 cc:3
adds r26=-1, r27 //280 cc:4
nop.i 0;;
}
{ .mmi //R-Addr: 0X0700
st4 [r21]=r26;; //280 cc:5
adds r20=memLevel$, sp //282 cc:0
adds r17=s$, sp;; //282 cc:0
}
{ .mmb //R-Addr: 0X0710
ld4 r19=[r20] //282 cc:1
ld8 r16=[r17] //282 cc:1
nop.b 0;;
}
{ .mib //R-Addr: 0X0720
adds r18=7, r19 //282 cc:2
adds r15=120, r16 //282 cc:2, 00000078H
nop.b 0;;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -