📄 ppc.pl
字号:
$LD r6,`1*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 #add the two register number adde r11,r8,r0 # (r8,r7) to the three register addze r9,r0 # number (r9,r11,r10).NOTE:r0=0 addc r10,r7,r10 #add the two register number adde r11,r8,r11 # (r8,r7) to the three register addze r9,r9 # number (r9,r11,r10). $ST r10,`1*$BNSZ`(r3) # r[1]=c2 #sqr_add_c(a,1,c3,c1,c2); $UMULL r7,r6,r6 $UMULH r8,r6,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r0 #sqr_add_c2(a,2,0,c3,c1,c2); $LD r6,`2*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 $ST r11,`2*$BNSZ`(r3) #r[2]=c3 #sqr_add_c2(a,3,0,c1,c2,c3); $LD r6,`3*$BNSZ`(r4) #r6 = a[3]. r5 is already a[0]. $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r0 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 #sqr_add_c2(a,2,1,c1,c2,c3); $LD r5,`1*$BNSZ`(r4) $LD r6,`2*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 $ST r9,`3*$BNSZ`(r3) #r[3]=c1; #sqr_add_c(a,2,c2,c3,c1); $UMULL r7,r6,r6 $UMULH r8,r6,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r0 #sqr_add_c2(a,3,1,c2,c3,c1); $LD r6,`3*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 #sqr_add_c2(a,4,0,c2,c3,c1); $LD r5,`0*$BNSZ`(r4) $LD r6,`4*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 $ST r10,`4*$BNSZ`(r3) #r[4]=c2; #sqr_add_c2(a,5,0,c3,c1,c2); $LD r6,`5*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r0 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 #sqr_add_c2(a,4,1,c3,c1,c2); $LD r5,`1*$BNSZ`(r4) $LD r6,`4*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 #sqr_add_c2(a,3,2,c3,c1,c2); $LD r5,`2*$BNSZ`(r4) $LD r6,`3*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 $ST r11,`5*$BNSZ`(r3) #r[5]=c3; #sqr_add_c(a,3,c1,c2,c3); $UMULL r7,r6,r6 $UMULH r8,r6,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r0 #sqr_add_c2(a,4,2,c1,c2,c3); $LD r6,`4*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 #sqr_add_c2(a,5,1,c1,c2,c3); $LD r5,`1*$BNSZ`(r4) $LD r6,`5*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 #sqr_add_c2(a,6,0,c1,c2,c3); $LD r5,`0*$BNSZ`(r4) $LD r6,`6*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 $ST r9,`6*$BNSZ`(r3) #r[6]=c1; #sqr_add_c2(a,7,0,c2,c3,c1); $LD r6,`7*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r0 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 #sqr_add_c2(a,6,1,c2,c3,c1); $LD r5,`1*$BNSZ`(r4) $LD r6,`6*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 #sqr_add_c2(a,5,2,c2,c3,c1); $LD r5,`2*$BNSZ`(r4) $LD r6,`5*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 #sqr_add_c2(a,4,3,c2,c3,c1); $LD r5,`3*$BNSZ`(r4) $LD r6,`4*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 $ST r10,`7*$BNSZ`(r3) #r[7]=c2; #sqr_add_c(a,4,c3,c1,c2); $UMULL r7,r6,r6 $UMULH r8,r6,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r0 #sqr_add_c2(a,5,3,c3,c1,c2); $LD r6,`5*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 #sqr_add_c2(a,6,2,c3,c1,c2); $LD r5,`2*$BNSZ`(r4) $LD r6,`6*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 #sqr_add_c2(a,7,1,c3,c1,c2); $LD r5,`1*$BNSZ`(r4) $LD r6,`7*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 $ST r11,`8*$BNSZ`(r3) #r[8]=c3; #sqr_add_c2(a,7,2,c1,c2,c3); $LD r5,`2*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r0 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 #sqr_add_c2(a,6,3,c1,c2,c3); $LD r5,`3*$BNSZ`(r4) $LD r6,`6*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 #sqr_add_c2(a,5,4,c1,c2,c3); $LD r5,`4*$BNSZ`(r4) $LD r6,`5*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 $ST r9,`9*$BNSZ`(r3) #r[9]=c1; #sqr_add_c(a,5,c2,c3,c1); $UMULL r7,r6,r6 $UMULH r8,r6,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r0 #sqr_add_c2(a,6,4,c2,c3,c1); $LD r6,`6*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 #sqr_add_c2(a,7,3,c2,c3,c1); $LD r5,`3*$BNSZ`(r4) $LD r6,`7*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 $ST r10,`10*$BNSZ`(r3) #r[10]=c2; #sqr_add_c2(a,7,4,c3,c1,c2); $LD r5,`4*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r0 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 #sqr_add_c2(a,6,5,c3,c1,c2); $LD r5,`5*$BNSZ`(r4) $LD r6,`6*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 addc r11,r7,r11 adde r9,r8,r9 addze r10,r10 $ST r11,`11*$BNSZ`(r3) #r[11]=c3; #sqr_add_c(a,6,c1,c2,c3); $UMULL r7,r6,r6 $UMULH r8,r6,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r0 #sqr_add_c2(a,7,5,c1,c2,c3) $LD r6,`7*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 addc r9,r7,r9 adde r10,r8,r10 addze r11,r11 $ST r9,`12*$BNSZ`(r3) #r[12]=c1; #sqr_add_c2(a,7,6,c2,c3,c1) $LD r5,`6*$BNSZ`(r4) $UMULL r7,r5,r6 $UMULH r8,r5,r6 addc r10,r7,r10 adde r11,r8,r11 addze r9,r0 addc r10,r7,r10 adde r11,r8,r11 addze r9,r9 $ST r10,`13*$BNSZ`(r3) #r[13]=c2; #sqr_add_c(a,7,c3,c1,c2); $UMULL r7,r6,r6 $UMULH r8,r6,r6 addc r11,r7,r11 adde r9,r8,r9 $ST r11,`14*$BNSZ`(r3) #r[14]=c3; $ST r9, `15*$BNSZ`(r3) #r[15]=c1; bclr BO_ALWAYS,CR0_LT .long 0x00000000## NOTE: The following label name should be changed to# "bn_mul_comba4" i.e. remove the first dot# for the gcc compiler. This should be automatically# done in the build#.align 4.bn_mul_comba4:## This is an optimized version of the bn_mul_comba4 routine.## void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)# r3 contains r# r4 contains a# r5 contains b# r6, r7 are the 2 BN_ULONGs being multiplied.# r8, r9 are the results of the 32x32 giving 64 multiply.# r10, r11, r12 are the equivalents of c1, c2, and c3.# xor r0,r0,r0 #r0=0. Used in addze below. #mul_add_c(a[0],b[0],c1,c2,c3); $LD r6,`0*$BNSZ`(r4) $LD r7,`0*$BNSZ`(r5) $UMULL r10,r6,r7 $UMULH r11,r6,r7 $ST r10,`0*$BNSZ`(r3) #r[0]=c1 #mul_add_c(a[0],b[1],c2,c3,c1); $LD r7,`1*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r11,r8,r11 adde r12,r9,r0 addze r10,r0 #mul_add_c(a[1],b[0],c2,c3,c1); $LD r6, `1*$BNSZ`(r4) $LD r7, `0*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r11,r8,r11 adde r12,r9,r12 addze r10,r10 $ST r11,`1*$BNSZ`(r3) #r[1]=c2 #mul_add_c(a[2],b[0],c3,c1,c2); $LD r6,`2*$BNSZ`(r4) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r12,r8,r12 adde r10,r9,r10 addze r11,r0 #mul_add_c(a[1],b[1],c3,c1,c2); $LD r6,`1*$BNSZ`(r4) $LD r7,`1*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r12,r8,r12 adde r10,r9,r10 addze r11,r11 #mul_add_c(a[0],b[2],c3,c1,c2); $LD r6,`0*$BNSZ`(r4) $LD r7,`2*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r12,r8,r12 adde r10,r9,r10 addze r11,r11 $ST r12,`2*$BNSZ`(r3) #r[2]=c3 #mul_add_c(a[0],b[3],c1,c2,c3); $LD r7,`3*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r10,r8,r10 adde r11,r9,r11 addze r12,r0 #mul_add_c(a[1],b[2],c1,c2,c3); $LD r6,`1*$BNSZ`(r4) $LD r7,`2*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r10,r8,r10 adde r11,r9,r11 addze r12,r12 #mul_add_c(a[2],b[1],c1,c2,c3); $LD r6,`2*$BNSZ`(r4) $LD r7,`1*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r10,r8,r10 adde r11,r9,r11 addze r12,r12 #mul_add_c(a[3],b[0],c1,c2,c3); $LD r6,`3*$BNSZ`(r4) $LD r7,`0*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r10,r8,r10 adde r11,r9,r11 addze r12,r12 $ST r10,`3*$BNSZ`(r3) #r[3]=c1 #mul_add_c(a[3],b[1],c2,c3,c1); $LD r7,`1*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r11,r8,r11 adde r12,r9,r12 addze r10,r0 #mul_add_c(a[2],b[2],c2,c3,c1); $LD r6,`2*$BNSZ`(r4) $LD r7,`2*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r11,r8,r11 adde r12,r9,r12 addze r10,r10 #mul_add_c(a[1],b[3],c2,c3,c1); $LD r6,`1*$BNSZ`(r4) $LD r7,`3*$BNSZ`(r5) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r11,r8,r11 adde r12,r9,r12 addze r10,r10 $ST r11,`4*$BNSZ`(r3) #r[4]=c2 #mul_add_c(a[2],b[3],c3,c1,c2); $LD r6,`2*$BNSZ`(r4) $UMULL r8,r6,r7 $UMULH r9,r6,r7 addc r12,r8,r12 adde r10,r9,r10 addze r11,r0 #mul_add_c(a[3],b[2],c3,c1,c2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -