pa-risc2.s revision 55714
155714Skris .SPACE $PRIVATE$ 255714Skris .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 355714Skris .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 455714Skris .SPACE $TEXT$ 555714Skris .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 655714Skris .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY 755714Skris .IMPORT $global$,DATA 855714Skris .IMPORT $$dyncall,MILLICODE 955714Skris; gcc_compiled.: 1055714Skris .SPACE $TEXT$ 1155714Skris .SUBSPA $CODE$ 1255714Skris 1355714Skris .align 4 1455714Skris .EXPORT bn_mul_add_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR 1555714Skrisbn_mul_add_words 1655714Skris .PROC 1755714Skris .CALLINFO FRAME=64,CALLS,SAVE_RP,ENTRY_GR=4 1855714Skris .ENTRY 1955714Skris stw %r2,-20(0,%r30) 2055714Skris stwm %r4,64(0,%r30) 2155714Skris copy %r24,%r31 2255714Skris stw %r3,-60(0,%r30) 2355714Skris ldi 0,%r20 2455714Skris ldo 12(%r26),%r2 2555714Skris stw %r23,-16(0,%r30) 2655714Skris copy %r25,%r3 2755714Skris ldo 12(%r3),%r1 2855714Skris fldws -16(0,%r30),%fr8L 2955714SkrisL$0010 3055714Skris copy %r20,%r25 3155714Skris ldi 0,%r24 3255714Skris fldws 0(0,%r3),%fr9L 3355714Skris ldw 0(0,%r26),%r19 3455714Skris xmpyu %fr8L,%fr9L,%fr9 3555714Skris fstds %fr9,-16(0,%r30) 3655714Skris copy %r19,%r23 3755714Skris ldw -16(0,%r30),%r28 3855714Skris ldw -12(0,%r30),%r29 3955714Skris ldi 0,%r22 4055714Skris add %r23,%r29,%r29 4155714Skris addc %r22,%r28,%r28 4255714Skris add %r25,%r29,%r29 4355714Skris addc %r24,%r28,%r28 4455714Skris copy %r28,%r21 4555714Skris ldi 0,%r20 4655714Skris copy %r21,%r20 4755714Skris addib,= -1,%r31,L$0011 4855714Skris stw %r29,0(0,%r26) 4955714Skris copy %r20,%r25 5055714Skris ldi 0,%r24 5155714Skris fldws -8(0,%r1),%fr9L 5255714Skris ldw -8(0,%r2),%r19 5355714Skris xmpyu %fr8L,%fr9L,%fr9 5455714Skris fstds %fr9,-16(0,%r30) 5555714Skris copy %r19,%r23 5655714Skris ldw -16(0,%r30),%r28 5755714Skris ldw -12(0,%r30),%r29 5855714Skris ldi 0,%r22 5955714Skris add %r23,%r29,%r29 6055714Skris addc %r22,%r28,%r28 6155714Skris add %r25,%r29,%r29 6255714Skris addc %r24,%r28,%r28 6355714Skris copy %r28,%r21 6455714Skris ldi 0,%r20 6555714Skris copy %r21,%r20 6655714Skris addib,= -1,%r31,L$0011 6755714Skris stw %r29,-8(0,%r2) 6855714Skris copy %r20,%r25 6955714Skris ldi 0,%r24 7055714Skris fldws -4(0,%r1),%fr9L 7155714Skris ldw -4(0,%r2),%r19 7255714Skris xmpyu %fr8L,%fr9L,%fr9 7355714Skris fstds %fr9,-16(0,%r30) 7455714Skris copy %r19,%r23 7555714Skris ldw -16(0,%r30),%r28 7655714Skris ldw -12(0,%r30),%r29 7755714Skris ldi 0,%r22 7855714Skris add %r23,%r29,%r29 7955714Skris addc %r22,%r28,%r28 8055714Skris add %r25,%r29,%r29 8155714Skris addc %r24,%r28,%r28 8255714Skris copy %r28,%r21 8355714Skris ldi 0,%r20 8455714Skris copy %r21,%r20 8555714Skris addib,= -1,%r31,L$0011 8655714Skris stw %r29,-4(0,%r2) 8755714Skris copy %r20,%r25 8855714Skris ldi 0,%r24 8955714Skris fldws 0(0,%r1),%fr9L 9055714Skris ldw 0(0,%r2),%r19 9155714Skris xmpyu %fr8L,%fr9L,%fr9 9255714Skris fstds %fr9,-16(0,%r30) 9355714Skris copy %r19,%r23 9455714Skris ldw -16(0,%r30),%r28 9555714Skris ldw -12(0,%r30),%r29 9655714Skris ldi 0,%r22 9755714Skris add %r23,%r29,%r29 9855714Skris addc %r22,%r28,%r28 9955714Skris add %r25,%r29,%r29 10055714Skris addc %r24,%r28,%r28 10155714Skris copy %r28,%r21 10255714Skris ldi 0,%r20 10355714Skris copy %r21,%r20 10455714Skris addib,= -1,%r31,L$0011 10555714Skris stw %r29,0(0,%r2) 10655714Skris ldo 16(%r1),%r1 10755714Skris ldo 16(%r3),%r3 10855714Skris ldo 16(%r2),%r2 10955714Skris bl L$0010,0 11055714Skris ldo 16(%r26),%r26 11155714SkrisL$0011 11255714Skris copy %r20,%r28 11355714Skris ldw -84(0,%r30),%r2 11455714Skris ldw -60(0,%r30),%r3 11555714Skris bv 0(%r2) 11655714Skris ldwm -64(0,%r30),%r4 11755714Skris .EXIT 11855714Skris .PROCEND 11955714Skris .align 4 12055714Skris .EXPORT bn_mul_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR 12155714Skrisbn_mul_words 12255714Skris .PROC 12355714Skris .CALLINFO FRAME=64,CALLS,SAVE_RP,ENTRY_GR=3 12455714Skris .ENTRY 12555714Skris stw %r2,-20(0,%r30) 12655714Skris copy %r25,%r2 12755714Skris stwm %r4,64(0,%r30) 12855714Skris copy %r24,%r19 12955714Skris ldi 0,%r28 13055714Skris stw %r23,-16(0,%r30) 13155714Skris ldo 12(%r26),%r31 13255714Skris ldo 12(%r2),%r29 13355714Skris fldws -16(0,%r30),%fr8L 13455714SkrisL$0026 13555714Skris fldws 0(0,%r2),%fr9L 13655714Skris xmpyu %fr8L,%fr9L,%fr9 13755714Skris fstds %fr9,-16(0,%r30) 13855714Skris copy %r28,%r21 13955714Skris ldi 0,%r20 14055714Skris ldw -16(0,%r30),%r24 14155714Skris ldw -12(0,%r30),%r25 14255714Skris add %r21,%r25,%r25 14355714Skris addc %r20,%r24,%r24 14455714Skris copy %r24,%r23 14555714Skris ldi 0,%r22 14655714Skris copy %r23,%r28 14755714Skris addib,= -1,%r19,L$0027 14855714Skris stw %r25,0(0,%r26) 14955714Skris fldws -8(0,%r29),%fr9L 15055714Skris xmpyu %fr8L,%fr9L,%fr9 15155714Skris fstds %fr9,-16(0,%r30) 15255714Skris copy %r28,%r21 15355714Skris ldi 0,%r20 15455714Skris ldw -16(0,%r30),%r24 15555714Skris ldw -12(0,%r30),%r25 15655714Skris add %r21,%r25,%r25 15755714Skris addc %r20,%r24,%r24 15855714Skris copy %r24,%r23 15955714Skris ldi 0,%r22 16055714Skris copy %r23,%r28 16155714Skris addib,= -1,%r19,L$0027 16255714Skris stw %r25,-8(0,%r31) 16355714Skris fldws -4(0,%r29),%fr9L 16455714Skris xmpyu %fr8L,%fr9L,%fr9 16555714Skris fstds %fr9,-16(0,%r30) 16655714Skris copy %r28,%r21 16755714Skris ldi 0,%r20 16855714Skris ldw -16(0,%r30),%r24 16955714Skris ldw -12(0,%r30),%r25 17055714Skris add %r21,%r25,%r25 17155714Skris addc %r20,%r24,%r24 17255714Skris copy %r24,%r23 17355714Skris ldi 0,%r22 17455714Skris copy %r23,%r28 17555714Skris addib,= -1,%r19,L$0027 17655714Skris stw %r25,-4(0,%r31) 17755714Skris fldws 0(0,%r29),%fr9L 17855714Skris xmpyu %fr8L,%fr9L,%fr9 17955714Skris fstds %fr9,-16(0,%r30) 18055714Skris copy %r28,%r21 18155714Skris ldi 0,%r20 18255714Skris ldw -16(0,%r30),%r24 18355714Skris ldw -12(0,%r30),%r25 18455714Skris add %r21,%r25,%r25 18555714Skris addc %r20,%r24,%r24 18655714Skris copy %r24,%r23 18755714Skris ldi 0,%r22 18855714Skris copy %r23,%r28 18955714Skris addib,= -1,%r19,L$0027 19055714Skris stw %r25,0(0,%r31) 19155714Skris ldo 16(%r29),%r29 19255714Skris ldo 16(%r2),%r2 19355714Skris ldo 16(%r31),%r31 19455714Skris bl L$0026,0 19555714Skris ldo 16(%r26),%r26 19655714SkrisL$0027 19755714Skris ldw -84(0,%r30),%r2 19855714Skris bv 0(%r2) 19955714Skris ldwm -64(0,%r30),%r4 20055714Skris .EXIT 20155714Skris .PROCEND 20255714Skris .align 4 20355714Skris .EXPORT bn_sqr_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR 20455714Skrisbn_sqr_words 20555714Skris .PROC 20655714Skris .CALLINFO FRAME=0,NO_CALLS 20755714Skris .ENTRY 20855714Skris ldo 28(%r26),%r19 20955714Skris ldo 12(%r25),%r28 21055714SkrisL$0042 21155714Skris fldws 0(0,%r25),%fr8L 21255714Skris fldws 0(0,%r25),%fr8R 21355714Skris xmpyu %fr8L,%fr8R,%fr8 21455714Skris fstds %fr8,-16(0,%r30) 21555714Skris ldw -16(0,%r30),%r22 21655714Skris ldw -12(0,%r30),%r23 21755714Skris stw %r23,0(0,%r26) 21855714Skris copy %r22,%r21 21955714Skris ldi 0,%r20 22055714Skris addib,= -1,%r24,L$0049 22155714Skris stw %r21,-24(0,%r19) 22255714Skris fldws -8(0,%r28),%fr8L 22355714Skris fldws -8(0,%r28),%fr8R 22455714Skris xmpyu %fr8L,%fr8R,%fr8 22555714Skris fstds %fr8,-16(0,%r30) 22655714Skris ldw -16(0,%r30),%r22 22755714Skris ldw -12(0,%r30),%r23 22855714Skris stw %r23,-20(0,%r19) 22955714Skris copy %r22,%r21 23055714Skris ldi 0,%r20 23155714Skris addib,= -1,%r24,L$0049 23255714Skris stw %r21,-16(0,%r19) 23355714Skris fldws -4(0,%r28),%fr8L 23455714Skris fldws -4(0,%r28),%fr8R 23555714Skris xmpyu %fr8L,%fr8R,%fr8 23655714Skris fstds %fr8,-16(0,%r30) 23755714Skris ldw -16(0,%r30),%r22 23855714Skris ldw -12(0,%r30),%r23 23955714Skris stw %r23,-12(0,%r19) 24055714Skris copy %r22,%r21 24155714Skris ldi 0,%r20 24255714Skris addib,= -1,%r24,L$0049 24355714Skris stw %r21,-8(0,%r19) 24455714Skris fldws 0(0,%r28),%fr8L 24555714Skris fldws 0(0,%r28),%fr8R 24655714Skris xmpyu %fr8L,%fr8R,%fr8 24755714Skris fstds %fr8,-16(0,%r30) 24855714Skris ldw -16(0,%r30),%r22 24955714Skris ldw -12(0,%r30),%r23 25055714Skris stw %r23,-4(0,%r19) 25155714Skris copy %r22,%r21 25255714Skris ldi 0,%r20 25355714Skris addib,= -1,%r24,L$0049 25455714Skris stw %r21,0(0,%r19) 25555714Skris ldo 16(%r28),%r28 25655714Skris ldo 16(%r25),%r25 25755714Skris ldo 32(%r19),%r19 25855714Skris bl L$0042,0 25955714Skris ldo 32(%r26),%r26 26055714SkrisL$0049 26155714Skris bv,n 0(%r2) 26255714Skris .EXIT 26355714Skris .PROCEND 26455714Skris .IMPORT BN_num_bits_word,CODE 26555714Skris .IMPORT fprintf,CODE 26655714Skris .IMPORT __iob,DATA 26755714Skris .SPACE $TEXT$ 26855714Skris .SUBSPA $LIT$ 26955714Skris 27055714Skris .align 4 27155714SkrisL$C0000 27255714Skris .STRING "Division would overflow (%d)\x0a\x00" 27355714Skris .IMPORT abort,CODE 27455714Skris .SPACE $TEXT$ 27555714Skris .SUBSPA $CODE$ 27655714Skris 27755714Skris .align 4 27855714Skris .EXPORT bn_div64,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,RTNVAL=GR 27955714Skrisbn_div64 28055714Skris .PROC 28155714Skris .CALLINFO FRAME=128,CALLS,SAVE_RP,ENTRY_GR=8 28255714Skris .ENTRY 28355714Skris stw %r2,-20(0,%r30) 28455714Skris stwm %r8,128(0,%r30) 28555714Skris stw %r7,-124(0,%r30) 28655714Skris stw %r4,-112(0,%r30) 28755714Skris stw %r3,-108(0,%r30) 28855714Skris copy %r26,%r3 28955714Skris copy %r25,%r4 29055714Skris stw %r6,-120(0,%r30) 29155714Skris ldi 0,%r7 29255714Skris stw %r5,-116(0,%r30) 29355714Skris movb,<> %r24,%r5,L$0051 29455714Skris ldi 2,%r6 29555714Skris bl L$0068,0 29655714Skris ldi -1,%r28 29755714SkrisL$0051 29855714Skris .CALL ARGW0=GR 29955714Skris bl BN_num_bits_word,%r2 30055714Skris copy %r5,%r26 30155714Skris copy %r28,%r24 30255714Skris ldi 32,%r19 30355714Skris comb,= %r19,%r24,L$0052 30455714Skris subi 31,%r24,%r19 30555714Skris mtsar %r19 30655714Skris zvdepi 1,32,%r19 30755714Skris comb,>>= %r19,%r3,L$0052 30855714Skris addil LR'__iob-$global$+32,%r27 30955714Skris ldo RR'__iob-$global$+32(%r1),%r26 31055714Skris ldil LR'L$C0000,%r25 31155714Skris .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR 31255714Skris bl fprintf,%r2 31355714Skris ldo RR'L$C0000(%r25),%r25 31455714Skris .CALL 31555714Skris bl abort,%r2 31655714Skris nop 31755714SkrisL$0052 31855714Skris comb,>> %r5,%r3,L$0053 31955714Skris subi 32,%r24,%r24 32055714Skris sub %r3,%r5,%r3 32155714SkrisL$0053 32255714Skris comib,= 0,%r24,L$0054 32355714Skris subi 31,%r24,%r19 32455714Skris mtsar %r19 32555714Skris zvdep %r5,32,%r5 32655714Skris zvdep %r3,32,%r21 32755714Skris subi 32,%r24,%r20 32855714Skris mtsar %r20 32955714Skris vshd 0,%r4,%r20 33055714Skris or %r21,%r20,%r3 33155714Skris mtsar %r19 33255714Skris zvdep %r4,32,%r4 33355714SkrisL$0054 33455714Skris extru %r5,15,16,%r23 33555714Skris extru %r5,31,16,%r28 33655714SkrisL$0055 33755714Skris extru %r3,15,16,%r19 33855714Skris comb,<> %r23,%r19,L$0058 33955714Skris copy %r3,%r26 34055714Skris bl L$0059,0 34155714Skris zdepi -1,31,16,%r29 34255714SkrisL$0058 34355714Skris .IMPORT $$divU,MILLICODE 34455714Skris bl $$divU,%r31 34555714Skris copy %r23,%r25 34655714SkrisL$0059 34755714Skris stw %r29,-16(0,%r30) 34855714Skris fldws -16(0,%r30),%fr10L 34955714Skris stw %r28,-16(0,%r30) 35055714Skris fldws -16(0,%r30),%fr10R 35155714Skris stw %r23,-16(0,%r30) 35255714Skris xmpyu %fr10L,%fr10R,%fr8 35355714Skris fldws -16(0,%r30),%fr10R 35455714Skris fstws %fr8R,-16(0,%r30) 35555714Skris xmpyu %fr10L,%fr10R,%fr9 35655714Skris ldw -16(0,%r30),%r8 35755714Skris fstws %fr9R,-16(0,%r30) 35855714Skris copy %r8,%r22 35955714Skris ldw -16(0,%r30),%r8 36055714Skris extru %r4,15,16,%r24 36155714Skris copy %r8,%r21 36255714SkrisL$0060 36355714Skris sub %r3,%r21,%r20 36455714Skris copy %r20,%r19 36555714Skris depi 0,31,16,%r19 36655714Skris comib,<> 0,%r19,L$0061 36755714Skris zdep %r20,15,16,%r19 36855714Skris addl %r19,%r24,%r19 36955714Skris comb,>>= %r19,%r22,L$0061 37055714Skris sub %r22,%r28,%r22 37155714Skris sub %r21,%r23,%r21 37255714Skris bl L$0060,0 37355714Skris ldo -1(%r29),%r29 37455714SkrisL$0061 37555714Skris stw %r29,-16(0,%r30) 37655714Skris fldws -16(0,%r30),%fr10L 37755714Skris stw %r28,-16(0,%r30) 37855714Skris fldws -16(0,%r30),%fr10R 37955714Skris xmpyu %fr10L,%fr10R,%fr8 38055714Skris fstws %fr8R,-16(0,%r30) 38155714Skris ldw -16(0,%r30),%r8 38255714Skris stw %r23,-16(0,%r30) 38355714Skris fldws -16(0,%r30),%fr10R 38455714Skris copy %r8,%r19 38555714Skris xmpyu %fr10L,%fr10R,%fr8 38655714Skris fstws %fr8R,-16(0,%r30) 38755714Skris extru %r19,15,16,%r20 38855714Skris ldw -16(0,%r30),%r8 38955714Skris zdep %r19,15,16,%r19 39055714Skris addl %r8,%r20,%r20 39155714Skris comclr,<<= %r19,%r4,0 39255714Skris addi 1,%r20,%r20 39355714Skris comb,<<= %r20,%r3,L$0066 39455714Skris sub %r4,%r19,%r4 39555714Skris addl %r3,%r5,%r3 39655714Skris ldo -1(%r29),%r29 39755714SkrisL$0066 39855714Skris addib,= -1,%r6,L$0056 39955714Skris sub %r3,%r20,%r3 40055714Skris zdep %r29,15,16,%r7 40155714Skris shd %r3,%r4,16,%r3 40255714Skris bl L$0055,0 40355714Skris zdep %r4,15,16,%r4 40455714SkrisL$0056 40555714Skris or %r7,%r29,%r28 40655714SkrisL$0068 40755714Skris ldw -148(0,%r30),%r2 40855714Skris ldw -124(0,%r30),%r7 40955714Skris ldw -120(0,%r30),%r6 41055714Skris ldw -116(0,%r30),%r5 41155714Skris ldw -112(0,%r30),%r4 41255714Skris ldw -108(0,%r30),%r3 41355714Skris bv 0(%r2) 41455714Skris ldwm -128(0,%r30),%r8 41555714Skris .EXIT 41655714Skris .PROCEND 417