mpv_sparc32.s
来自「支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS」· S 代码 · 共 1,817 行 · 第 1/5 页
S
1,817 行
/* 0x0790 */ cmp %o0,%g2/* 0x0794 */ fitod %f0,%f2/* 0x0798 */ fitod %f1,%f0/* 0x079c */ fsubd %f18,%f2,%f2/* 0x07a0 */ fsubd %f18,%f0,%f0/* 0x07a4 */ fmuld %f2,%f16,%f2/* 0x07a8 */ fmuld %f0,%f16,%f0/* 0x07ac */ fdtox %f2,%f2/* 0x07b0 */ std %f2,[%g3]/* 0x07b4 */ add %g3,16,%g3/* 0x07b8 */ fdtox %f0,%f0/* 0x07bc */ std %f0,[%o7]/* 0x07c0 */ add %o7,16,%o7/* 0x07c4 */ ble,a,pt %icc,.L900000198/* 0x07c8 */ ldd [%g4],%f0 .L77000057:! 196 ! }! 198 !#pragma pipeloop(0)! 199 ! for (i = 0; i < n; i ++) {/* 0x07cc 199 */ cmp %o3,0 .L900000199:/* 0x07d0 199 */ ble,pt %icc,.L77000089/* 0x07d4 */ nop/* 0x07d8 */ or %g0,%o4,%g2/* 0x07dc */ or %g0,%o5,%o4/* 0x07e0 */ sub %o3,1,%o7/* 0x07e4 */ or %g0,0,%g4/* 0x07e8 */ add %fp,-2264,%g3/* 0x07ec 195 */ cmp %o3,5/* 0x07f0 */ sub %o3,3,%o3/* 0x07f4 */ bl,pn %icc,.L77000114/* 0x07f8 */ ldx [%fp-2264],%o0! 200 ! ADD_S64_U32(i);/* 0x07fc 200 */ add %o5,4,%o4/* 0x0800 0 */ add %fp,-2248,%g3/* 0x0804 200 */ ld [%g2],%o1/* 0x0808 */ sra %i0,0,%o5/* 0x080c */ or %g0,2,%g4/* 0x0810 */ ld [%g2+4],%o2/* 0x0814 */ add %g2,8,%g2/* 0x0818 */ add %o0,%o1,%o0/* 0x081c */ ldx [%fp-2256],%o1/* 0x0820 */ add %o0,%o5,%o0/* 0x0824 */ st %o0,[%o4-4]/* 0x0828 */ srax %o0,32,%o0 .L900000173:/* 0x082c 200 */ ldx [%g3],%g5/* 0x0830 */ sra %o0,0,%o5/* 0x0834 */ add %o1,%o2,%o0/* 0x0838 */ ld [%g2],%o1/* 0x083c */ add %o0,%o5,%o0/* 0x0840 */ add %g4,3,%g4/* 0x0844 */ st %o0,[%o4]/* 0x0848 */ srax %o0,32,%i0/* 0x084c */ cmp %g4,%o3/* 0x0850 */ ldx [%g3+8],%o0/* 0x0854 */ sra %i0,0,%o5/* 0x0858 */ add %g5,%o1,%o1/* 0x085c */ ld [%g2+4],%o2/* 0x0860 */ add %o1,%o5,%o1/* 0x0864 */ add %o4,12,%o4/* 0x0868 */ st %o1,[%o4-8]/* 0x086c */ srax %o1,32,%o5/* 0x0870 */ add %g2,12,%g2/* 0x0874 */ ldx [%g3+16],%o1/* 0x0878 */ add %o0,%o2,%o0/* 0x087c */ ld [%g2-4],%o2/* 0x0880 */ add %o0,%o5,%o0/* 0x0884 */ add %g3,24,%g3/* 0x0888 */ st %o0,[%o4-4]/* 0x088c */ ble,pt %icc,.L900000173/* 0x0890 */ srax %o0,32,%o0 .L900000176:/* 0x0894 200 */ sra %o0,0,%o3/* 0x0898 */ add %o1,%o2,%o0/* 0x089c */ add %o0,%o3,%o0/* 0x08a0 */ add %o4,4,%o4/* 0x08a4 */ st %o0,[%o4-4]/* 0x08a8 */ cmp %g4,%o7/* 0x08ac */ bg,pn %icc,.L77000089/* 0x08b0 */ srax %o0,32,%i0 .L77000114:/* 0x08b4 200 */ ld [%g2],%o2 .L900000197:/* 0x08b8 200 */ ldx [%g3],%o0/* 0x08bc */ sra %i0,0,%o1/* 0x08c0 */ add %g4,1,%g4/* 0x08c4 */ add %g2,4,%g2/* 0x08c8 */ add %g3,8,%g3/* 0x08cc */ add %o0,%o2,%o0/* 0x08d0 */ cmp %g4,%o7/* 0x08d4 */ add %o0,%o1,%o0/* 0x08d8 */ st %o0,[%o4]/* 0x08dc */ add %o4,4,%o4/* 0x08e0 */ srax %o0,32,%i0/* 0x08e4 */ ble,a,pt %icc,.L900000197/* 0x08e8 */ ld [%g2],%o2 .L77000061:/* 0x08ec */ ret ! Result = %i0/* 0x08f0 */ restore %g0,%g0,%g0 .L77000062:/* 0x08f4 */ sethi %hi(0x80000000),%g2! 201 ! }! 203 ! return c;! 205 ! }! 206 ! } else if (a < (1u << 31)) {! 208 ! if (n == 8) {! 209 ! DEF_VARS(2*8);! 210 ! t_d64 d0, d1, db;! 211 ! t_s32 c = 0;! 213 ! da = (t_d64)(a & A_MASK);/* 0x08f8 213 */ ldd [%o1],%f6/* 0x08fc 206 */ cmp %o0,%g2/* 0x0900 */ bcc,pn %icc,.L77000076/* 0x0904 */ cmp %o2,8/* 0x0908 208 */ bne,pn %icc,.L77000065/* 0x090c */ sethi %hi(0xffe00000),%g2/* 0x0910 213 */ fmovs %f6,%f10/* 0x0914 */ ldd [%o7],%f4! 214 ! db = (t_d64)(a &~ A_MASK);/* 0x0918 214 */ fmovs %f6,%f12/* 0x091c */ or %g0,%g2,%g3/* 0x0920 */ ldd [%o7+8],%f14/* 0x0924 213 */ andn %o0,%g2,%g2/* 0x0928 214 */ and %o0,%g3,%g3/* 0x092c 213 */ st %g2,[%sp+460]/* 0x0930 */ fxnor %f30,%f4,%f4/* 0x0934 214 */ st %g3,[%sp+456]/* 0x0938 */ fxnor %f30,%f14,%f14! 216 ! MUL_U32_S64_D_8(0);/* 0x093c 216 */ ldd [%o1+8],%f16/* 0x0940 */ fitod %f4,%f8/* 0x0944 */ ldd [%o7+16],%f18/* 0x0948 */ fitod %f5,%f4/* 0x094c */ ldd [%o7+24],%f20/* 0x0950 213 */ ld [%sp+460],%f11/* 0x0954 216 */ fsubd %f16,%f8,%f8/* 0x0958 214 */ ld [%sp+456],%f13/* 0x095c 216 */ fsubd %f16,%f4,%f4! 217 ! ADD_S64_U32_D_8(0);/* 0x0960 217 */ ld [%i1],%g2/* 0x0964 213 */ fsubd %f10,%f6,%f10/* 0x0968 217 */ ld [%i1+28],%o3/* 0x096c 214 */ fsubd %f12,%f6,%f6/* 0x0970 217 */ ld [%i1+4],%g3/* 0x0974 216 */ fitod %f14,%f12/* 0x0978 217 */ stx %o3,[%sp+312]/* 0x097c 216 */ fitod %f15,%f14/* 0x0980 */ fmuld %f4,%f10,%f24/* 0x0984 217 */ ld [%i1+8],%g4/* 0x0988 */ fxnor %f30,%f18,%f18/* 0x098c 216 */ fmuld %f8,%f10,%f22/* 0x0990 217 */ ld [%i1+12],%g5/* 0x0994 216 */ fsubd %f16,%f12,%f12/* 0x0998 */ fmuld %f4,%f6,%f4/* 0x099c 217 */ ld [%i1+16],%o0/* 0x09a0 216 */ fitod %f18,%f26/* 0x09a4 */ fmuld %f8,%f6,%f8/* 0x09a8 217 */ ld [%i1+20],%o1/* 0x09ac 216 */ fsubd %f16,%f14,%f14/* 0x09b0 217 */ ld [%i1+24],%o2/* 0x09b4 216 */ fdtox %f4,%f4/* 0x09b8 */ fmuld %f12,%f10,%f28/* 0x09bc */ std %f4,[%sp+424]/* 0x09c0 */ fdtox %f8,%f8/* 0x09c4 */ fmuld %f12,%f6,%f12/* 0x09c8 */ std %f8,[%sp+440]/* 0x09cc */ fsubd %f16,%f26,%f4/* 0x09d0 */ fitod %f19,%f8/* 0x09d4 */ fmuld %f14,%f10,%f18/* 0x09d8 */ fdtox %f12,%f12/* 0x09dc */ std %f12,[%sp+408]/* 0x09e0 */ fmuld %f14,%f6,%f14/* 0x09e4 217 */ ldx [%sp+440],%o5/* 0x09e8 216 */ fdtox %f22,%f22/* 0x09ec */ fmuld %f4,%f10,%f12/* 0x09f0 */ std %f22,[%sp+448]/* 0x09f4 */ fxnor %f30,%f20,%f20/* 0x09f8 */ fmuld %f4,%f6,%f4/* 0x09fc */ fdtox %f24,%f22/* 0x0a00 */ std %f22,[%sp+432]/* 0x0a04 217 */ ldx [%sp+448],%o4/* 0x0a08 216 */ fsubd %f16,%f8,%f8/* 0x0a0c */ fitod %f20,%f22/* 0x0a10 */ fdtox %f14,%f14/* 0x0a14 */ std %f14,[%sp+392]/* 0x0a18 217 */ add %o4,%o5,%o4/* 0x0a1c */ ldx [%sp+432],%o5/* 0x0a20 216 */ fdtox %f28,%f24/* 0x0a24 217 */ add %o4,%g2,%o4/* 0x0a28 216 */ fmuld %f8,%f10,%f14/* 0x0a2c */ std %f24,[%sp+416]/* 0x0a30 217 */ srax %o4,32,%o7/* 0x0a34 216 */ fitod %f21,%f20/* 0x0a38 */ fmuld %f8,%f6,%f8/* 0x0a3c 217 */ stx %o4,[%sp+320]/* 0x0a40 216 */ fdtox %f4,%f4/* 0x0a44 */ std %f4,[%sp+376]/* 0x0a48 */ fdtox %f18,%f18/* 0x0a4c */ std %f18,[%sp+400]/* 0x0a50 */ fsubd %f16,%f20,%f4/* 0x0a54 217 */ ldx [%sp+424],%g2/* 0x0a58 216 */ fsubd %f16,%f22,%f18/* 0x0a5c 217 */ ldx [%sp+416],%o3/* 0x0a60 216 */ fdtox %f12,%f12/* 0x0a64 */ std %f12,[%sp+384]/* 0x0a68 217 */ add %o5,%g2,%g2/* 0x0a6c 216 */ fdtox %f14,%f14/* 0x0a70 217 */ ldx [%sp+408],%o4/* 0x0a74 */ add %g2,%g3,%g2/* 0x0a78 216 */ fdtox %f8,%f8/* 0x0a7c */ fmuld %f18,%f10,%f12/* 0x0a80 */ std %f14,[%sp+368]/* 0x0a84 217 */ add %g2,%o7,%g2/* 0x0a88 216 */ fmuld %f4,%f10,%f14/* 0x0a8c */ std %f8,[%sp+360]/* 0x0a90 217 */ srax %g2,32,%o5/* 0x0a94 */ add %o3,%o4,%o3/* 0x0a98 216 */ fmuld %f18,%f6,%f16/* 0x0a9c 217 */ ldx [%sp+392],%o4/* 0x0aa0 */ add %o3,%g4,%g4/* 0x0aa4 216 */ fmuld %f4,%f6,%f4/* 0x0aa8 217 */ ldx [%sp+400],%g3/* 0x0aac */ add %g4,%o5,%g4/* 0x0ab0 216 */ fdtox %f12,%f6/* 0x0ab4 217 */ ldx [%sp+384],%o7/* 0x0ab8 */ ldx [%sp+376],%o3/* 0x0abc */ add %g3,%o4,%g3/* 0x0ac0 216 */ fdtox %f4,%f4/* 0x0ac4 */ std %f6,[%sp+352]/* 0x0ac8 217 */ srax %g4,32,%o4/* 0x0acc */ add %g3,%g5,%g3/* 0x0ad0 */ ldx [%sp+368],%g5/* 0x0ad4 */ add %o7,%o3,%o3/* 0x0ad8 */ add %g3,%o4,%g3/* 0x0adc 216 */ std %f4,[%sp+328]/* 0x0ae0 217 */ srax %g3,32,%o4/* 0x0ae4 */ add %o3,%o0,%o0/* 0x0ae8 */ ldx [%sp+360],%o3/* 0x0aec */ add %o0,%o4,%o4/* 0x0af0 216 */ fdtox %f16,%f6/* 0x0af4 */ std %f6,[%sp+344]/* 0x0af8 */ fdtox %f14,%f6/* 0x0afc */ std %f6,[%sp+336]/* 0x0b00 217 */ add %g5,%o3,%o3/* 0x0b04 */ ldx [%sp+352],%o5/* 0x0b08 */ srax %o4,32,%g5/* 0x0b0c */ add %o3,%o1,%o1/* 0x0b10 */ st %g2,[%i4+4]/* 0x0b14 */ add %o1,%g5,%o1/* 0x0b18 */ ldx [%sp+344],%o7/* 0x0b1c */ ldx [%sp+320],%g5/* 0x0b20 */ ldx [%sp+336],%o3/* 0x0b24 */ add %o5,%o7,%o0/* 0x0b28 */ ldx [%sp+328],%o5/* 0x0b2c */ add %o0,%o2,%o2/* 0x0b30 */ st %g5,[%i4]/* 0x0b34 */ srax %o1,32,%g5/* 0x0b38 */ ldx [%sp+312],%o7/* 0x0b3c */ add %o2,%g5,%o2/* 0x0b40 */ add %o3,%o5,%o3/* 0x0b44 */ st %o4,[%i4+16]/* 0x0b48 */ srax %o2,32,%g2/* 0x0b4c */ st %o1,[%i4+20]/* 0x0b50 */ add %o3,%o7,%o3/* 0x0b54 */ st %o2,[%i4+24]/* 0x0b58 */ add %o3,%g2,%g2/* 0x0b5c */ st %g4,[%i4+8]! 219 ! return c;/* 0x0b60 219 */ srax %g2,32,%i0/* 0x0b64 217 */ st %g3,[%i4+12]/* 0x0b68 */ st %g2,[%i4+28]/* 0x0b6c */ ret ! Result = %i0/* 0x0b70 */ restore %g0,%g0,%g0 .L77000065:! 221 ! } else if (n == 16) {/* 0x0b74 221 */ cmp %o2,16/* 0x0b78 */ bne,pn %icc,.L77000109/* 0x0b7c */ sethi %hi(0xffe00000),%g2/* 0x0b80 */ ldd [%o7],%f4! 222 ! DEF_VARS(2*16);! 223 ! t_d64 d0, d1, db;! 224 ! t_s32 c = 0;! 226 ! da = (t_d64)(a & A_MASK);! 227 ! db = (t_d64)(a &~ A_MASK);/* 0x0b84 227 */ or %g0,%g2,%g3/* 0x0b88 226 */ andn %o0,%g2,%g2/* 0x0b8c */ st %g2,[%sp+572]/* 0x0b90 227 */ and %o0,%g3,%g3/* 0x0b94 */ fxnor %f30,%f4,%f4/* 0x0b98 226 */ ldd [%o1],%f8/* 0x0b9c 227 */ st %g3,[%sp+568]! 229 ! MUL_U32_S64_D_8(0);/* 0x0ba0 229 */ fitod %f4,%f10/* 0x0ba4 */ ldd [%o1+8],%f16/* 0x0ba8 */ ldd [%o7+8],%f14/* 0x0bac */ fitod %f5,%f4/* 0x0bb0 226 */ ld [%sp+572],%f7/* 0x0bb4 229 */ fsubd %f16,%f10,%f10/* 0x0bb8 227 */ ld [%sp+568],%f13/* 0x0bbc */ fxnor %f30,%f14,%f14/* 0x0bc0 229 */ fsubd %f16,%f4,%f4/* 0x0bc4 226 */ fmovs %f8,%f6/* 0x0bc8 227 */ fmovs %f8,%f12/* 0x0bcc 226 */ fsubd %f6,%f8,%f6/* 0x0bd0 227 */ fsubd %f12,%f8,%f8/* 0x0bd4 229 */ fitod %f14,%f12/* 0x0bd8 */ fmuld %f10,%f6,%f18/* 0x0bdc */ fitod %f15,%f14/* 0x0be0 */ fmuld %f10,%f8,%f10/* 0x0be4 */ fsubd %f16,%f12,%f12/* 0x0be8 */ fmuld %f4,%f6,%f20/* 0x0bec */ fmuld %f4,%f8,%f4/* 0x0bf0 */ fsubd %f16,%f14,%f14/* 0x0bf4 */ fdtox %f10,%f10/* 0x0bf8 */ std %f10,[%sp+552]/* 0x0bfc */ fmuld %f12,%f6,%f10/* 0x0c00 */ fdtox %f18,%f18/* 0x0c04 */ std %f18,[%sp+560]/* 0x0c08 */ fmuld %f12,%f8,%f12/* 0x0c0c */ fdtox %f4,%f4/* 0x0c10 */ std %f4,[%sp+536]/* 0x0c14 */ fmuld %f14,%f6,%f4/* 0x0c18 */ fdtox %f20,%f18/* 0x0c1c */ std %f18,[%sp+544]/* 0x0c20 */ fdtox %f10,%f10/* 0x0c24 */ std %f10,[%sp+528]/* 0x0c28 */ fmuld %f14,%f8,%f14/* 0x0c2c */ fdtox %f12,%f12/* 0x0c30 */ std %f12,[%sp+520]/* 0x0c34 */ ldd [%o7+16],%f10/* 0x0c38 */ fdtox %f4,%f4/* 0x0c3c */ ldd [%o7+24],%f12/* 0x0c40 */ fdtox %f14,%f14/* 0x0c44 */ std %f4,[%sp+512]/* 0x0c48 */ fxnor %f30,%f10,%f10/* 0x0c4c */ fxnor %f30,%f12,%f4/* 0x0c50 */ std %f14,[%sp+504]/* 0x0c54 */ fitod %f10,%f12/* 0x0c58 */ fitod %f11,%f10/* 0x0c5c */ fitod %f4,%f14/* 0x0c60 */ fsubd %f16,%f12,%f12/* 0x0c64 */ fsubd %f16,%f10,%f10/* 0x0c68 */ fitod %f5,%f4
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?