📄 sparcv8plus.s
字号:
add c_3,t_2,c_3 srlx t_1,32,c_12 != stuw t_1,rp(1) !r[1]=c2; or c_12,c_3,c_12 mulx a_2,b_0,t_1 !mul_add_c(a[2],b[0],c3,c1,c2); addcc c_12,t_1,c_12 != clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 lduw bp(2),b_2 != mulx a_1,b_1,t_1 !mul_add_c(a[1],b[1],c3,c1,c2); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 != lduw bp(3),b_3 mulx a_0,b_2,t_1 !mul_add_c(a[0],b[2],c3,c1,c2); addcc c_12,t_1,t_1 bcs,a %xcc,.+8 != add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(2) !r[2]=c3; or c_12,c_3,c_12 != mulx a_0,b_3,t_1 !mul_add_c(a[0],b[3],c1,c2,c3); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 != add c_3,t_2,c_3 mulx a_1,b_2,t_1 !mul_add_c(a[1],b[2],c1,c2,c3); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 != add c_3,t_2,c_3 lduw ap(3),a_3 mulx a_2,b_1,t_1 !mul_add_c(a[2],b[1],c1,c2,c3); addcc c_12,t_1,c_12 != bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_3,b_0,t_1 !mul_add_c(a[3],b[0],c1,c2,c3);!= addcc c_12,t_1,t_1 != bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(3) !=!r[3]=c1; or c_12,c_3,c_12 mulx a_3,b_1,t_1 !mul_add_c(a[3],b[1],c2,c3,c1); addcc c_12,t_1,c_12 clr c_3 != bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_2,b_2,t_1 !mul_add_c(a[2],b[2],c2,c3,c1); addcc c_12,t_1,c_12 != bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_1,b_3,t_1 !mul_add_c(a[1],b[3],c2,c3,c1); addcc c_12,t_1,t_1 != bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(4) !=!r[4]=c2; or c_12,c_3,c_12 mulx a_2,b_3,t_1 !mul_add_c(a[2],b[3],c3,c1,c2); addcc c_12,t_1,c_12 clr c_3 != bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_3,b_2,t_1 !mul_add_c(a[3],b[2],c3,c1,c2); addcc c_12,t_1,t_1 != bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(5) !=!r[5]=c3; or c_12,c_3,c_12 mulx a_3,b_3,t_1 !mul_add_c(a[3],b[3],c1,c2,c3); addcc c_12,t_1,t_1 srlx t_1,32,c_12 != stuw t_1,rp(6) !r[6]=c1; stuw c_12,rp(7) !r[7]=c2; ret restore %g0,%g0,%o0.type bn_mul_comba4,#function.size bn_mul_comba4,(.-bn_mul_comba4).align 32.global bn_sqr_comba8bn_sqr_comba8: save %sp,FRAME_SIZE,%sp mov 1,t_2 lduw ap(0),a_0 sllx t_2,32,t_2 lduw ap(1),a_1 mulx a_0,a_0,t_1 !sqr_add_c(a,0,c1,c2,c3); srlx t_1,32,c_12 stuw t_1,rp(0) !r[0]=c1; lduw ap(2),a_2 mulx a_0,a_1,t_1 !=!sqr_add_c2(a,1,0,c2,c3,c1); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(1) !r[1]=c2; or c_12,c_3,c_12 mulx a_2,a_0,t_1 !sqr_add_c2(a,2,0,c3,c1,c2); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 lduw ap(3),a_3 mulx a_1,a_1,t_1 !sqr_add_c(a,1,c3,c1,c2); addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(2) !r[2]=c3; or c_12,c_3,c_12 mulx a_0,a_3,t_1 !sqr_add_c2(a,3,0,c1,c2,c3); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 lduw ap(4),a_4 mulx a_1,a_2,t_1 !sqr_add_c2(a,2,1,c1,c2,c3); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 st t_1,rp(3) !r[3]=c1; or c_12,c_3,c_12 mulx a_4,a_0,t_1 !sqr_add_c2(a,4,0,c2,c3,c1); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_3,a_1,t_1 !sqr_add_c2(a,3,1,c2,c3,c1); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 lduw ap(5),a_5 mulx a_2,a_2,t_1 !sqr_add_c(a,2,c2,c3,c1); addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(4) !r[4]=c2; or c_12,c_3,c_12 mulx a_0,a_5,t_1 !sqr_add_c2(a,5,0,c3,c1,c2); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_1,a_4,t_1 !sqr_add_c2(a,4,1,c3,c1,c2); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 lduw ap(6),a_6 mulx a_2,a_3,t_1 !sqr_add_c2(a,3,2,c3,c1,c2); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(5) !r[5]=c3; or c_12,c_3,c_12 mulx a_6,a_0,t_1 !sqr_add_c2(a,6,0,c1,c2,c3); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_5,a_1,t_1 !sqr_add_c2(a,5,1,c1,c2,c3); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_4,a_2,t_1 !sqr_add_c2(a,4,2,c1,c2,c3); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 lduw ap(7),a_7 mulx a_3,a_3,t_1 !=!sqr_add_c(a,3,c1,c2,c3); addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(6) !r[6]=c1; or c_12,c_3,c_12 mulx a_0,a_7,t_1 !sqr_add_c2(a,7,0,c2,c3,c1); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_1,a_6,t_1 !sqr_add_c2(a,6,1,c2,c3,c1); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_2,a_5,t_1 !sqr_add_c2(a,5,2,c2,c3,c1); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_3,a_4,t_1 !sqr_add_c2(a,4,3,c2,c3,c1); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(7) !r[7]=c2; or c_12,c_3,c_12 mulx a_7,a_1,t_1 !sqr_add_c2(a,7,1,c3,c1,c2); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_6,a_2,t_1 !sqr_add_c2(a,6,2,c3,c1,c2); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_5,a_3,t_1 !sqr_add_c2(a,5,3,c3,c1,c2); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_4,a_4,t_1 !sqr_add_c(a,4,c3,c1,c2); addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(8) !r[8]=c3; or c_12,c_3,c_12 mulx a_2,a_7,t_1 !sqr_add_c2(a,7,2,c1,c2,c3); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_3,a_6,t_1 !sqr_add_c2(a,6,3,c1,c2,c3); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_4,a_5,t_1 !sqr_add_c2(a,5,4,c1,c2,c3); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(9) !r[9]=c1; or c_12,c_3,c_12 mulx a_7,a_3,t_1 !sqr_add_c2(a,7,3,c2,c3,c1); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_6,a_4,t_1 !sqr_add_c2(a,6,4,c2,c3,c1); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_5,a_5,t_1 !sqr_add_c(a,5,c2,c3,c1); addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(10) !r[10]=c2; or c_12,c_3,c_12 mulx a_4,a_7,t_1 !sqr_add_c2(a,7,4,c3,c1,c2); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_5,a_6,t_1 !sqr_add_c2(a,6,5,c3,c1,c2); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(11) !r[11]=c3; or c_12,c_3,c_12 mulx a_7,a_5,t_1 !sqr_add_c2(a,7,5,c1,c2,c3); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_6,a_6,t_1 !sqr_add_c(a,6,c1,c2,c3); addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(12) !r[12]=c1; or c_12,c_3,c_12 mulx a_6,a_7,t_1 !sqr_add_c2(a,7,6,c2,c3,c1); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(13) !r[13]=c2; or c_12,c_3,c_12 mulx a_7,a_7,t_1 !sqr_add_c(a,7,c3,c1,c2); addcc c_12,t_1,t_1 srlx t_1,32,c_12 stuw t_1,rp(14) !r[14]=c3; stuw c_12,rp(15) !r[15]=c1; ret restore %g0,%g0,%o0.type bn_sqr_comba8,#function.size bn_sqr_comba8,(.-bn_sqr_comba8).align 32.global bn_sqr_comba4/* * void bn_sqr_comba4(r,a) * BN_ULONG *r,*a; */bn_sqr_comba4: save %sp,FRAME_SIZE,%sp mov 1,t_2 lduw ap(0),a_0 sllx t_2,32,t_2 lduw ap(1),a_1 mulx a_0,a_0,t_1 !sqr_add_c(a,0,c1,c2,c3); srlx t_1,32,c_12 stuw t_1,rp(0) !r[0]=c1; lduw ap(2),a_2 mulx a_0,a_1,t_1 !sqr_add_c2(a,1,0,c2,c3,c1); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(1) !r[1]=c2; or c_12,c_3,c_12 mulx a_2,a_0,t_1 !sqr_add_c2(a,2,0,c3,c1,c2); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 lduw ap(3),a_3 mulx a_1,a_1,t_1 !sqr_add_c(a,1,c3,c1,c2); addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(2) !r[2]=c3; or c_12,c_3,c_12 mulx a_0,a_3,t_1 !sqr_add_c2(a,3,0,c1,c2,c3); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_1,a_2,t_1 !sqr_add_c2(a,2,1,c1,c2,c3); addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(3) !r[3]=c1; or c_12,c_3,c_12 mulx a_3,a_1,t_1 !sqr_add_c2(a,3,1,c2,c3,c1); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,c_12 bcs,a %xcc,.+8 add c_3,t_2,c_3 mulx a_2,a_2,t_1 !sqr_add_c(a,2,c2,c3,c1); addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(4) !r[4]=c2; or c_12,c_3,c_12 mulx a_2,a_3,t_1 !sqr_add_c2(a,3,2,c3,c1,c2); addcc c_12,t_1,c_12 clr c_3 bcs,a %xcc,.+8 add c_3,t_2,c_3 addcc c_12,t_1,t_1 bcs,a %xcc,.+8 add c_3,t_2,c_3 srlx t_1,32,c_12 stuw t_1,rp(5) !r[5]=c3; or c_12,c_3,c_12 mulx a_3,a_3,t_1 !sqr_add_c(a,3,c1,c2,c3); addcc c_12,t_1,t_1 srlx t_1,32,c_12 stuw t_1,rp(6) !r[6]=c1; stuw c_12,rp(7) !r[7]=c2; ret restore %g0,%g0,%o0.type bn_sqr_comba4,#function.size bn_sqr_comba4,(.-bn_sqr_comba4).align 32
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -