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 + -
显示快捷键?