📄 adler32.asm
字号:
}
{ .mmi //R-Addr: 0X0af0
st4 [r18]=r19 //101 cc:3
adds r17=buf$, sp //101 cc:3
adds r10=adler$, sp //101 cc:3
}
{ .mmi //R-Addr: 0X0b00
adds r31=adler$, sp //101 cc:3
adds r30=sum2$, sp //101 cc:3
adds r28=adler$, sp;; //101 cc:3
}
{ .mmi //R-Addr: 0X0b10
ld8 r16=[r17] //101 cc:4
ld4 r9=[r10] //101 cc:4
adds r25=sum2$, sp;; //101 cc:4
}
{ .mmi //R-Addr: 0X0b20
adds r15=14, r16;; //101 cc:5
ld1 r11=[r15] //101 cc:6
nop.i 0;;
}
{ .mmi //R-Addr: 0X0b30
add r8=r9, r11;; //101 cc:7
st4 [r31]=r8 //101 cc:8
nop.i 0
}
{ .mmb //R-Addr: 0X0b40
ld4 r29=[r30] //101 cc:8
ld4 r27=[r28] //101 cc:8
nop.b 0;;
}
{ .mmi //R-Addr: 0X0b50
add r26=r29, r27;; //101 cc:9
st4 [r25]=r26 //101 cc:10
adds r22=buf$, sp //101 cc:10
}
{ .mmi //R-Addr: 0X0b60
adds r18=adler$, sp //101 cc:10
adds r15=adler$, sp //101 cc:10
adds r11=sum2$, sp;; //101 cc:10
}
{ .mmi //R-Addr: 0X0b70
ld8 r21=[r22] //101 cc:11
ld4 r17=[r18] //101 cc:11
adds r9=adler$, sp //101 cc:11
}
{ .mmi //R-Addr: 0X0b80
adds r30=sum2$, sp;; //101 cc:11
adds r20=15, r21 //101 cc:12
nop.i 0;;
}
{ .mmi //R-Addr: 0X0b90
ld1 r19=[r20];; //101 cc:13
add r16=r17, r19 //101 cc:14
nop.i 0;;
}
{ .mmb //R-Addr: 0X0ba0
st4 [r15]=r16 //101 cc:15
ld4 r10=[r11] //101 cc:15
nop.b 0
}
{ .mmi //R-Addr: 0X0bb0
ld4 r8=[r9];; //101 cc:15
add r31=r10, r8 //101 cc:16
nop.i 0;;
}
{ .mmi //R-Addr: 0X0bc0
st4 [r30]=r31;; //101 cc:17
adds r29=buf$, sp //102 cc:0
adds r26=buf$, sp;; //102 cc:0
}
{ .mmi //R-Addr: 0X0bd0
ld8 r28=[r29];; //102 cc:1
adds r27=16, r28 //102 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0be0
st8 [r26]=r27;; //102 cc:3
adds r25=n$, sp //103 cc:0
adds r20=n$, sp //103 cc:0
}
{ .mmi //R-Addr: 0X0bf0
adds r19=n$, sp;; //103 cc:0
ld4 r22=[r25] //103 cc:1
nop.i 0;;
}
{ .mmi //R-Addr: 0X0c00
adds r21=-1, r22;; //103 cc:2
st4 [r20]=r21 //103 cc:3
nop.i 0
}
{ .mmi //R-Addr: 0X0c10
ld4 r18=[r19];; //103 cc:3
cmp4.ne.unc p14,p15=r0, r18 //103 cc:4
nop.i 0
}
{ .mmb //R-Addr: 0X0c20
nop.m 0
nop.m 0
(p14) br.cond.dptk.many $LN8@adler32#;; //103 cc:4
}
// 104 : MOD(adler);
// 105 : MOD(sum2);
// 106 : }
{ .mmi //R-Addr: 0X0c30
adds r17=adler$, sp //104 cc:0
mov r15=65521 //104 cc:0, 0000fff1H
mov r11=65501 //104 cc:0, 0000ffddH
}
{ .mmi //R-Addr: 0X0c40
adds r9=adler$, sp;; //104 cc:0
ld4 r16=[r17] //104 cc:1
cmp.eq.unc p15,p0=0, r15 //104 cc:1
}
{ .mmi //R-Addr: 0X0c50
setf.sig f14=r15 //104 cc:1
setf.exp f33=r11 //104 cc:1
sub r11=r0, r15, r11;; //104 cc:1
}
{ .mib //R-Addr: 0X0c60
setf.sig f13=r16 //104 cc:2
(p15) break.i 1 //104 cc:2
nop.b 0;;
}
{ .mfb //R-Addr: 0X0c70
nop.m 0
fcvt.xuf.s1 f32=f14 //104 cc:7
nop.b 0;;
}
{ .mfb //R-Addr: 0X0c80
nop.m 0
fcvt.xuf.s1 f15=f13 //104 cc:8
nop.b 0;;
}
{ .mfb //R-Addr: 0X0c90
nop.m 0
frcpa.s1 f34,p7=f15, f32 //104 cc:12
nop.b 0;;
}
{ .mfb //R-Addr: 0X0ca0
nop.m 0
(p7) fma.s1 f35=f15, f34, f0 //104 cc:16
nop.b 0
}
{ .mfb //R-Addr: 0X0cb0
nop.m 0
(p7) fnma.s1 f34=f32, f34, f1 //104 cc:16
nop.b 0;;
}
{ .mmb //R-Addr: 0X0cc0
setf.sig f32=r11, f32 //104 cc:17
nop.m 0
nop.b 0;;
}
{ .mfb //R-Addr: 0X0cd0
nop.m 0
(p7) fma.s1 f15=f34, f34, f33, f15 //104 cc:20
nop.b 0
}
{ .mfb //R-Addr: 0X0ce0
nop.m 0
(p7) fma.s1 f35=f34, f35, f35 //104 cc:20
nop.b 0;;
}
{ .mfb //R-Addr: 0X0cf0
nop.m 0
(p7) fma.s1 f34=f15, f35, f35, f34 //104 cc:24
nop.b 0;;
}
{ .mfb //R-Addr: 0X0d00
nop.m 0
fcvt.fxu.trunc.s1 f15=f34, f15 //104 cc:28
nop.b 0;;
}
{ .mfb //R-Addr: 0X0d10
nop.m 0
xma.l f34=f15, f32, f13, f34 //104 cc:32
nop.b 0;;
}
{ .mmi //R-Addr: 0X0d20
getf.sig r10=f34;; //104 cc:36
st4 [r9]=r10 //104 cc:41
nop.i 0;;
}
{ .mmi //R-Addr: 0X0d30
adds r8=sum2$, sp //105 cc:0
mov r30=65521 //105 cc:0, 0000fff1H
mov r29=65501 //105 cc:0, 0000ffddH
}
{ .mmi //R-Addr: 0X0d40
adds r27=sum2$, sp;; //105 cc:0
ld4 r31=[r8] //105 cc:1
cmp.eq.unc p15,p0=0, r30 //105 cc:1
}
{ .mmi //R-Addr: 0X0d50
setf.sig f37=r30 //105 cc:1
setf.exp f40=r29 //105 cc:1
sub r29=r0, r30, r29;; //105 cc:1
}
{ .mib //R-Addr: 0X0d60
setf.sig f36=r31 //105 cc:2
(p15) break.i 1 //105 cc:2
nop.b 0;;
}
{ .mfb //R-Addr: 0X0d70
nop.m 0
fcvt.xuf.s1 f39=f37 //105 cc:7
nop.b 0;;
}
{ .mfb //R-Addr: 0X0d80
nop.m 0
fcvt.xuf.s1 f38=f36 //105 cc:8
nop.b 0;;
}
{ .mfb //R-Addr: 0X0d90
nop.m 0
frcpa.s1 f41,p8=f38, f39 //105 cc:12
nop.b 0;;
}
{ .mfb //R-Addr: 0X0da0
nop.m 0
(p8) fma.s1 f42=f38, f41, f0 //105 cc:16
nop.b 0
}
{ .mfb //R-Addr: 0X0db0
nop.m 0
(p8) fnma.s1 f41=f39, f41, f1 //105 cc:16
nop.b 0;;
}
{ .mmb //R-Addr: 0X0dc0
setf.sig f39=r29, f39 //105 cc:17
nop.m 0
nop.b 0;;
}
{ .mfb //R-Addr: 0X0dd0
nop.m 0
(p8) fma.s1 f38=f41, f41, f40, f38 //105 cc:20
nop.b 0
}
{ .mfb //R-Addr: 0X0de0
nop.m 0
(p8) fma.s1 f42=f41, f42, f42 //105 cc:20
nop.b 0;;
}
{ .mfb //R-Addr: 0X0df0
nop.m 0
(p8) fma.s1 f41=f38, f42, f42, f41 //105 cc:24
nop.b 0;;
}
{ .mfb //R-Addr: 0X0e00
nop.m 0
fcvt.fxu.trunc.s1 f38=f41, f38 //105 cc:28
nop.b 0;;
}
{ .mfb //R-Addr: 0X0e10
nop.m 0
xma.l f41=f38, f39, f36, f41 //105 cc:32
nop.b 0;;
}
{ .mmi //R-Addr: 0X0e20
getf.sig r28=f41;; //105 cc:36
st4 [r27]=r28 //105 cc:41
nop.i 0;;
}
{ .mmb //R-Addr: 0X0e30
nop.m 0
nop.m 0
br.cond.sptk.few $LN10@adler32#;; //106 cc:0
}
$LN9@adler32:
// 107 :
// 108 : /* do remaining bytes (less than NMAX, still just one modulo) */
// 109 : if (len) { /* avoid modulos if none remaining */
{ .mmi //R-Addr: 0X0e40
adds r26=len$, sp;; //109 cc:0
ld4 r25=[r26] //109 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0e50
cmp4.eq.unc p14,p15=r0, r25 //109 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN5@adler32#;; //109 cc:2
}
$LN4@adler32:
// 110 : while (len >= 16) {
{ .mmi //R-Addr: 0X0e60
adds r22=len$, sp;; //110 cc:0
ld4 r21=[r22] //110 cc:1
nop.i 0;;
}
{ .mmb //R-Addr: 0X0e70
cmp4.gtu.unc p14,p15=16, r21 //110 cc:2
nop.m 0
(p14) br.cond.dptk.few $LN2@adler32#;; //110 cc:2
}
// 111 : len -= 16;
// 112 : DO16(buf);
// 113 : buf += 16;
// 114 : }
{ .mib //R-Addr: 0X0e80
adds r20=len$, sp //111 cc:0
adds r17=len$, sp //111 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0e90
ld4 r19=[r20];; //111 cc:1
adds r18=-16, r19 //111 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0ea0
st4 [r17]=r18;; //111 cc:3
adds r16=buf$, sp //112 cc:0
adds r10=adler$, sp //112 cc:0
}
{ .mmi //R-Addr: 0X0eb0
adds r31=adler$, sp //112 cc:0
adds r30=sum2$, sp //112 cc:0
adds r28=adler$, sp;; //112 cc:0
}
{ .mmi //R-Addr: 0X0ec0
ld8 r15=[r16] //112 cc:1
ld4 r9=[r10] //112 cc:1
adds r25=sum2$, sp;; //112 cc:1
}
{ .mmi //R-Addr: 0X0ed0
ld1 r11=[r15];; //112 cc:3
add r8=r9, r11 //112 cc:4
nop.i 0;;
}
{ .mmb //R-Addr: 0X0ee0
st4 [r31]=r8 //112 cc:5
ld4 r29=[r30] //112 cc:5
nop.b 0
}
{ .mmi //R-Addr: 0X0ef0
ld4 r27=[r28];; //112 cc:5
add r26=r29, r27 //112 cc:6
nop.i 0;;
}
{ .mmi //R-Addr: 0X0f00
st4 [r25]=r26 //112 cc:7
adds r22=buf$, sp //112 cc:7
adds r18=adler$, sp //112 cc:7
}
{ .mmi //R-Addr: 0X0f10
adds r15=adler$, sp //112 cc:7
adds r11=sum2$, sp //112 cc:7
adds r9=adler$, sp;; //112 cc:7
}
{ .mmi //R-Addr: 0X0f20
ld8 r21=[r22] //112 cc:8
ld4 r17=[r18] //112 cc:8
adds r30=sum2$, sp;; //112 cc:8
}
{ .mmi //R-Addr: 0X0f30
adds r20=1, r21;; //112 cc:9
ld1 r19=[r20] //112 cc:10
nop.i 0;;
}
{ .mmi //R-Addr: 0X0f40
add r16=r17, r19;; //112 cc:11
st4 [r15]=r16 //112 cc:12
nop.i 0
}
{ .mmb //R-Addr: 0X0f50
ld4 r10=[r11] //112 cc:12
ld4 r8=[r9] //112 cc:12
nop.b 0;;
}
{ .mmi //R-Addr: 0X0f60
add r31=r10, r8;; //112 cc:13
st4 [r30]=r31 //112 cc:14
adds r29=buf$, sp //112 cc:14
}
{ .mmi //R-Addr: 0X0f70
adds r25=adler$, sp //112 cc:14
adds r20=adler$, sp //112 cc:14
adds r19=sum2$, sp;; //112 cc:14
}
{ .mmi //R-Addr: 0X0f80
ld8 r28=[r29] //112 cc:15
ld4 r22=[r25] //112 cc:15
adds r17=adler$, sp //112 cc:15
}
{ .mmi //R-Addr: 0X0f90
adds r11=sum2$, sp;; //112 cc:15
adds r27=2, r28 //112 cc:16
nop.i 0;;
}
{ .mmi //R-Addr: 0X0fa0
ld1 r26=[r27];; //112 cc:17
add r21=r22, r26 //112 cc:18
nop.i 0;;
}
{ .mmb //R-Addr: 0X0fb0
st4 [r20]=r21 //112 cc:19
ld4 r18=[r19] //112 cc:19
nop.b 0
}
{ .mmi //R-Addr: 0X0fc0
ld4 r16=[r17];; //112 cc:19
add r15=r18, r16 //112 cc:20
nop.i 0;;
}
{ .mmi //R-Addr: 0X0fd0
st4 [r11]=r15 //112 cc:21
adds r10=buf$, sp //112 cc:21
adds r30=adler$, sp //112 cc:21
}
{ .mmi //R-Addr: 0X0fe0
adds r27=adler$, sp //112 cc:21
adds r26=sum2$, sp //112 cc:21
adds r22=adler$, sp;; //112 cc:21
}
{ .mmi //R-Addr: 0X0ff0
ld8 r9=[r10] //112 cc:22
ld4 r29=[r30] //112 cc:22
adds r19=sum2$, sp;; //112 cc:22
}
{ .mmi //R-Addr: 0X01000
adds r8=3, r9;; //112 cc:23
ld1 r31=[r8] //112 cc:24
nop.i 0;;
}
{ .mmi //R-Addr: 0X01010
add r28=r29, r31;; //112 cc:25
st4 [r27]=r28 //112 cc:26
nop.i 0
}
{ .mmb //R-Addr: 0X01020
ld4 r25=[r26] //112 cc:26
ld4 r21=[r22] //112 cc:26
nop.b 0;;
}
{ .mmi //R-Addr: 0X01030
add r20=r25, r21;; //112 cc:27
st4 [r19]=r20 //112 cc:28
adds r18=buf$, sp //112 cc:28
}
{ .mmi //R-Addr: 0X01040
adds r11=adler$, sp //112 cc:28
adds r8=adler$, sp //112 cc:28
adds r31=sum2$, sp;; //112 cc:28
}
{ .mmb //R-Addr: 0X01050
ld8 r17=[r18] //112 cc:29
ld4 r10=[r11] //112 cc:29
nop.b 0;;
}
{ .mmi //R-Addr: 0X01060
adds r16=4, r17;; //112 cc:30
ld1 r15=[r16] //112 cc:31
nop.i 0;;
}
{ .mmi //R-Addr: 0X01070
add r9=r10, r15;; //112 cc:32
st4 [r8]=r9 //112 cc:33
nop.i 0;;
}
{ .mmi //R-Addr: 0X01080
ld4 r30=[r31] //112 cc:0
adds r29=adler$, sp //112 cc:0
adds r26=sum2$, sp;; //112 cc:0
}
{ .mmi //R-Addr: 0X01090
ld4 r28=[r29];; //112 cc:1
add r27=r30, r28 //112 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X010a0
st4 [r26]=r27 //112 cc:3
adds r25=buf$, sp //112 cc:3
adds r19=adler$, sp //112 cc:3
}
{ .mmi //R-Addr: 0X010b0
adds r16=adler$, sp //112 cc:3
adds r15=sum2$, sp //112 cc:3
adds r10=adler$, sp;; //112 cc:3
}
{ .mmi //R-Addr: 0X010c0
ld8 r22=[r25] //112 cc:4
ld4 r18=[r19] //112 cc:4
adds r31=sum2$, sp;; //112 cc:4
}
{ .mmi //R-Addr: 0X010d0
adds r21=5, r22;; //112 cc:5
ld1 r20=[r21] //112 cc:6
nop.i 0;;
}
{ .mmi //R-Addr: 0X010e0
add r17=r18, r20;; //112 cc:7
st4 [r16]=r17 //112 cc:8
nop.i 0
}
{ .mmb //R-Addr: 0X010f0
ld4 r11=[r15] //112 cc:8
ld4 r9=[r10] //112 cc:8
nop.b 0;;
}
{ .mmi //R-Addr: 0X01100
add r8=r11, r9;; //112 cc:9
st4 [r31]=r8 //112 cc:10
adds r30=buf$, sp //112 cc:10
}
{ .mmi //R-Addr: 0X01110
adds r26=adler$, sp //112 cc:10
adds r21=adler$, sp //112 cc:10
adds r20=sum2$, sp;; //112 cc:10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -