📄 adler32.asm
字号:
nop.m 0
shl r15=r16, 16;; //93 cc:2
or r8=r10, r15 //93 cc:3
}
{ .mmb //R-Addr: 0X04c0
nop.m 0
nop.m 0
br.cond.sptk.few $LN19@adler32#;; //93 cc:3
}
$LN10@adler32:
// 94 : }
// 95 :
// 96 : /* do length NMAX blocks -- requires just one modulo operation */
// 97 : while (len >= NMAX) {
{ .mib //R-Addr: 0X04d0
adds r9=len$, sp //97 cc:0
mov r31=5552 //97 cc:0, 000015b0H
nop.b 0;;
}
{ .mmi //R-Addr: 0X04e0
ld4 r8=[r9];; //97 cc:1
cmp4.gtu.unc p14,p15=r31, r8 //97 cc:2
nop.i 0
}
{ .mmb //R-Addr: 0X04f0
nop.m 0
nop.m 0
(p14) br.cond.dptk.few $LN9@adler32#;; //97 cc:2
}
// 98 : len -= NMAX;
// 99 : n = NMAX / 16; /* NMAX is divisible by 16 */
{ .mib //R-Addr: 0X0500
adds r30=len$, sp //98 cc:0
adds r27=len$, sp //98 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0510
ld4 r29=[r30];; //98 cc:1
adds r28=-5552, r29 //98 cc:2, ffffea50H
nop.i 0;;
}
{ .mmi //R-Addr: 0X0520
st4 [r27]=r28;; //98 cc:3
mov r26=347 //99 cc:0, 0000015bH
adds r25=n$, sp;; //99 cc:0
}
{ .mmb //R-Addr: 0X0530
st4 [r25]=r26 //99 cc:1
nop.m 0
nop.b 0;;
}
$LN8@adler32:
// 100 : do {
// 101 : DO16(buf); /* 16 sums unrolled */
// 102 : buf += 16;
// 103 : } while (--n);
{ .mmi //R-Addr: 0X0540
adds r22=buf$, sp //101 cc:0
adds r19=adler$, sp //101 cc:0
adds r16=adler$, sp //101 cc:0
}
{ .mmi //R-Addr: 0X0550
adds r15=sum2$, sp //101 cc:0
adds r10=adler$, sp //101 cc:0
adds r31=sum2$, sp;; //101 cc:0
}
{ .mmb //R-Addr: 0X0560
ld8 r21=[r22] //101 cc:1
ld4 r18=[r19] //101 cc:1
nop.b 0;;
}
{ .mmi //R-Addr: 0X0570
ld1 r20=[r21];; //101 cc:3
add r17=r18, r20 //101 cc:4
nop.i 0;;
}
{ .mmb //R-Addr: 0X0580
st4 [r16]=r17 //101 cc:5
ld4 r11=[r15] //101 cc:5
nop.b 0
}
{ .mmi //R-Addr: 0X0590
ld4 r9=[r10];; //101 cc:5
add r8=r11, r9 //101 cc:6
nop.i 0;;
}
{ .mmi //R-Addr: 0X05a0
st4 [r31]=r8 //101 cc:7
adds r30=buf$, sp //101 cc:7
adds r26=adler$, sp //101 cc:7
}
{ .mmi //R-Addr: 0X05b0
adds r21=adler$, sp //101 cc:7
adds r20=sum2$, sp //101 cc:7
adds r18=adler$, sp;; //101 cc:7
}
{ .mmi //R-Addr: 0X05c0
ld8 r29=[r30] //101 cc:8
ld4 r25=[r26] //101 cc:8
adds r15=sum2$, sp;; //101 cc:8
}
{ .mmi //R-Addr: 0X05d0
adds r28=1, r29;; //101 cc:9
ld1 r27=[r28] //101 cc:10
nop.i 0;;
}
{ .mmi //R-Addr: 0X05e0
add r22=r25, r27;; //101 cc:11
st4 [r21]=r22 //101 cc:12
nop.i 0
}
{ .mmb //R-Addr: 0X05f0
ld4 r19=[r20] //101 cc:12
ld4 r17=[r18] //101 cc:12
nop.b 0;;
}
{ .mmi //R-Addr: 0X0600
add r16=r19, r17;; //101 cc:13
st4 [r15]=r16 //101 cc:14
adds r11=buf$, sp //101 cc:14
}
{ .mmi //R-Addr: 0X0610
adds r31=adler$, sp //101 cc:14
adds r28=adler$, sp //101 cc:14
adds r27=sum2$, sp;; //101 cc:14
}
{ .mmi //R-Addr: 0X0620
ld8 r10=[r11] //101 cc:15
ld4 r30=[r31] //101 cc:15
adds r25=adler$, sp //101 cc:15
}
{ .mmi //R-Addr: 0X0630
adds r20=sum2$, sp;; //101 cc:15
adds r9=2, r10 //101 cc:16
nop.i 0;;
}
{ .mmi //R-Addr: 0X0640
ld1 r8=[r9];; //101 cc:17
add r29=r30, r8 //101 cc:18
nop.i 0;;
}
{ .mmb //R-Addr: 0X0650
st4 [r28]=r29 //101 cc:19
ld4 r26=[r27] //101 cc:19
nop.b 0
}
{ .mmi //R-Addr: 0X0660
ld4 r22=[r25];; //101 cc:19
add r21=r26, r22 //101 cc:20
nop.i 0;;
}
{ .mmi //R-Addr: 0X0670
st4 [r20]=r21 //101 cc:21
adds r19=buf$, sp //101 cc:21
adds r15=adler$, sp //101 cc:21
}
{ .mmi //R-Addr: 0X0680
adds r9=adler$, sp //101 cc:21
adds r8=sum2$, sp //101 cc:21
adds r30=adler$, sp;; //101 cc:21
}
{ .mmi //R-Addr: 0X0690
ld8 r18=[r19] //101 cc:22
ld4 r11=[r15] //101 cc:22
adds r27=sum2$, sp;; //101 cc:22
}
{ .mmi //R-Addr: 0X06a0
adds r17=3, r18;; //101 cc:23
ld1 r16=[r17] //101 cc:24
nop.i 0;;
}
{ .mmi //R-Addr: 0X06b0
add r10=r11, r16;; //101 cc:25
st4 [r9]=r10 //101 cc:26
nop.i 0
}
{ .mmb //R-Addr: 0X06c0
ld4 r31=[r8] //101 cc:26
ld4 r29=[r30] //101 cc:26
nop.b 0;;
}
{ .mmi //R-Addr: 0X06d0
add r28=r31, r29;; //101 cc:27
st4 [r27]=r28 //101 cc:28
adds r26=buf$, sp //101 cc:28
}
{ .mmi //R-Addr: 0X06e0
adds r20=adler$, sp //101 cc:28
adds r17=adler$, sp //101 cc:28
adds r16=sum2$, sp;; //101 cc:28
}
{ .mmb //R-Addr: 0X06f0
ld8 r25=[r26] //101 cc:29
ld4 r19=[r20] //101 cc:29
nop.b 0;;
}
{ .mmi //R-Addr: 0X0700
adds r22=4, r25;; //101 cc:30
ld1 r21=[r22] //101 cc:31
nop.i 0;;
}
{ .mmi //R-Addr: 0X0710
add r18=r19, r21;; //101 cc:32
st4 [r17]=r18 //101 cc:33
nop.i 0;;
}
{ .mmi //R-Addr: 0X0720
ld4 r15=[r16] //101 cc:0
adds r11=adler$, sp //101 cc:0
adds r8=sum2$, sp;; //101 cc:0
}
{ .mmi //R-Addr: 0X0730
ld4 r10=[r11];; //101 cc:1
add r9=r15, r10 //101 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0740
st4 [r8]=r9 //101 cc:3
adds r31=buf$, sp //101 cc:3
adds r27=adler$, sp //101 cc:3
}
{ .mmi //R-Addr: 0X0750
adds r22=adler$, sp //101 cc:3
adds r21=sum2$, sp //101 cc:3
adds r19=adler$, sp;; //101 cc:3
}
{ .mmi //R-Addr: 0X0760
ld8 r30=[r31] //101 cc:4
ld4 r26=[r27] //101 cc:4
adds r16=sum2$, sp;; //101 cc:4
}
{ .mmi //R-Addr: 0X0770
adds r29=5, r30;; //101 cc:5
ld1 r28=[r29] //101 cc:6
nop.i 0;;
}
{ .mmi //R-Addr: 0X0780
add r25=r26, r28;; //101 cc:7
st4 [r22]=r25 //101 cc:8
nop.i 0
}
{ .mmb //R-Addr: 0X0790
ld4 r20=[r21] //101 cc:8
ld4 r18=[r19] //101 cc:8
nop.b 0;;
}
{ .mmi //R-Addr: 0X07a0
add r17=r20, r18;; //101 cc:9
st4 [r16]=r17 //101 cc:10
adds r15=buf$, sp //101 cc:10
}
{ .mmi //R-Addr: 0X07b0
adds r8=adler$, sp //101 cc:10
adds r29=adler$, sp //101 cc:10
adds r28=sum2$, sp;; //101 cc:10
}
{ .mmi //R-Addr: 0X07c0
ld8 r11=[r15] //101 cc:11
ld4 r31=[r8] //101 cc:11
adds r26=adler$, sp //101 cc:11
}
{ .mmi //R-Addr: 0X07d0
adds r21=sum2$, sp;; //101 cc:11
adds r10=6, r11 //101 cc:12
nop.i 0;;
}
{ .mmi //R-Addr: 0X07e0
ld1 r9=[r10];; //101 cc:13
add r30=r31, r9 //101 cc:14
nop.i 0;;
}
{ .mmb //R-Addr: 0X07f0
st4 [r29]=r30 //101 cc:15
ld4 r27=[r28] //101 cc:15
nop.b 0
}
{ .mmi //R-Addr: 0X0800
ld4 r25=[r26];; //101 cc:15
add r22=r27, r25 //101 cc:16
nop.i 0;;
}
{ .mmi //R-Addr: 0X0810
st4 [r21]=r22 //101 cc:17
adds r20=buf$, sp //101 cc:17
adds r16=adler$, sp //101 cc:17
}
{ .mmi //R-Addr: 0X0820
adds r10=adler$, sp //101 cc:17
adds r9=sum2$, sp //101 cc:17
adds r31=adler$, sp;; //101 cc:17
}
{ .mmi //R-Addr: 0X0830
ld8 r19=[r20] //101 cc:18
ld4 r15=[r16] //101 cc:18
adds r28=sum2$, sp;; //101 cc:18
}
{ .mmi //R-Addr: 0X0840
adds r18=7, r19;; //101 cc:19
ld1 r17=[r18] //101 cc:20
nop.i 0;;
}
{ .mmi //R-Addr: 0X0850
add r11=r15, r17;; //101 cc:21
st4 [r10]=r11 //101 cc:22
nop.i 0
}
{ .mmb //R-Addr: 0X0860
ld4 r8=[r9] //101 cc:22
ld4 r30=[r31] //101 cc:22
nop.b 0;;
}
{ .mmi //R-Addr: 0X0870
add r29=r8, r30;; //101 cc:23
st4 [r28]=r29 //101 cc:24
adds r27=buf$, sp //101 cc:24
}
{ .mmi //R-Addr: 0X0880
adds r21=adler$, sp //101 cc:24
adds r18=adler$, sp //101 cc:24
adds r17=sum2$, sp;; //101 cc:24
}
{ .mmi //R-Addr: 0X0890
ld8 r26=[r27] //101 cc:25
ld4 r20=[r21] //101 cc:25
adds r15=adler$, sp //101 cc:25
}
{ .mmi //R-Addr: 0X08a0
adds r9=sum2$, sp;; //101 cc:25
adds r25=8, r26 //101 cc:26
nop.i 0;;
}
{ .mmi //R-Addr: 0X08b0
ld1 r22=[r25];; //101 cc:27
add r19=r20, r22 //101 cc:28
nop.i 0;;
}
{ .mmb //R-Addr: 0X08c0
st4 [r18]=r19 //101 cc:29
ld4 r16=[r17] //101 cc:29
nop.b 0
}
{ .mmi //R-Addr: 0X08d0
ld4 r11=[r15];; //101 cc:29
add r10=r16, r11 //101 cc:30
nop.i 0;;
}
{ .mii //R-Addr: 0X08e0
st4 [r9]=r10 //101 cc:31
adds r8=buf$, sp;; //101 cc:31
adds r28=adler$, sp //101 cc:0
}
{ .mmi //R-Addr: 0X08f0
ld8 r31=[r8] //101 cc:0
adds r25=adler$, sp //101 cc:0
adds r22=sum2$, sp;; //101 cc:0
}
{ .mmi //R-Addr: 0X0900
ld4 r27=[r28] //101 cc:1
adds r30=9, r31 //101 cc:1
adds r20=adler$, sp //101 cc:1
}
{ .mmi //R-Addr: 0X0910
adds r17=sum2$, sp;; //101 cc:1
ld1 r29=[r30] //101 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0920
add r26=r27, r29;; //101 cc:3
st4 [r25]=r26 //101 cc:4
nop.i 0
}
{ .mmb //R-Addr: 0X0930
ld4 r21=[r22] //101 cc:4
ld4 r19=[r20] //101 cc:4
nop.b 0;;
}
{ .mmi //R-Addr: 0X0940
add r18=r21, r19;; //101 cc:5
st4 [r17]=r18 //101 cc:6
adds r16=buf$, sp //101 cc:6
}
{ .mmi //R-Addr: 0X0950
adds r9=adler$, sp //101 cc:6
adds r30=adler$, sp //101 cc:6
adds r29=sum2$, sp;; //101 cc:6
}
{ .mmi //R-Addr: 0X0960
ld8 r15=[r16] //101 cc:7
ld4 r8=[r9] //101 cc:7
adds r27=adler$, sp //101 cc:7
}
{ .mmi //R-Addr: 0X0970
adds r22=sum2$, sp;; //101 cc:7
adds r11=10, r15 //101 cc:8
nop.i 0;;
}
{ .mmi //R-Addr: 0X0980
ld1 r10=[r11];; //101 cc:9
add r31=r8, r10 //101 cc:10
nop.i 0;;
}
{ .mmb //R-Addr: 0X0990
st4 [r30]=r31 //101 cc:11
ld4 r28=[r29] //101 cc:11
nop.b 0
}
{ .mmi //R-Addr: 0X09a0
ld4 r26=[r27];; //101 cc:11
add r25=r28, r26 //101 cc:12
nop.i 0;;
}
{ .mmi //R-Addr: 0X09b0
st4 [r22]=r25 //101 cc:13
adds r21=buf$, sp //101 cc:13
adds r17=adler$, sp //101 cc:13
}
{ .mmi //R-Addr: 0X09c0
adds r11=adler$, sp //101 cc:13
adds r10=sum2$, sp //101 cc:13
adds r8=adler$, sp;; //101 cc:13
}
{ .mmi //R-Addr: 0X09d0
ld8 r20=[r21] //101 cc:14
ld4 r16=[r17] //101 cc:14
adds r29=sum2$, sp;; //101 cc:14
}
{ .mmi //R-Addr: 0X09e0
adds r19=11, r20;; //101 cc:15
ld1 r18=[r19] //101 cc:16
nop.i 0;;
}
{ .mmi //R-Addr: 0X09f0
add r15=r16, r18;; //101 cc:17
st4 [r11]=r15 //101 cc:18
nop.i 0
}
{ .mmb //R-Addr: 0X0a00
ld4 r9=[r10] //101 cc:18
ld4 r31=[r8] //101 cc:18
nop.b 0;;
}
{ .mmi //R-Addr: 0X0a10
add r30=r9, r31;; //101 cc:19
st4 [r29]=r30 //101 cc:20
adds r28=buf$, sp //101 cc:20
}
{ .mmi //R-Addr: 0X0a20
adds r22=adler$, sp //101 cc:20
adds r19=adler$, sp //101 cc:20
adds r18=sum2$, sp;; //101 cc:20
}
{ .mmi //R-Addr: 0X0a30
ld8 r27=[r28] //101 cc:21
ld4 r21=[r22] //101 cc:21
adds r16=adler$, sp //101 cc:21
}
{ .mmi //R-Addr: 0X0a40
adds r10=sum2$, sp;; //101 cc:21
adds r26=12, r27 //101 cc:22
nop.i 0;;
}
{ .mmi //R-Addr: 0X0a50
ld1 r25=[r26];; //101 cc:23
add r20=r21, r25 //101 cc:24
nop.i 0;;
}
{ .mmb //R-Addr: 0X0a60
st4 [r19]=r20 //101 cc:25
ld4 r17=[r18] //101 cc:25
nop.b 0
}
{ .mmi //R-Addr: 0X0a70
ld4 r15=[r16];; //101 cc:25
add r11=r17, r15 //101 cc:26
nop.i 0;;
}
{ .mmi //R-Addr: 0X0a80
st4 [r10]=r11 //101 cc:27
adds r9=buf$, sp //101 cc:27
adds r29=adler$, sp //101 cc:27
}
{ .mib //R-Addr: 0X0a90
adds r26=adler$, sp //101 cc:27
adds r25=sum2$, sp //101 cc:27
nop.b 0;;
}
{ .mmb //R-Addr: 0X0aa0
ld8 r8=[r9] //101 cc:28
ld4 r28=[r29] //101 cc:28
nop.b 0;;
}
{ .mmi //R-Addr: 0X0ab0
adds r31=13, r8;; //101 cc:29
ld1 r30=[r31] //101 cc:30
nop.i 0;;
}
{ .mmi //R-Addr: 0X0ac0
add r27=r28, r30;; //101 cc:31
st4 [r26]=r27 //101 cc:32
nop.i 0;;
}
{ .mmi //R-Addr: 0X0ad0
ld4 r22=[r25] //101 cc:0
adds r21=adler$, sp //101 cc:0
adds r18=sum2$, sp;; //101 cc:0
}
{ .mmi //R-Addr: 0X0ae0
ld4 r20=[r21];; //101 cc:1
add r19=r22, r20 //101 cc:2
nop.i 0;;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -