2 .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
3 .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
5 .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
6 .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
8 .IMPORT $$dyncall,MILLICODE
14 .EXPORT bn_mul_add_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR
17 .CALLINFO FRAME=0,CALLS,SAVE_RP
25 fldws -16(0,%r30),%fr11R
29 fldws -16(0,%r30),%fr11L
35 fldws -16(0,%r30),%fr22L
37 xmpyu %fr22L,%fr11R,%fr8
38 fldws -16(0,%r30),%fr22L
39 fstws %fr8R,-16(0,%r30)
40 xmpyu %fr11R,%fr22L,%fr10
43 xmpyu %fr22L,%fr11L,%fr9
44 fldws -16(0,%r30),%fr22L
45 fstws %fr10R,-16(0,%r30)
48 fstws %fr9R,-16(0,%r30)
49 xmpyu %fr11L,%fr22L,%fr8
52 fstws %fr8R,-16(0,%r30)
56 comclr,<<= %r19,%r21,0
63 comclr,<<= %r19,%r22,0
67 comclr,<<= %r28,%r20,0
71 comclr,<<= %r28,%r20,0
74 addib,= -1,%r24,L$0003
80 fldws -16(0,%r30),%fr22L
82 xmpyu %fr22L,%fr11R,%fr8
83 fldws -16(0,%r30),%fr22L
84 fstws %fr8R,-16(0,%r30)
85 xmpyu %fr11R,%fr22L,%fr10
88 xmpyu %fr22L,%fr11L,%fr9
89 fldws -16(0,%r30),%fr22L
90 fstws %fr10R,-16(0,%r30)
93 fstws %fr9R,-16(0,%r30)
94 xmpyu %fr11L,%fr22L,%fr8
97 fstws %fr8R,-16(0,%r30)
101 comclr,<<= %r19,%r21,0
104 extru %r21,15,16,%r19
108 comclr,<<= %r19,%r22,0
112 comclr,<<= %r28,%r20,0
116 comclr,<<= %r28,%r20,0
119 addib,= -1,%r24,L$0003
122 extru %r19,31,16,%r20
124 extru %r19,15,16,%r19
125 fldws -16(0,%r30),%fr22L
127 xmpyu %fr22L,%fr11R,%fr8
128 fldws -16(0,%r30),%fr22L
129 fstws %fr8R,-16(0,%r30)
130 xmpyu %fr11R,%fr22L,%fr10
133 xmpyu %fr22L,%fr11L,%fr9
134 fldws -16(0,%r30),%fr22L
135 fstws %fr10R,-16(0,%r30)
138 fstws %fr9R,-16(0,%r30)
139 xmpyu %fr11L,%fr22L,%fr8
142 fstws %fr8R,-16(0,%r30)
146 comclr,<<= %r19,%r21,0
149 extru %r21,15,16,%r19
153 comclr,<<= %r19,%r22,0
157 comclr,<<= %r28,%r20,0
161 comclr,<<= %r28,%r20,0
164 addib,= -1,%r24,L$0003
167 extru %r19,31,16,%r20
169 extru %r19,15,16,%r19
170 fldws -16(0,%r30),%fr22L
172 xmpyu %fr22L,%fr11R,%fr8
173 fldws -16(0,%r30),%fr22L
174 fstws %fr8R,-16(0,%r30)
175 xmpyu %fr11R,%fr22L,%fr10
178 xmpyu %fr22L,%fr11L,%fr9
179 fldws -16(0,%r30),%fr22L
180 fstws %fr10R,-16(0,%r30)
183 fstws %fr9R,-16(0,%r30)
184 xmpyu %fr11L,%fr22L,%fr8
187 fstws %fr8R,-16(0,%r30)
191 comclr,<<= %r19,%r21,0
194 extru %r21,15,16,%r19
198 comclr,<<= %r19,%r22,0
202 comclr,<<= %r28,%r20,0
206 comclr,<<= %r28,%r20,0
209 addib,= -1,%r24,L$0003
222 .EXPORT bn_mul_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR
225 .CALLINFO FRAME=0,CALLS,SAVE_RP
231 extru %r23,15,16,%r23
233 fldws -16(0,%r30),%fr11R
237 fldws -16(0,%r30),%fr11L
240 extru %r19,31,16,%r20
242 extru %r19,15,16,%r19
243 fldws -16(0,%r30),%fr22L
245 xmpyu %fr22L,%fr11R,%fr8
246 fldws -16(0,%r30),%fr22L
247 fstws %fr8R,-16(0,%r30)
248 xmpyu %fr11R,%fr22L,%fr10
251 xmpyu %fr22L,%fr11L,%fr9
252 fldws -16(0,%r30),%fr22L
253 fstws %fr10R,-16(0,%r30)
256 fstws %fr9R,-16(0,%r30)
257 xmpyu %fr11L,%fr22L,%fr8
260 fstws %fr8R,-16(0,%r30)
264 comclr,<<= %r19,%r21,0
267 extru %r21,15,16,%r19
271 comclr,<<= %r19,%r22,0
275 comclr,<<= %r28,%r20,0
278 addib,= -1,%r24,L$0027
281 extru %r19,31,16,%r20
283 extru %r19,15,16,%r19
284 fldws -16(0,%r30),%fr22L
286 xmpyu %fr22L,%fr11R,%fr8
287 fldws -16(0,%r30),%fr22L
288 fstws %fr8R,-16(0,%r30)
289 xmpyu %fr11R,%fr22L,%fr10
292 xmpyu %fr22L,%fr11L,%fr9
293 fldws -16(0,%r30),%fr22L
294 fstws %fr10R,-16(0,%r30)
297 fstws %fr9R,-16(0,%r30)
298 xmpyu %fr11L,%fr22L,%fr8
301 fstws %fr8R,-16(0,%r30)
305 comclr,<<= %r19,%r21,0
308 extru %r21,15,16,%r19
312 comclr,<<= %r19,%r22,0
316 comclr,<<= %r28,%r20,0
319 addib,= -1,%r24,L$0027
322 extru %r19,31,16,%r20
324 extru %r19,15,16,%r19
325 fldws -16(0,%r30),%fr22L
327 xmpyu %fr22L,%fr11R,%fr8
328 fldws -16(0,%r30),%fr22L
329 fstws %fr8R,-16(0,%r30)
330 xmpyu %fr11R,%fr22L,%fr10
333 xmpyu %fr22L,%fr11L,%fr9
334 fldws -16(0,%r30),%fr22L
335 fstws %fr10R,-16(0,%r30)
338 fstws %fr9R,-16(0,%r30)
339 xmpyu %fr11L,%fr22L,%fr8
342 fstws %fr8R,-16(0,%r30)
346 comclr,<<= %r19,%r21,0
349 extru %r21,15,16,%r19
353 comclr,<<= %r19,%r22,0
357 comclr,<<= %r28,%r20,0
360 addib,= -1,%r24,L$0027
363 extru %r19,31,16,%r20
365 extru %r19,15,16,%r19
366 fldws -16(0,%r30),%fr22L
368 xmpyu %fr22L,%fr11R,%fr8
369 fldws -16(0,%r30),%fr22L
370 fstws %fr8R,-16(0,%r30)
371 xmpyu %fr11R,%fr22L,%fr10
374 xmpyu %fr22L,%fr11L,%fr9
375 fldws -16(0,%r30),%fr22L
376 fstws %fr10R,-16(0,%r30)
379 fstws %fr9R,-16(0,%r30)
380 xmpyu %fr11L,%fr22L,%fr8
383 fstws %fr8R,-16(0,%r30)
387 comclr,<<= %r19,%r21,0
390 extru %r21,15,16,%r19
394 comclr,<<= %r19,%r22,0
398 comclr,<<= %r28,%r20,0
401 addib,= -1,%r24,L$0027
414 .EXPORT bn_sqr_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR
417 .CALLINFO FRAME=0,NO_CALLS
423 extru %r21,31,16,%r22
425 extru %r21,15,16,%r21
426 fldws -16(0,%r30),%fr10L
428 fldws -16(0,%r30),%fr10R
429 xmpyu %fr10L,%fr10R,%fr8
430 fstws %fr8R,-16(0,%r30)
433 fldws -16(0,%r30),%fr10R
436 xmpyu %fr10L,%fr10R,%fr8
437 fldws -16(0,%r30),%fr10L
439 fldws -16(0,%r30),%fr10R
440 fstws %fr8R,-16(0,%r30)
441 extru %r19,16,17,%r20
444 xmpyu %fr10L,%fr10R,%fr9
447 fstws %fr9R,-16(0,%r30)
450 comclr,<<= %r19,%r22,0
452 addib,= -1,%r24,L$0057
455 extru %r21,31,16,%r22
457 extru %r21,15,16,%r21
458 fldws -16(0,%r30),%fr10L
460 fldws -16(0,%r30),%fr10R
461 xmpyu %fr10L,%fr10R,%fr8
462 fstws %fr8R,-16(0,%r30)
465 fldws -16(0,%r30),%fr10R
468 xmpyu %fr10L,%fr10R,%fr8
469 fldws -16(0,%r30),%fr10L
471 fldws -16(0,%r30),%fr10R
472 fstws %fr8R,-16(0,%r30)
473 extru %r19,16,17,%r20
476 xmpyu %fr10L,%fr10R,%fr9
479 fstws %fr9R,-16(0,%r30)
482 comclr,<<= %r19,%r22,0
484 addib,= -1,%r24,L$0057
487 extru %r21,31,16,%r22
489 extru %r21,15,16,%r21
490 fldws -16(0,%r30),%fr10L
492 fldws -16(0,%r30),%fr10R
493 xmpyu %fr10L,%fr10R,%fr8
494 fstws %fr8R,-16(0,%r30)
497 fldws -16(0,%r30),%fr10R
500 xmpyu %fr10L,%fr10R,%fr8
501 fldws -16(0,%r30),%fr10L
503 fldws -16(0,%r30),%fr10R
504 fstws %fr8R,-16(0,%r30)
505 extru %r19,16,17,%r20
508 xmpyu %fr10L,%fr10R,%fr9
511 fstws %fr9R,-16(0,%r30)
514 comclr,<<= %r19,%r22,0
516 addib,= -1,%r24,L$0057
519 extru %r21,31,16,%r22
521 extru %r21,15,16,%r21
522 fldws -16(0,%r30),%fr10L
524 fldws -16(0,%r30),%fr10R
525 xmpyu %fr10L,%fr10R,%fr8
526 fstws %fr8R,-16(0,%r30)
529 fldws -16(0,%r30),%fr10R
532 xmpyu %fr10L,%fr10R,%fr8
533 fldws -16(0,%r30),%fr10L
535 fldws -16(0,%r30),%fr10R
536 fstws %fr8R,-16(0,%r30)
537 extru %r19,16,17,%r20
540 xmpyu %fr10L,%fr10R,%fr9
543 fstws %fr9R,-16(0,%r30)
546 comclr,<<= %r19,%r22,0
548 addib,= -1,%r24,L$0057
559 .IMPORT BN_num_bits_word,CODE
567 .STRING "Division would overflow\x0a\x00"
573 .EXPORT bn_div64,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,RTNVAL=GR
576 .CALLINFO FRAME=128,CALLS,SAVE_RP,ENTRY_GR=8
588 movb,<> %r24,%r5,L$0059
594 bl BN_num_bits_word,%r2
597 comb,= %r19,%r28,L$0060
601 comb,>>= %r19,%r3,L$0060
602 addil LR'__iob-$global$+32,%r27
603 ldo RR'__iob-$global$+32(%r1),%r26
605 .CALL ARGW0=GR,ARGW1=GR
607 ldo RR'L$C0000(%r25),%r25
612 comb,>> %r5,%r3,L$0061
616 comib,= 0,%r28,L$0062
632 comb,<> %r23,%r19,L$0066
637 .IMPORT $$divU,MILLICODE
642 fldws -16(0,%r30),%fr10L
644 fldws -16(0,%r30),%fr10R
646 xmpyu %fr10L,%fr10R,%fr8
647 fldws -16(0,%r30),%fr10R
648 fstws %fr8R,-16(0,%r30)
649 xmpyu %fr10L,%fr10R,%fr9
651 fstws %fr9R,-16(0,%r30)
660 comib,<> 0,%r19,L$0069
663 comb,>>= %r19,%r22,L$0069
670 fldws -16(0,%r30),%fr10L
672 fldws -16(0,%r30),%fr10R
673 xmpyu %fr10L,%fr10R,%fr8
674 fstws %fr8R,-16(0,%r30)
677 fldws -16(0,%r30),%fr10R
679 xmpyu %fr10L,%fr10R,%fr8
680 fstws %fr8R,-16(0,%r30)
681 extru %r19,15,16,%r20
685 comclr,<<= %r19,%r4,0
687 comb,<<= %r20,%r3,L$0074
692 addib,= -1,%r6,L$0064
708 ldwm -128(0,%r30),%r8