⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pa-risc2.s

📁 mediastreamer2是开源的网络传输媒体流的库
💻 S
📖 第 1 页 / 共 4 页
字号:
	.PROCEND	;-----------------------------------------------------------------------------;;void bn_sqr_comba4(BN_ULONG *r, BN_ULONG *a); arg0 = r_ptr; arg1 = a_ptr;bn_sqr_comba4	.proc	.callinfo FRAME=128,ENTRY_GR=%r3,ARGS_SAVED,ORDERING_AWARE	.EXPORT	bn_sqr_comba4,ENTRY,PRIV_LEV=3,NO_RELOCATION,LONG_RETURN    .entry	.align 64    STD     %r3,0(%sp)          ; save r3    STD     %r4,8(%sp)          ; save r4    STD     %r5,16(%sp)         ; save r5    STD     %r6,24(%sp)         ; save r6	;	; Zero out carries	;	COPY     %r0,c1	COPY     %r0,c2	COPY     %r0,c3	LDO      128(%sp),%sp       ; bump stack    DEPDI,Z -1,32,33,high_mask   ; Create Mask 0xffffffff80000000L    DEPDI,Z  1,31,1,high_one     ; Create Value  1 << 32	;	; Load up all of the values we are going to use	;    FLDD     0(a_ptr),a0           FLDD     8(a_ptr),a1           FLDD    16(a_ptr),a2           FLDD    24(a_ptr),a3           FLDD    32(a_ptr),a4           FLDD    40(a_ptr),a5           FLDD    48(a_ptr),a6           FLDD    56(a_ptr),a7       	SQR_ADD_C a0L,a0R,c1,c2,c3	STD     c1,0(r_ptr)          ; r[0] = c1;	COPY    %r0,c1	SQR_ADD_C2 a1L,a1R,a0L,a0R,c2,c3,c1	STD     c2,8(r_ptr)          ; r[1] = c2;	COPY    %r0,c2	SQR_ADD_C a1L,a1R,c3,c1,c2	SQR_ADD_C2 a2L,a2R,a0L,a0R,c3,c1,c2	STD     c3,16(r_ptr)            ; r[2] = c3;	COPY    %r0,c3	SQR_ADD_C2 a3L,a3R,a0L,a0R,c1,c2,c3	SQR_ADD_C2 a2L,a2R,a1L,a1R,c1,c2,c3	STD     c1,24(r_ptr)           ; r[3] = c1;	COPY    %r0,c1	SQR_ADD_C a2L,a2R,c2,c3,c1	SQR_ADD_C2 a3L,a3R,a1L,a1R,c2,c3,c1	STD     c2,32(r_ptr)           ; r[4] = c2;	COPY    %r0,c2	SQR_ADD_C2 a3L,a3R,a2L,a2R,c3,c1,c2	STD     c3,40(r_ptr)           ; r[5] = c3;	COPY    %r0,c3	SQR_ADD_C a3L,a3R,c1,c2,c3	STD     c1,48(r_ptr)           ; r[6] = c1;	STD     c2,56(r_ptr)           ; r[7] = c2;    .EXIT    LDD     -104(%sp),%r6        ; restore r6    LDD     -112(%sp),%r5        ; restore r5    LDD     -120(%sp),%r4        ; restore r4    BVE     (%rp)    LDD,MB  -128(%sp),%r3	.PROCEND	;---------------------------------------------------------------------------MUL_ADD_C  .macro  A0L,A0R,B0L,B0R,C1,C2,C3    XMPYU   A0L,B0R,ftemp1        ; m1 = bl*ht    FSTD    ftemp1,-16(%sp)       ;    XMPYU   A0R,B0L,ftemp2        ; m = bh*lt    FSTD    ftemp2,-8(%sp)        ;    XMPYU   A0R,B0R,ftemp3        ; lt = bl*lt    FSTD    ftemp3,-32(%sp)    XMPYU   A0L,B0L,ftemp4        ; ht = bh*ht    FSTD    ftemp4,-24(%sp)       ;    LDD     -8(%sp),m             ; r21 = m    LDD     -16(%sp),m1           ; r19 = m1    ADD,L   m,m1,m                ; m+m1    DEPD,Z  m,31,32,temp3         ; (m+m1<<32)    LDD     -24(%sp),ht           ; r24 = ht    CMPCLR,*>>= m,m1,%r0          ; if (m < m1)    ADD,L   ht,high_one,ht        ; ht+=high_one    EXTRD,U m,31,32,temp1         ; m >> 32    LDD     -32(%sp),lt           ; lt    ADD,L   ht,temp1,ht           ; ht+= m>>32    ADD     lt,temp3,lt           ; lt = lt+m1    ADD,DC  ht,%r0,ht             ; ht++    ADD     C1,lt,C1              ; c1=c1+lt    ADD,DC  ht,%r0,ht             ; bump c3 if overflow,nullify otherwise    ADD     C2,ht,C2              ; c2 = c2 + ht    ADD,DC  C3,%r0,C3             ; add in carry (c3++).endm;;void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b); arg0 = r_ptr; arg1 = a_ptr; arg2 = b_ptr;bn_mul_comba8	.proc	.callinfo FRAME=128,ENTRY_GR=%r3,ARGS_SAVED,ORDERING_AWARE	.EXPORT	bn_mul_comba8,ENTRY,PRIV_LEV=3,NO_RELOCATION,LONG_RETURN    .entry	.align 64    STD     %r3,0(%sp)          ; save r3    STD     %r4,8(%sp)          ; save r4    STD     %r5,16(%sp)         ; save r5    STD     %r6,24(%sp)         ; save r6    FSTD    %fr12,32(%sp)       ; save r6    FSTD    %fr13,40(%sp)       ; save r7	;	; Zero out carries	;	COPY     %r0,c1	COPY     %r0,c2	COPY     %r0,c3	LDO      128(%sp),%sp       ; bump stack    DEPDI,Z  1,31,1,high_one     ; Create Value  1 << 32	;	; Load up all of the values we are going to use	;    FLDD      0(a_ptr),a0           FLDD      8(a_ptr),a1           FLDD     16(a_ptr),a2           FLDD     24(a_ptr),a3           FLDD     32(a_ptr),a4           FLDD     40(a_ptr),a5           FLDD     48(a_ptr),a6           FLDD     56(a_ptr),a7           FLDD      0(b_ptr),b0           FLDD      8(b_ptr),b1           FLDD     16(b_ptr),b2           FLDD     24(b_ptr),b3           FLDD     32(b_ptr),b4           FLDD     40(b_ptr),b5           FLDD     48(b_ptr),b6           FLDD     56(b_ptr),b7       	MUL_ADD_C a0L,a0R,b0L,b0R,c1,c2,c3	STD       c1,0(r_ptr)	COPY      %r0,c1	MUL_ADD_C a0L,a0R,b1L,b1R,c2,c3,c1	MUL_ADD_C a1L,a1R,b0L,b0R,c2,c3,c1	STD       c2,8(r_ptr)	COPY      %r0,c2	MUL_ADD_C a2L,a2R,b0L,b0R,c3,c1,c2	MUL_ADD_C a1L,a1R,b1L,b1R,c3,c1,c2	MUL_ADD_C a0L,a0R,b2L,b2R,c3,c1,c2	STD       c3,16(r_ptr)	COPY      %r0,c3	MUL_ADD_C a0L,a0R,b3L,b3R,c1,c2,c3	MUL_ADD_C a1L,a1R,b2L,b2R,c1,c2,c3	MUL_ADD_C a2L,a2R,b1L,b1R,c1,c2,c3	MUL_ADD_C a3L,a3R,b0L,b0R,c1,c2,c3	STD       c1,24(r_ptr)	COPY      %r0,c1	MUL_ADD_C a4L,a4R,b0L,b0R,c2,c3,c1	MUL_ADD_C a3L,a3R,b1L,b1R,c2,c3,c1	MUL_ADD_C a2L,a2R,b2L,b2R,c2,c3,c1	MUL_ADD_C a1L,a1R,b3L,b3R,c2,c3,c1	MUL_ADD_C a0L,a0R,b4L,b4R,c2,c3,c1	STD       c2,32(r_ptr)	COPY      %r0,c2	MUL_ADD_C a0L,a0R,b5L,b5R,c3,c1,c2	MUL_ADD_C a1L,a1R,b4L,b4R,c3,c1,c2	MUL_ADD_C a2L,a2R,b3L,b3R,c3,c1,c2	MUL_ADD_C a3L,a3R,b2L,b2R,c3,c1,c2	MUL_ADD_C a4L,a4R,b1L,b1R,c3,c1,c2	MUL_ADD_C a5L,a5R,b0L,b0R,c3,c1,c2	STD       c3,40(r_ptr)	COPY      %r0,c3	MUL_ADD_C a6L,a6R,b0L,b0R,c1,c2,c3	MUL_ADD_C a5L,a5R,b1L,b1R,c1,c2,c3	MUL_ADD_C a4L,a4R,b2L,b2R,c1,c2,c3	MUL_ADD_C a3L,a3R,b3L,b3R,c1,c2,c3	MUL_ADD_C a2L,a2R,b4L,b4R,c1,c2,c3	MUL_ADD_C a1L,a1R,b5L,b5R,c1,c2,c3	MUL_ADD_C a0L,a0R,b6L,b6R,c1,c2,c3	STD       c1,48(r_ptr)	COPY      %r0,c1		MUL_ADD_C a0L,a0R,b7L,b7R,c2,c3,c1	MUL_ADD_C a1L,a1R,b6L,b6R,c2,c3,c1	MUL_ADD_C a2L,a2R,b5L,b5R,c2,c3,c1	MUL_ADD_C a3L,a3R,b4L,b4R,c2,c3,c1	MUL_ADD_C a4L,a4R,b3L,b3R,c2,c3,c1	MUL_ADD_C a5L,a5R,b2L,b2R,c2,c3,c1	MUL_ADD_C a6L,a6R,b1L,b1R,c2,c3,c1	MUL_ADD_C a7L,a7R,b0L,b0R,c2,c3,c1	STD       c2,56(r_ptr)	COPY      %r0,c2	MUL_ADD_C a7L,a7R,b1L,b1R,c3,c1,c2	MUL_ADD_C a6L,a6R,b2L,b2R,c3,c1,c2	MUL_ADD_C a5L,a5R,b3L,b3R,c3,c1,c2	MUL_ADD_C a4L,a4R,b4L,b4R,c3,c1,c2	MUL_ADD_C a3L,a3R,b5L,b5R,c3,c1,c2	MUL_ADD_C a2L,a2R,b6L,b6R,c3,c1,c2	MUL_ADD_C a1L,a1R,b7L,b7R,c3,c1,c2	STD       c3,64(r_ptr)	COPY      %r0,c3	MUL_ADD_C a2L,a2R,b7L,b7R,c1,c2,c3	MUL_ADD_C a3L,a3R,b6L,b6R,c1,c2,c3	MUL_ADD_C a4L,a4R,b5L,b5R,c1,c2,c3	MUL_ADD_C a5L,a5R,b4L,b4R,c1,c2,c3	MUL_ADD_C a6L,a6R,b3L,b3R,c1,c2,c3	MUL_ADD_C a7L,a7R,b2L,b2R,c1,c2,c3	STD       c1,72(r_ptr)	COPY      %r0,c1	MUL_ADD_C a7L,a7R,b3L,b3R,c2,c3,c1	MUL_ADD_C a6L,a6R,b4L,b4R,c2,c3,c1	MUL_ADD_C a5L,a5R,b5L,b5R,c2,c3,c1	MUL_ADD_C a4L,a4R,b6L,b6R,c2,c3,c1	MUL_ADD_C a3L,a3R,b7L,b7R,c2,c3,c1	STD       c2,80(r_ptr)	COPY      %r0,c2	MUL_ADD_C a4L,a4R,b7L,b7R,c3,c1,c2	MUL_ADD_C a5L,a5R,b6L,b6R,c3,c1,c2	MUL_ADD_C a6L,a6R,b5L,b5R,c3,c1,c2	MUL_ADD_C a7L,a7R,b4L,b4R,c3,c1,c2	STD       c3,88(r_ptr)	COPY      %r0,c3	MUL_ADD_C a7L,a7R,b5L,b5R,c1,c2,c3	MUL_ADD_C a6L,a6R,b6L,b6R,c1,c2,c3	MUL_ADD_C a5L,a5R,b7L,b7R,c1,c2,c3	STD       c1,96(r_ptr)	COPY      %r0,c1	MUL_ADD_C a6L,a6R,b7L,b7R,c2,c3,c1	MUL_ADD_C a7L,a7R,b6L,b6R,c2,c3,c1	STD       c2,104(r_ptr)	COPY      %r0,c2	MUL_ADD_C a7L,a7R,b7L,b7R,c3,c1,c2	STD       c3,112(r_ptr)	STD       c1,120(r_ptr)    .EXIT    FLDD    -88(%sp),%fr13     FLDD    -96(%sp),%fr12     LDD     -104(%sp),%r6        ; restore r6    LDD     -112(%sp),%r5        ; restore r5    LDD     -120(%sp),%r4        ; restore r4    BVE     (%rp)    LDD,MB  -128(%sp),%r3	.PROCEND	;-----------------------------------------------------------------------------;;void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b); arg0 = r_ptr; arg1 = a_ptr; arg2 = b_ptr;bn_mul_comba4	.proc	.callinfo FRAME=128,ENTRY_GR=%r3,ARGS_SAVED,ORDERING_AWARE	.EXPORT	bn_mul_comba4,ENTRY,PRIV_LEV=3,NO_RELOCATION,LONG_RETURN    .entry	.align 64    STD     %r3,0(%sp)          ; save r3    STD     %r4,8(%sp)          ; save r4    STD     %r5,16(%sp)         ; save r5    STD     %r6,24(%sp)         ; save r6    FSTD    %fr12,32(%sp)       ; save r6    FSTD    %fr13,40(%sp)       ; save r7	;	; Zero out carries	;	COPY     %r0,c1	COPY     %r0,c2	COPY     %r0,c3	LDO      128(%sp),%sp       ; bump stack    DEPDI,Z  1,31,1,high_one     ; Create Value  1 << 32	;	; Load up all of the values we are going to use	;    FLDD      0(a_ptr),a0           FLDD      8(a_ptr),a1           FLDD     16(a_ptr),a2           FLDD     24(a_ptr),a3           FLDD      0(b_ptr),b0           FLDD      8(b_ptr),b1           FLDD     16(b_ptr),b2           FLDD     24(b_ptr),b3       	MUL_ADD_C a0L,a0R,b0L,b0R,c1,c2,c3	STD       c1,0(r_ptr)	COPY      %r0,c1	MUL_ADD_C a0L,a0R,b1L,b1R,c2,c3,c1	MUL_ADD_C a1L,a1R,b0L,b0R,c2,c3,c1	STD       c2,8(r_ptr)	COPY      %r0,c2	MUL_ADD_C a2L,a2R,b0L,b0R,c3,c1,c2	MUL_ADD_C a1L,a1R,b1L,b1R,c3,c1,c2	MUL_ADD_C a0L,a0R,b2L,b2R,c3,c1,c2	STD       c3,16(r_ptr)	COPY      %r0,c3	MUL_ADD_C a0L,a0R,b3L,b3R,c1,c2,c3	MUL_ADD_C a1L,a1R,b2L,b2R,c1,c2,c3	MUL_ADD_C a2L,a2R,b1L,b1R,c1,c2,c3	MUL_ADD_C a3L,a3R,b0L,b0R,c1,c2,c3	STD       c1,24(r_ptr)	COPY      %r0,c1	MUL_ADD_C a3L,a3R,b1L,b1R,c2,c3,c1	MUL_ADD_C a2L,a2R,b2L,b2R,c2,c3,c1	MUL_ADD_C a1L,a1R,b3L,b3R,c2,c3,c1	STD       c2,32(r_ptr)	COPY      %r0,c2	MUL_ADD_C a2L,a2R,b3L,b3R,c3,c1,c2	MUL_ADD_C a3L,a3R,b2L,b2R,c3,c1,c2	STD       c3,40(r_ptr)	COPY      %r0,c3	MUL_ADD_C a3L,a3R,b3L,b3R,c1,c2,c3	STD       c1,48(r_ptr)	STD       c2,56(r_ptr)    .EXIT    FLDD    -88(%sp),%fr13     FLDD    -96(%sp),%fr12     LDD     -104(%sp),%r6        ; restore r6    LDD     -112(%sp),%r5        ; restore r5    LDD     -120(%sp),%r4        ; restore r4    BVE     (%rp)    LDD,MB  -128(%sp),%r3	.PROCEND	;--- not PIC	.SPACE	$TEXT$;--- not PIC	.SUBSPA	$CODE$;--- not PIC	.SPACE	$PRIVATE$,SORT=16;--- not PIC	.IMPORT	$global$,DATA;--- not PIC	.SPACE	$TEXT$;--- not PIC	.SUBSPA	$CODE$;--- not PIC	.SUBSPA	$LIT$,ACCESS=0x2c;--- not PIC	C$7;--- not PIC	.ALIGN	8;--- not PIC	.STRINGZ	"Division would overflow (%d)\n"	.END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -