Minor constification.
[openssl.git] / crypto / bn / asm / f.s
1         # Don't even think of reading this code 
2         # It was automatically generated by bn-586.pl 
3         # Which is a perl program used to generate the alpha assember. 
4         # eric <eay@cryptsoft.com> 
5
6  # DEC Alpha assember
7  # Generated from perl scripts contains in SSLeay
8         .file   1 "bn-586.s"
9         .set noat
10         .text
11         .align 3
12         .globl bn_mul_words
13         .ent bn_mul_words
14 bn_mul_words:
15 bn_mul_words..ng:
16         .frame $30,0,$26,0
17         .prologue 0
18
19         subq    $18,    4,      $18
20         bis     $31,    $31,    $0
21         br      $100
22         blt     $18,    $100
23         ldq     $1,     0($17)
24         ldq     $2,     0($16)
25 $101:
26         ldq     $3,     0($17)
27         mulq    $3,     $19,    $4
28         addq    $17,    8,      $17
29         umulh   $3,     $19,    $5
30         addq    $4,     $0,     $4
31         addq    $16,    8,      $16
32         subq    $18,    1,      $18
33         cmpult  $4,     $0,     $0
34         stq     $4,     -8($16)
35         addq    $5,     $0,     $0
36         bgt     $18,    $101
37         ret     $31,($26),1
38 $100:
39         addq    $18,    4,      $18
40         bgt     $18,    $101
41 $102:
42         ret     $31,($26),1
43         .end bn_mul_words
44         .text
45         .align 3
46         .globl bn_sqr_words
47         .ent bn_sqr_words
48 bn_sqr_words:
49 bn_sqr_words..ng:
50         .frame $30,0,$26,0
51         .prologue 0
52
53         subq    $18,    4,      $18
54         bis     $31,    $31,    $0
55         br      $103
56         blt     $18,    $103
57         ldq     $1,     0($17)
58         ldq     $2,     0($16)
59 $104:
60         ldq     $3,     0($17)
61         mulq    $3,     $3,     $4
62         addq    $17,    8,      $17
63         addq    $16,    16,     $16
64         subq    $18,    1,      $18
65         umulh   $3,     $3,     $5
66         stq     $4,     -16($16)
67         stq     $5,     -8($16)
68         bgt     $18,    $104
69         ret     $31,($26),1
70 $103:
71         addq    $18,    4,      $18
72         bgt     $18,    $104
73 $105:
74         ret     $31,($26),1
75         .end bn_sqr_words
76         .text
77         .align 3
78         .globl bn_mul_add_words
79         .ent bn_mul_add_words
80 bn_mul_add_words:
81 bn_mul_add_words..ng:
82         .frame $30,0,$26,0
83         .prologue 0
84
85         subq    $18,    4,      $18
86         bis     $31,    $31,    $0
87         br      $106
88         blt     $18,    $106
89         ldq     $1,     0($17)
90         ldq     $2,     0($16)
91 $107:
92         ldq     $3,     0($17)
93         ldq     $4,     0($16)
94         mulq    $3,     $19,    $5
95         subq    $18,    1,      $18
96         addq    $17,    8,      $17
97         umulh   $3,     $19,    $6
98         addq    $4,     $5,     $4
99         addq    $16,    8,      $16
100         cmpult  $4,     $5,     $7
101         addq    $4,     $0,     $4
102         addq    $6,     $7,     $6
103         cmpult  $4,     $0,     $0
104         stq     $4,     -8($16)
105         addq    $6,     $0,     $0
106         bgt     $18,    $107
107         ret     $31,($26),1
108 $106:
109         addq    $18,    4,      $18
110         bgt     $18,    $107
111 $108:
112         ret     $31,($26),1
113         .end bn_mul_add_words
114         .text
115         .align 3
116         .globl bn_add_words
117         .ent bn_add_words
118 bn_add_words:
119 bn_add_words..ng:
120         .frame $30,0,$26,0
121         .prologue 0
122
123         subq    $19,    4,      $19
124         bis     $31,    $31,    $0
125         br      $109
126         blt     $19,    $109
127         ldq     $1,     0($17)
128         ldq     $2,     0($18)
129 $110:
130         ldq     $3,     8($17)
131         ldq     $4,     8($18)
132         ldq     $5,     16($17)
133         ldq     $6,     16($18)
134         ldq     $7,     24($17)
135         ldq     $8,     24($18)
136         addq    $1,     $2,     $22
137         cmpult  $22,    $2,     $23
138         addq    $22,    $0,     $22
139         cmpult  $22,    $0,     $0
140         addq    $0,     $23,    $0
141         addq    $3,     $4,     $25
142         cmpult  $25,    $4,     $24
143         addq    $25,    $0,     $25
144         cmpult  $25,    $0,     $0
145         addq    $0,     $24,    $0
146         addq    $5,     $6,     $28
147         cmpult  $28,    $6,     $27
148         addq    $28,    $0,     $28
149         cmpult  $28,    $0,     $0
150         addq    $0,     $27,    $0
151         addq    $7,     $8,     $20
152         cmpult  $20,    $8,     $21
153         addq    $20,    $0,     $20
154         cmpult  $20,    $0,     $0
155         addq    $0,     $21,    $0
156         stq     $22,    0($16)
157         stq     $25,    0($16)
158         stq     $28,    0($16)
159         stq     $20,    0($16)
160         subq    $19,    4,      $19
161         addq    $17,    32,     $17
162         addq    $18,    32,     $18
163         addq    $16,    32,     $16
164         blt     $19,    $109
165         ldq     $1,     0($17)
166         ldq     $2,     0($18)
167         br      $110
168 $111:
169         ldq     $1,     0($17)
170         ldq     $2,     0($18)
171         addq    $1,     $2,     $3
172         cmpult  $3,     $2,     $23
173         addq    $3,     $0,     $3
174         cmpult  $3,     $0,     $0
175         addq    $0,     $23,    $0
176         stq     $3,     0($16)
177         addq    $17,    8,      $17
178         addq    $18,    8,      $18
179         addq    $16,    8,      $16
180         subq    $19,    1,      $19
181         bgt     $19,    $111
182         ret     $31,($26),1
183 $109:
184         addq    $19,    4,      $19
185         bgt     $19,    $111
186 $112:
187         ret     $31,($26),1
188         .end bn_add_words
189         .text
190         .align 3
191         .globl bn_sub_words
192         .ent bn_sub_words
193 bn_sub_words:
194 bn_sub_words..ng:
195         .frame $30,0,$26,0
196         .prologue 0
197
198         subq    $19,    4,      $19
199         bis     $31,    $31,    $0
200         blt     $19,    $113
201         ldq     $1,     0($17)
202         ldq     $2,     0($18)
203 $114:
204         ldq     $3,     8($17)
205         cmpult  $1,     $2,     $4
206         ldq     $5,     8($18)
207         subq    $1,     $2,     $1
208         ldq     $6,     16($17)
209         cmpult  $1,     $0,     $2
210         ldq     $7,     16($18)
211         subq    $1,     $0,     $23
212         ldq     $8,     24($17)
213         addq    $2,     $4,     $0
214         cmpult  $3,     $5,     $24
215         subq    $3,     $5,     $3
216         ldq     $22,    24($18)
217         cmpult  $3,     $0,     $5
218         subq    $3,     $0,     $25
219         addq    $5,     $24,    $0
220         cmpult  $6,     $7,     $27
221         subq    $6,     $7,     $6
222         stq     $23,    0($16)
223         cmpult  $6,     $0,     $7
224         subq    $6,     $0,     $28
225         addq    $7,     $27,    $0
226         cmpult  $8,     $22,    $21
227         subq    $8,     $22,    $8
228         stq     $25,    8($16)
229         cmpult  $8,     $0,     $22
230         subq    $8,     $0,     $20
231         addq    $22,    $21,    $0
232         stq     $28,    16($16)
233         subq    $19,    4,      $19
234         stq     $20,    24($16)
235         addq    $17,    32,     $17
236         addq    $18,    32,     $18
237         addq    $16,    32,     $16
238         blt     $19,    $113
239         ldq     $1,     0($17)
240         ldq     $2,     0($18)
241         br      $114
242 $115:
243         ldq     $1,     0($17)
244         ldq     $2,     0($18)
245         cmpult  $1,     $2,     $27
246         subq    $1,     $2,     $1
247         cmpult  $1,     $0,     $2
248         subq    $1,     $0,     $1
249         stq     $1,     0($16)
250         addq    $2,     $27,    $0
251         addq    $17,    8,      $17
252         addq    $18,    8,      $18
253         addq    $16,    8,      $16
254         subq    $19,    1,      $19
255         bgt     $19,    $115
256         ret     $31,($26),1
257 $113:
258         addq    $19,    4,      $19
259         bgt     $19,    $115
260 $116:
261         ret     $31,($26),1
262         .end bn_sub_words
263  #
264  # What follows was taken directly from the C compiler with a few
265  # hacks to redo the lables.
266  #
267 .text
268         .align 3
269         .globl bn_div64
270         .ent bn_div64
271 bn_div64:
272         ldgp $29,0($27)
273 bn_div64..ng:
274         lda $30,-48($30)
275         .frame $30,48,$26,0
276         stq $26,0($30)
277         stq $9,8($30)
278         stq $10,16($30)
279         stq $11,24($30)
280         stq $12,32($30)
281         stq $13,40($30)
282         .mask 0x4003e00,-48
283         .prologue 1
284         bis $16,$16,$9
285         bis $17,$17,$10
286         bis $18,$18,$11
287         bis $31,$31,$13
288         bis $31,2,$12
289         bne $11,$9119
290         lda $0,-1
291         br $31,$9136
292         .align 4
293 $9119:
294         bis $11,$11,$16
295         jsr $26,BN_num_bits_word
296         ldgp $29,0($26)
297         subq $0,64,$1
298         beq $1,$9120
299         bis $31,1,$1
300         sll $1,$0,$1
301         cmpule $9,$1,$1
302         bne $1,$9120
303  #      lda $16,_IO_stderr_
304  #      lda $17,$C32
305  #      bis $0,$0,$18
306  #      jsr $26,fprintf
307  #      ldgp $29,0($26)
308         jsr $26,abort
309         ldgp $29,0($26)
310         .align 4
311 $9120:
312         bis $31,64,$3
313         cmpult $9,$11,$2
314         subq $3,$0,$1
315         addl $1,$31,$0
316         subq $9,$11,$1
317         cmoveq $2,$1,$9
318         beq $0,$9122
319         zapnot $0,15,$2
320         subq $3,$0,$1
321         sll $11,$2,$11
322         sll $9,$2,$3
323         srl $10,$1,$1
324         sll $10,$2,$10
325         bis $3,$1,$9
326 $9122:
327         srl $11,32,$5
328         zapnot $11,15,$6
329         lda $7,-1
330         .align 5
331 $9123:
332         srl $9,32,$1
333         subq $1,$5,$1
334         bne $1,$9126
335         zapnot $7,15,$27
336         br $31,$9127
337         .align 4
338 $9126:
339         bis $9,$9,$24
340         bis $5,$5,$25
341         divqu $24,$25,$27
342 $9127:
343         srl $10,32,$4
344         .align 5
345 $9128:
346         mulq $27,$5,$1
347         subq $9,$1,$3
348         zapnot $3,240,$1
349         bne $1,$9129
350         mulq $6,$27,$2
351         sll $3,32,$1
352         addq $1,$4,$1
353         cmpule $2,$1,$2
354         bne $2,$9129
355         subq $27,1,$27
356         br $31,$9128
357         .align 4
358 $9129:
359         mulq $27,$6,$1
360         mulq $27,$5,$4
361         srl $1,32,$3
362         sll $1,32,$1
363         addq $4,$3,$4
364         cmpult $10,$1,$2
365         subq $10,$1,$10
366         addq $2,$4,$2
367         cmpult $9,$2,$1
368         bis $2,$2,$4
369         beq $1,$9134
370         addq $9,$11,$9
371         subq $27,1,$27
372 $9134:
373         subl $12,1,$12
374         subq $9,$4,$9
375         beq $12,$9124
376         sll $27,32,$13
377         sll $9,32,$2
378         srl $10,32,$1
379         sll $10,32,$10
380         bis $2,$1,$9
381         br $31,$9123
382         .align 4
383 $9124:
384         bis $13,$27,$0
385 $9136:
386         ldq $26,0($30)
387         ldq $9,8($30)
388         ldq $10,16($30)
389         ldq $11,24($30)
390         ldq $12,32($30)
391         ldq $13,40($30)
392         addq $30,48,$30
393         ret $31,($26),1
394         .end bn_div64
395         .text
396         .align 3
397         .globl bn_mul_comba8
398         .ent bn_mul_comba8
399 bn_mul_comba8:
400 bn_mul_comba8..ng:
401         .frame $30,0,$26,0
402         .prologue 0
403
404         subq    $30,    16,     $30
405         ldq     $0,     0($17)
406         ldq     $1,     0($18)
407         stq     $9,     0($30)
408         stq     $10,    8($30)
409         ldq     $2,     8($17)
410         ldq     $3,     8($18)
411         ldq     $4,     16($17)
412         ldq     $5,     16($18)
413         ldq     $6,     24($17)
414         ldq     $7,     24($18)
415         ldq     $8,     8($17)
416         ldq     $22,    8($18)
417         ldq     $23,    8($17)
418         ldq     $24,    8($18)
419         ldq     $25,    8($17)
420         ldq     $27,    8($18)
421         ldq     $28,    8($17)
422         ldq     $21,    8($18)
423         bis     $31,    $31,    $9
424         mulq    $0,     $1,     $20
425         umulh   $0,     $1,     $19
426         stq     $20,    0($16)
427         bis     $31,    $31,    $10
428         mulq    $0,     $3,     $17
429         umulh   $0,     $3,     $18
430         addq    $19,    $17,    $19
431         cmpult  $19,    $17,    $20
432         addq    $20,    $18,    $18
433         addq    $9,     $18,    $9
434         cmpult  $9,     $18,    $17
435         addq    $10,    $17,    $10
436         mulq    $2,     $1,     $20
437         umulh   $2,     $1,     $18
438         addq    $19,    $20,    $19
439         cmpult  $19,    $20,    $17
440         addq    $17,    $18,    $18
441         addq    $9,     $18,    $9
442         cmpult  $9,     $18,    $20
443         addq    $10,    $20,    $10
444         stq     $19,    8($16)
445         bis     $31,    $31,    $17
446         mulq    $0,     $5,     $18
447         umulh   $0,     $5,     $20
448         addq    $9,     $18,    $9
449         cmpult  $9,     $18,    $19
450         addq    $19,    $20,    $20
451         addq    $10,    $20,    $10
452         cmpult  $10,    $20,    $18
453         addq    $17,    $18,    $17
454         mulq    $2,     $3,     $19
455         umulh   $2,     $3,     $20
456         addq    $9,     $19,    $9
457         cmpult  $9,     $19,    $18
458         addq    $18,    $20,    $20
459         addq    $10,    $20,    $10
460         cmpult  $10,    $20,    $19
461         addq    $17,    $19,    $17
462         mulq    $4,     $1,     $18
463         umulh   $4,     $1,     $20
464         addq    $9,     $18,    $9
465         cmpult  $9,     $18,    $19
466         addq    $19,    $20,    $20
467         addq    $10,    $20,    $10
468         cmpult  $10,    $20,    $18
469         addq    $17,    $18,    $17
470         stq     $9,     16($16)
471         bis     $31,    $31,    $19
472         mulq    $0,     $7,     $20
473         umulh   $0,     $7,     $18
474         addq    $10,    $20,    $10
475         cmpult  $10,    $20,    $9
476         addq    $9,     $18,    $18
477         addq    $17,    $18,    $17
478         cmpult  $17,    $18,    $20
479         addq    $19,    $20,    $19
480         mulq    $2,     $5,     $9
481         umulh   $2,     $5,     $18
482         addq    $10,    $9,     $10
483         cmpult  $10,    $9,     $20
484         addq    $20,    $18,    $18
485         addq    $17,    $18,    $17
486         cmpult  $17,    $18,    $9
487         addq    $19,    $9,     $19
488         mulq    $4,     $3,     $20
489         umulh   $4,     $3,     $18
490         addq    $10,    $20,    $10
491         cmpult  $10,    $20,    $9
492         addq    $9,     $18,    $18
493         addq    $17,    $18,    $17
494         cmpult  $17,    $18,    $20
495         addq    $19,    $20,    $19
496         mulq    $6,     $1,     $9
497         umulh   $6,     $1,     $18
498         addq    $10,    $9,     $10
499         cmpult  $10,    $9,     $20
500         addq    $20,    $18,    $18
501         addq    $17,    $18,    $17
502         cmpult  $17,    $18,    $9
503         addq    $19,    $9,     $19
504         stq     $10,    24($16)
505         bis     $31,    $31,    $20
506         mulq    $0,     $22,    $18
507         umulh   $0,     $22,    $9
508         addq    $17,    $18,    $17
509         cmpult  $17,    $18,    $10
510         addq    $10,    $9,     $9
511         addq    $19,    $9,     $19
512         cmpult  $19,    $9,     $18
513         addq    $20,    $18,    $20
514         mulq    $2,     $7,     $10
515         umulh   $2,     $7,     $9
516         addq    $17,    $10,    $17
517         cmpult  $17,    $10,    $18
518         addq    $18,    $9,     $9
519         addq    $19,    $9,     $19
520         cmpult  $19,    $9,     $10
521         addq    $20,    $10,    $20
522         mulq    $4,     $5,     $18
523         umulh   $4,     $5,     $9
524         addq    $17,    $18,    $17
525         cmpult  $17,    $18,    $10
526         addq    $10,    $9,     $9
527         addq    $19,    $9,     $19
528         cmpult  $19,    $9,     $18
529         addq    $20,    $18,    $20
530         mulq    $6,     $3,     $10
531         umulh   $6,     $3,     $9
532         addq    $17,    $10,    $17
533         cmpult  $17,    $10,    $18
534         addq    $18,    $9,     $9
535         addq    $19,    $9,     $19
536         cmpult  $19,    $9,     $10
537         addq    $20,    $10,    $20
538         mulq    $8,     $1,     $18
539         umulh   $8,     $1,     $9
540         addq    $17,    $18,    $17
541         cmpult  $17,    $18,    $10
542         addq    $10,    $9,     $9
543         addq    $19,    $9,     $19
544         cmpult  $19,    $9,     $18
545         addq    $20,    $18,    $20
546         stq     $17,    32($16)
547         bis     $31,    $31,    $10
548         mulq    $0,     $24,    $9
549         umulh   $0,     $24,    $18
550         addq    $19,    $9,     $19
551         cmpult  $19,    $9,     $17
552         addq    $17,    $18,    $18
553         addq    $20,    $18,    $20
554         cmpult  $20,    $18,    $9
555         addq    $10,    $9,     $10
556         mulq    $2,     $22,    $17
557         umulh   $2,     $22,    $18
558         addq    $19,    $17,    $19
559         cmpult  $19,    $17,    $9
560         addq    $9,     $18,    $18
561         addq    $20,    $18,    $20
562         cmpult  $20,    $18,    $17
563         addq    $10,    $17,    $10
564         mulq    $4,     $7,     $9
565         umulh   $4,     $7,     $18
566         addq    $19,    $9,     $19
567         cmpult  $19,    $9,     $17
568         addq    $17,    $18,    $18
569         addq    $20,    $18,    $20
570         cmpult  $20,    $18,    $9
571         addq    $10,    $9,     $10
572         mulq    $6,     $5,     $17
573         umulh   $6,     $5,     $18
574         addq    $19,    $17,    $19
575         cmpult  $19,    $17,    $9
576         addq    $9,     $18,    $18
577         addq    $20,    $18,    $20
578         cmpult  $20,    $18,    $17
579         addq    $10,    $17,    $10
580         mulq    $8,     $3,     $9
581         umulh   $8,     $3,     $18
582         addq    $19,    $9,     $19
583         cmpult  $19,    $9,     $17
584         addq    $17,    $18,    $18
585         addq    $20,    $18,    $20
586         cmpult  $20,    $18,    $9
587         addq    $10,    $9,     $10
588         mulq    $23,    $1,     $17
589         umulh   $23,    $1,     $18
590         addq    $19,    $17,    $19
591         cmpult  $19,    $17,    $9
592         addq    $9,     $18,    $18
593         addq    $20,    $18,    $20
594         cmpult  $20,    $18,    $17
595         addq    $10,    $17,    $10
596         stq     $19,    40($16)
597         bis     $31,    $31,    $9
598         mulq    $0,     $27,    $18
599         umulh   $0,     $27,    $17
600         addq    $20,    $18,    $20
601         cmpult  $20,    $18,    $19
602         addq    $19,    $17,    $17
603         addq    $10,    $17,    $10
604         cmpult  $10,    $17,    $18
605         addq    $9,     $18,    $9
606         mulq    $2,     $24,    $19
607         umulh   $2,     $24,    $17
608         addq    $20,    $19,    $20
609         cmpult  $20,    $19,    $18
610         addq    $18,    $17,    $17
611         addq    $10,    $17,    $10
612         cmpult  $10,    $17,    $19
613         addq    $9,     $19,    $9
614         mulq    $4,     $22,    $18
615         umulh   $4,     $22,    $17
616         addq    $20,    $18,    $20
617         cmpult  $20,    $18,    $19
618         addq    $19,    $17,    $17
619         addq    $10,    $17,    $10
620         cmpult  $10,    $17,    $18
621         addq    $9,     $18,    $9
622         mulq    $6,     $7,     $19
623         umulh   $6,     $7,     $17
624         addq    $20,    $19,    $20
625         cmpult  $20,    $19,    $18
626         addq    $18,    $17,    $17
627         addq    $10,    $17,    $10
628         cmpult  $10,    $17,    $19
629         addq    $9,     $19,    $9
630         mulq    $8,     $5,     $18
631         umulh   $8,     $5,     $17
632         addq    $20,    $18,    $20
633         cmpult  $20,    $18,    $19
634         addq    $19,    $17,    $17
635         addq    $10,    $17,    $10
636         cmpult  $10,    $17,    $18
637         addq    $9,     $18,    $9
638         mulq    $23,    $3,     $19
639         umulh   $23,    $3,     $17
640         addq    $20,    $19,    $20
641         cmpult  $20,    $19,    $18
642         addq    $18,    $17,    $17
643         addq    $10,    $17,    $10
644         cmpult  $10,    $17,    $19
645         addq    $9,     $19,    $9
646         mulq    $25,    $1,     $18
647         umulh   $25,    $1,     $17
648         addq    $20,    $18,    $20
649         cmpult  $20,    $18,    $19
650         addq    $19,    $17,    $17
651         addq    $10,    $17,    $10
652         cmpult  $10,    $17,    $18
653         addq    $9,     $18,    $9
654         stq     $20,    48($16)
655         bis     $31,    $31,    $19
656         mulq    $0,     $21,    $17
657         umulh   $0,     $21,    $18
658         addq    $10,    $17,    $10
659         cmpult  $10,    $17,    $20
660         addq    $20,    $18,    $18
661         addq    $9,     $18,    $9
662         cmpult  $9,     $18,    $17
663         addq    $19,    $17,    $19
664         mulq    $2,     $27,    $20
665         umulh   $2,     $27,    $18
666         addq    $10,    $20,    $10
667         cmpult  $10,    $20,    $17
668         addq    $17,    $18,    $18
669         addq    $9,     $18,    $9
670         cmpult  $9,     $18,    $0
671         addq    $19,    $0,     $19
672         mulq    $4,     $24,    $20
673         umulh   $4,     $24,    $17
674         addq    $10,    $20,    $10
675         cmpult  $10,    $20,    $18
676         addq    $18,    $17,    $17
677         addq    $9,     $17,    $9
678         cmpult  $9,     $17,    $0
679         addq    $19,    $0,     $19
680         mulq    $6,     $22,    $20
681         umulh   $6,     $22,    $18
682         addq    $10,    $20,    $10
683         cmpult  $10,    $20,    $17
684         addq    $17,    $18,    $18
685         addq    $9,     $18,    $9
686         cmpult  $9,     $18,    $0
687         addq    $19,    $0,     $19
688         mulq    $8,     $7,     $20
689         umulh   $8,     $7,     $17
690         addq    $10,    $20,    $10
691         cmpult  $10,    $20,    $18
692         addq    $18,    $17,    $17
693         addq    $9,     $17,    $9
694         cmpult  $9,     $17,    $0
695         addq    $19,    $0,     $19
696         mulq    $23,    $5,     $20
697         umulh   $23,    $5,     $18
698         addq    $10,    $20,    $10
699         cmpult  $10,    $20,    $17
700         addq    $17,    $18,    $18
701         addq    $9,     $18,    $9
702         cmpult  $9,     $18,    $0
703         addq    $19,    $0,     $19
704         mulq    $25,    $3,     $20
705         umulh   $25,    $3,     $17
706         addq    $10,    $20,    $10
707         cmpult  $10,    $20,    $18
708         addq    $18,    $17,    $17
709         addq    $9,     $17,    $9
710         cmpult  $9,     $17,    $0
711         addq    $19,    $0,     $19
712         mulq    $28,    $1,     $20
713         umulh   $28,    $1,     $18
714         addq    $10,    $20,    $10
715         cmpult  $10,    $20,    $17
716         addq    $17,    $18,    $18
717         addq    $9,     $18,    $9
718         cmpult  $9,     $18,    $0
719         addq    $19,    $0,     $19
720         stq     $10,    56($16)
721         bis     $31,    $31,    $20
722         mulq    $2,     $21,    $17
723         umulh   $2,     $21,    $18
724         addq    $9,     $17,    $9
725         cmpult  $9,     $17,    $0
726         addq    $0,     $18,    $18
727         addq    $19,    $18,    $19
728         cmpult  $19,    $18,    $1
729         addq    $20,    $1,     $20
730         mulq    $4,     $27,    $10
731         umulh   $4,     $27,    $17
732         addq    $9,     $10,    $9
733         cmpult  $9,     $10,    $0
734         addq    $0,     $17,    $17
735         addq    $19,    $17,    $19
736         cmpult  $19,    $17,    $18
737         addq    $20,    $18,    $20
738         mulq    $6,     $24,    $1
739         umulh   $6,     $24,    $2
740         addq    $9,     $1,     $9
741         cmpult  $9,     $1,     $10
742         addq    $10,    $2,     $2
743         addq    $19,    $2,     $19
744         cmpult  $19,    $2,     $0
745         addq    $20,    $0,     $20
746         mulq    $8,     $22,    $17
747         umulh   $8,     $22,    $18
748         addq    $9,     $17,    $9
749         cmpult  $9,     $17,    $1
750         addq    $1,     $18,    $18
751         addq    $19,    $18,    $19
752         cmpult  $19,    $18,    $10
753         addq    $20,    $10,    $20
754         mulq    $23,    $7,     $2
755         umulh   $23,    $7,     $0
756         addq    $9,     $2,     $9
757         cmpult  $9,     $2,     $17
758         addq    $17,    $0,     $0
759         addq    $19,    $0,     $19
760         cmpult  $19,    $0,     $1
761         addq    $20,    $1,     $20
762         mulq    $25,    $5,     $18
763         umulh   $25,    $5,     $10
764         addq    $9,     $18,    $9
765         cmpult  $9,     $18,    $2
766         addq    $2,     $10,    $10
767         addq    $19,    $10,    $19
768         cmpult  $19,    $10,    $17
769         addq    $20,    $17,    $20
770         mulq    $28,    $3,     $0
771         umulh   $28,    $3,     $1
772         addq    $9,     $0,     $9
773         cmpult  $9,     $0,     $18
774         addq    $18,    $1,     $1
775         addq    $19,    $1,     $19
776         cmpult  $19,    $1,     $2
777         addq    $20,    $2,     $20
778         stq     $9,     64($16)
779         bis     $31,    $31,    $10
780         mulq    $4,     $21,    $17
781         umulh   $4,     $21,    $0
782         addq    $19,    $17,    $19
783         cmpult  $19,    $17,    $18
784         addq    $18,    $0,     $0
785         addq    $20,    $0,     $20
786         cmpult  $20,    $0,     $1
787         addq    $10,    $1,     $10
788         mulq    $6,     $27,    $2
789         umulh   $6,     $27,    $3
790         addq    $19,    $2,     $19
791         cmpult  $19,    $2,     $9
792         addq    $9,     $3,     $3
793         addq    $20,    $3,     $20
794         cmpult  $20,    $3,     $17
795         addq    $10,    $17,    $10
796         mulq    $8,     $24,    $18
797         umulh   $8,     $24,    $0
798         addq    $19,    $18,    $19
799         cmpult  $19,    $18,    $1
800         addq    $1,     $0,     $0
801         addq    $20,    $0,     $20
802         cmpult  $20,    $0,     $4
803         addq    $10,    $4,     $10
804         mulq    $23,    $22,    $2
805         umulh   $23,    $22,    $9
806         addq    $19,    $2,     $19
807         cmpult  $19,    $2,     $3
808         addq    $3,     $9,     $9
809         addq    $20,    $9,     $20
810         cmpult  $20,    $9,     $17
811         addq    $10,    $17,    $10
812         mulq    $25,    $7,     $18
813         umulh   $25,    $7,     $1
814         addq    $19,    $18,    $19
815         cmpult  $19,    $18,    $0
816         addq    $0,     $1,     $1
817         addq    $20,    $1,     $20
818         cmpult  $20,    $1,     $4
819         addq    $10,    $4,     $10
820         mulq    $28,    $5,     $2
821         umulh   $28,    $5,     $3
822         addq    $19,    $2,     $19
823         cmpult  $19,    $2,     $9
824         addq    $9,     $3,     $3
825         addq    $20,    $3,     $20
826         cmpult  $20,    $3,     $17
827         addq    $10,    $17,    $10
828         stq     $19,    72($16)
829         bis     $31,    $31,    $18
830         mulq    $6,     $21,    $0
831         umulh   $6,     $21,    $1
832         addq    $20,    $0,     $20
833         cmpult  $20,    $0,     $4
834         addq    $4,     $1,     $1
835         addq    $10,    $1,     $10
836         cmpult  $10,    $1,     $2
837         addq    $18,    $2,     $18
838         mulq    $8,     $27,    $9
839         umulh   $8,     $27,    $3
840         addq    $20,    $9,     $20
841         cmpult  $20,    $9,     $17
842         addq    $17,    $3,     $3
843         addq    $10,    $3,     $10
844         cmpult  $10,    $3,     $5
845         addq    $18,    $5,     $18
846         mulq    $23,    $24,    $19
847         umulh   $23,    $24,    $0
848         addq    $20,    $19,    $20
849         cmpult  $20,    $19,    $4
850         addq    $4,     $0,     $0
851         addq    $10,    $0,     $10
852         cmpult  $10,    $0,     $1
853         addq    $18,    $1,     $18
854         mulq    $25,    $22,    $2
855         umulh   $25,    $22,    $6
856         addq    $20,    $2,     $20
857         cmpult  $20,    $2,     $9
858         addq    $9,     $6,     $6
859         addq    $10,    $6,     $10
860         cmpult  $10,    $6,     $17
861         addq    $18,    $17,    $18
862         mulq    $28,    $7,     $3
863         umulh   $28,    $7,     $5
864         addq    $20,    $3,     $20
865         cmpult  $20,    $3,     $19
866         addq    $19,    $5,     $5
867         addq    $10,    $5,     $10
868         cmpult  $10,    $5,     $4
869         addq    $18,    $4,     $18
870         stq     $20,    80($16)
871         bis     $31,    $31,    $0
872         mulq    $8,     $21,    $1
873         umulh   $8,     $21,    $2
874         addq    $10,    $1,     $10
875         cmpult  $10,    $1,     $9
876         addq    $9,     $2,     $2
877         addq    $18,    $2,     $18
878         cmpult  $18,    $2,     $6
879         addq    $0,     $6,     $0
880         mulq    $23,    $27,    $17
881         umulh   $23,    $27,    $3
882         addq    $10,    $17,    $10
883         cmpult  $10,    $17,    $19
884         addq    $19,    $3,     $3
885         addq    $18,    $3,     $18
886         cmpult  $18,    $3,     $5
887         addq    $0,     $5,     $0
888         mulq    $25,    $24,    $4
889         umulh   $25,    $24,    $7
890         addq    $10,    $4,     $10
891         cmpult  $10,    $4,     $20
892         addq    $20,    $7,     $7
893         addq    $18,    $7,     $18
894         cmpult  $18,    $7,     $1
895         addq    $0,     $1,     $0
896         mulq    $28,    $22,    $9
897         umulh   $28,    $22,    $2
898         addq    $10,    $9,     $10
899         cmpult  $10,    $9,     $6
900         addq    $6,     $2,     $2
901         addq    $18,    $2,     $18
902         cmpult  $18,    $2,     $8
903         addq    $0,     $8,     $0
904         stq     $10,    88($16)
905         bis     $31,    $31,    $17
906         mulq    $23,    $21,    $19
907         umulh   $23,    $21,    $3
908         addq    $18,    $19,    $18
909         cmpult  $18,    $19,    $5
910         addq    $5,     $3,     $3
911         addq    $0,     $3,     $0
912         cmpult  $0,     $3,     $4
913         addq    $17,    $4,     $17
914         mulq    $25,    $27,    $20
915         umulh   $25,    $27,    $7
916         addq    $18,    $20,    $18
917         cmpult  $18,    $20,    $1
918         addq    $1,     $7,     $7
919         addq    $0,     $7,     $0
920         cmpult  $0,     $7,     $9
921         addq    $17,    $9,     $17
922         mulq    $28,    $24,    $6
923         umulh   $28,    $24,    $2
924         addq    $18,    $6,     $18
925         cmpult  $18,    $6,     $8
926         addq    $8,     $2,     $2
927         addq    $0,     $2,     $0
928         cmpult  $0,     $2,     $22
929         addq    $17,    $22,    $17
930         stq     $18,    96($16)
931         bis     $31,    $31,    $10
932         mulq    $25,    $21,    $19
933         umulh   $25,    $21,    $5
934         addq    $0,     $19,    $0
935         cmpult  $0,     $19,    $3
936         addq    $3,     $5,     $5
937         addq    $17,    $5,     $17
938         cmpult  $17,    $5,     $4
939         addq    $10,    $4,     $10
940         mulq    $28,    $27,    $23
941         umulh   $28,    $27,    $20
942         addq    $0,     $23,    $0
943         cmpult  $0,     $23,    $1
944         addq    $1,     $20,    $20
945         addq    $17,    $20,    $17
946         cmpult  $17,    $20,    $7
947         addq    $10,    $7,     $10
948         stq     $0,     104($16)
949         bis     $31,    $31,    $9
950         mulq    $28,    $21,    $6
951         umulh   $28,    $21,    $8
952         addq    $17,    $6,     $17
953         cmpult  $17,    $6,     $2
954         addq    $2,     $8,     $8
955         addq    $10,    $8,     $10
956         cmpult  $10,    $8,     $22
957         addq    $9,     $22,    $9
958         stq     $17,    112($16)
959         stq     $10,    120($16)
960         ldq     $9,     0($30)
961         ldq     $10,    8($30)
962         addq    $30,    16,     $30
963         ret     $31,($26),1
964         .end bn_mul_comba8
965         .text
966         .align 3
967         .globl bn_mul_comba4
968         .ent bn_mul_comba4
969 bn_mul_comba4:
970 bn_mul_comba4..ng:
971         .frame $30,0,$26,0
972         .prologue 0
973
974         ldq     $0,     0($17)
975         ldq     $1,     0($18)
976         ldq     $2,     8($17)
977         ldq     $3,     8($18)
978         mulq    $0,     $1,     $4
979         ldq     $5,     16($17)
980         ldq     $6,     16($18)
981         umulh   $0,     $1,     $7
982         ldq     $8,     24($17)
983         ldq     $22,    24($18)
984         mulq    $0,     $3,     $23
985         stq     $4,     0($16)
986         bis     $31,    $31,    $24
987         mulq    $2,     $1,     $28
988         bis     $31,    $31,    $25
989         bis     $31,    $31,    
990         addq    $24,    $7,     $24
991         umulh   $0,     $3,     $21
992         cmpult  $24,    $7,     $20
993         addq    $24,    $23,    $24
994         addq    $25,    $20,    $25
995         umulh   $2,     $1,     $19
996         cmpult  $24,    $23,    $17
997         addq    $24,    $28,    $24
998         addq    $27,    $17,    $27
999         mulq    $0,     $6,     $18
1000         cmpult  $24,    $28,    $4
1001         addq    $25,    $4,     $25
1002         stq     $24,    8($16)
1003         addq    $25,    $27,    $24
1004         bis     $31,    $31,    $25
1005         addq    $24,    $21,    $24
1006         bis     $31,    $31,    $27
1007         mulq    $2,     $3,     $7
1008         cmpult  $24,    $21,    $20
1009         addq    $24,    $19,    $24
1010         addq    $25,    $20,    $25
1011         mulq    $5,     $1,     $23
1012         cmpult  $24,    $19,    $17
1013         addq    $24,    $7,     $24
1014         addq    $27,    $17,    $27
1015         umulh   $0,     $6,     $28
1016         cmpult  $24,    $18,    $4
1017         addq    $24,    $7,     $24
1018         addq    $25,    $4,     $25
1019         umulh   $2,     $3,     $21
1020         cmpult  $24,    $7,     $20
1021         addq    $24,    $23,    $24
1022         addq    $27,    $20,    $27
1023         umulh   $5,     $1,     $19
1024         cmpult  $24,    $23,    $17
1025         addq    $25,    $17,    $25
1026         stq     $24,    16($16)
1027         addq    $25,    $27,    $24
1028         bis     $31,    $31,    $25
1029         addq    $24,    $28,    $24
1030         bis     $31,    $31,    $27
1031         mulq    $0,     $22,    $18
1032         cmpult  $24,    $28,    $4
1033         addq    $24,    $21,    $24
1034         addq    $25,    $4,     $25
1035         mulq    $2,     $6,     $7
1036         cmpult  $24,    $21,    $20
1037         addq    $24,    $19,    $24
1038         addq    $25,    $20,    $25
1039         mulq    $5,     $3,     $23
1040         cmpult  $24,    $19,    $17
1041         addq    $24,    $18,    $24
1042         addq    $25,    $17,    $25
1043         mulq    $8,     $1,     $28
1044         cmpult  $24,    $18,    $4
1045         addq    $24,    $7,     $24
1046         addq    $25,    $4,     $25
1047         umulh   $0,     $22,    $21
1048         cmpult  $24,    $7,     $20
1049         addq    $24,    $23,    $24
1050         addq    $25,    $20,    $25
1051         umulh   $2,     $6,     $19
1052         cmpult  $24,    $23,    $17
1053         addq    $24,    $28,    $24
1054         addq    $25,    $17,    $25
1055         umulh   $5,     $3,     $18
1056         cmpult  $24,    $28,    $4
1057         addq    $25,    $4,     $25
1058         stq     $24,    24($16)
1059         addq    $25,    $27,    $24
1060         bis     $31,    $31,    $25
1061         addq    $24,    $21,    $24
1062         bis     $31,    $31,    $27
1063         umulh   $8,     $1,     $7
1064         cmpult  $24,    $21,    $20
1065         addq    $24,    $19,    $24
1066         addq    $25,    $20,    $25
1067         mulq    $2,     $22,    $23
1068         cmpult  $24,    $19,    $17
1069         addq    $24,    $18,    $24
1070         addq    $25,    $17,    $25
1071         mulq    $5,     $6,     $28
1072         cmpult  $24,    $18,    $4
1073         addq    $24,    $7,     $24
1074         addq    $25,    $4,     $25
1075         mulq    $8,     $3,     $21
1076         cmpult  $24,    $7,     $20
1077         addq    $24,    $23,    $24
1078         addq    $25,    $20,    $25
1079         umulh   $2,     $22,    $19
1080         cmpult  $24,    $23,    $17
1081         addq    $24,    $28,    $24
1082         addq    $25,    $17,    $25
1083         umulh   $5,     $6,     $18
1084         cmpult  $24,    $28,    $4
1085         addq    $24,    $21,    $24
1086         addq    $25,    $4,     $25
1087         umulh   $8,     $3,     $7
1088         cmpult  $24,    $21,    $20
1089         addq    $25,    $20,    $25
1090         stq     $24,    32($16)
1091         addq    $25,    $27,    $24
1092         bis     $31,    $31,    $25
1093         addq    $24,    $19,    $24
1094         bis     $31,    $31,    $27
1095         mulq    $5,     $22,    $23
1096         cmpult  $24,    $19,    $17
1097         addq    $24,    $18,    $24
1098         addq    $25,    $17,    $25
1099         mulq    $8,     $6,     $28
1100         cmpult  $24,    $18,    $4
1101         addq    $24,    $7,     $24
1102         addq    $25,    $4,     $25
1103         umulh   $5,     $22,    $21
1104         cmpult  $24,    $7,     $20
1105         addq    $24,    $23,    $24
1106         addq    $25,    $20,    $25
1107         umulh   $8,     $6,     $19
1108         cmpult  $24,    $23,    $17
1109         addq    $24,    $28,    $24
1110         addq    $25,    $17,    $25
1111         mulq    $8,     $22,    $18
1112         cmpult  $24,    $28,    $4
1113         addq    $25,    $4,     $25
1114         stq     $24,    40($16)
1115         addq    $25,    $27,    $24
1116         bis     $31,    $31,    $25
1117         addq    $24,    $21,    $24
1118         bis     $31,    $31,    $27
1119         umulh   $8,     $22,    $7
1120         cmpult  $24,    $21,    $20
1121         addq    $24,    $19,    $24
1122         addq    $25,    $20,    $25
1123         cmpult  $24,    $19,    $23
1124         addq    $24,    $18,    $24
1125         addq    $25,    $23,    $25
1126         cmpult  $24,    $18,    $17
1127         addq    $25,    $17,    $25
1128         stq     $24,    48($16)
1129         addq    $25,    $27,    $24
1130         addq    $24,    $7,     $24
1131         stq     $24,    56($16)
1132         ret     $31,($26),1
1133         .end bn_mul_comba4
1134         .text
1135         .align 3
1136         .globl bn_sqr_comba4
1137         .ent bn_sqr_comba4
1138 bn_sqr_comba4:
1139 bn_sqr_comba4..ng:
1140         .frame $30,0,$26,0
1141         .prologue 0
1142
1143         ldq     $0,     0($17)
1144         ldq     $1,     8($17)
1145         ldq     $2,     16($17)
1146         ldq     $3,     24($17)
1147         bis     $31,    $31,    $6
1148         mulq    $0,     $0,     $4
1149         umulh   $0,     $0,     $5
1150         stq     $4,     0($16)
1151         bis     $31,    $31,    $4
1152         mulq    $0,     $1,     $7
1153         umulh   $0,     $1,     $8
1154         cmplt   $7,     $31,    $22
1155         cmplt   $8,     $31,    $23
1156         addq    $7,     $7,     $7
1157         addq    $8,     $8,     $8
1158         addq    $8,     $22,    $8
1159         addq    $4,     $23,    $4
1160         addq    $5,     $7,     $5
1161         addq    $6,     $8,     $6
1162         cmpult  $5,     $7,     $24
1163         cmpult  $6,     $8,     $25
1164         addq    $6,     $24,    $6
1165         addq    $4,     $25,    $4
1166         stq     $5,     8($16)
1167         bis     $31,    $31,    $5
1168         mulq    $1,     $1,     $27
1169         umulh   $1,     $1,     $28
1170         addq    $6,     $27,    $6
1171         addq    $4,     $28,    $4
1172         cmpult  $6,     $27,    $21
1173         cmpult  $4,     $28,    $20
1174         addq    $4,     $21,    $4
1175         addq    $5,     $20,    $5
1176         mulq    $2,     $0,     $19
1177         umulh   $2,     $0,     $18
1178         cmplt   $19,    $31,    $17
1179         cmplt   $18,    $31,    $22
1180         addq    $19,    $19,    $19
1181         addq    $18,    $18,    $18
1182         addq    $18,    $17,    $18
1183         addq    $5,     $22,    $5
1184         addq    $6,     $19,    $6
1185         addq    $4,     $18,    $4
1186         cmpult  $6,     $19,    $23
1187         cmpult  $4,     $18,    $7
1188         addq    $4,     $23,    $4
1189         addq    $5,     $7,     $5
1190         stq     $6,     16($16)
1191         bis     $31,    $31,    $6
1192         mulq    $3,     $0,     $8
1193         umulh   $3,     $0,     $24
1194         cmplt   $8,     $31,    $25
1195         cmplt   $24,    $31,    $27
1196         addq    $8,     $8,     $8
1197         addq    $24,    $24,    $24
1198         addq    $24,    $25,    $24
1199         addq    $6,     $27,    $6
1200         addq    $4,     $8,     $4
1201         addq    $5,     $24,    $5
1202         cmpult  $4,     $8,     $28
1203         cmpult  $5,     $24,    $21
1204         addq    $5,     $28,    $5
1205         addq    $6,     $21,    $6
1206         mulq    $2,     $1,     $20
1207         umulh   $2,     $1,     $17
1208         cmplt   $20,    $31,    $22
1209         cmplt   $17,    $31,    $19
1210         addq    $20,    $20,    $20
1211         addq    $17,    $17,    $17
1212         addq    $17,    $22,    $17
1213         addq    $6,     $19,    $6
1214         addq    $4,     $20,    $4
1215         addq    $5,     $17,    $5
1216         cmpult  $4,     $20,    $18
1217         cmpult  $5,     $17,    $23
1218         addq    $5,     $18,    $5
1219         addq    $6,     $23,    $6
1220         stq     $4,     24($16)
1221         bis     $31,    $31,    $4
1222         mulq    $2,     $2,     $7
1223         umulh   $2,     $2,     $25
1224         addq    $5,     $7,     $5
1225         addq    $6,     $25,    $6
1226         cmpult  $5,     $7,     $27
1227         cmpult  $6,     $25,    $8
1228         addq    $6,     $27,    $6
1229         addq    $4,     $8,     $4
1230         mulq    $3,     $1,     $24
1231         umulh   $3,     $1,     $28
1232         cmplt   $24,    $31,    $21
1233         cmplt   $28,    $31,    $22
1234         addq    $24,    $24,    $24
1235         addq    $28,    $28,    $28
1236         addq    $28,    $21,    $28
1237         addq    $4,     $22,    $4
1238         addq    $5,     $24,    $5
1239         addq    $6,     $28,    $6
1240         cmpult  $5,     $24,    $19
1241         cmpult  $6,     $28,    $20
1242         addq    $6,     $19,    $6
1243         addq    $4,     $20,    $4
1244         stq     $5,     32($16)
1245         bis     $31,    $31,    $5
1246         mulq    $3,     $2,     $17
1247         umulh   $3,     $2,     $18
1248         cmplt   $17,    $31,    $23
1249         cmplt   $18,    $31,    $7
1250         addq    $17,    $17,    $17
1251         addq    $18,    $18,    $18
1252         addq    $18,    $23,    $18
1253         addq    $5,     $7,     $5
1254         addq    $6,     $17,    $6
1255         addq    $4,     $18,    $4
1256         cmpult  $6,     $17,    $25
1257         cmpult  $4,     $18,    $27
1258         addq    $4,     $25,    $4
1259         addq    $5,     $27,    $5
1260         stq     $6,     40($16)
1261         bis     $31,    $31,    $6
1262         mulq    $3,     $3,     $8
1263         umulh   $3,     $3,     $21
1264         addq    $4,     $8,     $4
1265         addq    $5,     $21,    $5
1266         cmpult  $4,     $8,     $22
1267         cmpult  $5,     $21,    $24
1268         addq    $5,     $22,    $5
1269         addq    $6,     $24,    $6
1270         stq     $4,     48($16)
1271         stq     $5,     56($16)
1272         ret     $31,($26),1
1273         .end bn_sqr_comba4
1274         .text
1275         .align 3
1276         .globl bn_sqr_comba8
1277         .ent bn_sqr_comba8
1278 bn_sqr_comba8:
1279 bn_sqr_comba8..ng:
1280         .frame $30,0,$26,0
1281         .prologue 0
1282
1283         ldq     $0,     0($17)
1284         ldq     $1,     8($17)
1285         ldq     $2,     16($17)
1286         ldq     $3,     24($17)
1287         ldq     $4,     32($17)
1288         ldq     $5,     40($17)
1289         ldq     $6,     48($17)
1290         ldq     $7,     56($17)
1291         bis     $31,    $31,    $23
1292         mulq    $0,     $0,     $8
1293         umulh   $0,     $0,     $22
1294         stq     $8,     0($16)
1295         bis     $31,    $31,    $8
1296         mulq    $1,     $0,     $24
1297         umulh   $1,     $0,     $25
1298         cmplt   $24,    $31,    $27
1299         cmplt   $25,    $31,    $28
1300         addq    $24,    $24,    $24
1301         addq    $25,    $25,    $25
1302         addq    $25,    $27,    $25
1303         addq    $8,     $28,    $8
1304         addq    $22,    $24,    $22
1305         addq    $23,    $25,    $23
1306         cmpult  $22,    $24,    $21
1307         cmpult  $23,    $25,    $20
1308         addq    $23,    $21,    $23
1309         addq    $8,     $20,    $8
1310         stq     $22,    8($16)
1311         bis     $31,    $31,    $22
1312         mulq    $1,     $1,     $19
1313         umulh   $1,     $1,     $18
1314         addq    $23,    $19,    $23
1315         addq    $8,     $18,    $8
1316         cmpult  $23,    $19,    $17
1317         cmpult  $8,     $18,    $27
1318         addq    $8,     $17,    $8
1319         addq    $22,    $27,    $22
1320         mulq    $2,     $0,     $28
1321         umulh   $2,     $0,     $24
1322         cmplt   $28,    $31,    $25
1323         cmplt   $24,    $31,    $21
1324         addq    $28,    $28,    $28
1325         addq    $24,    $24,    $24
1326         addq    $24,    $25,    $24
1327         addq    $22,    $21,    $22
1328         addq    $23,    $28,    $23
1329         addq    $8,     $24,    $8
1330         cmpult  $23,    $28,    $20
1331         cmpult  $8,     $24,    $19
1332         addq    $8,     $20,    $8
1333         addq    $22,    $19,    $22
1334         stq     $23,    16($16)
1335         bis     $31,    $31,    $23
1336         mulq    $2,     $1,     $18
1337         umulh   $2,     $1,     $17
1338         cmplt   $18,    $31,    $27
1339         cmplt   $17,    $31,    $25
1340         addq    $18,    $18,    $18
1341         addq    $17,    $17,    $17
1342         addq    $17,    $27,    $17
1343         addq    $23,    $25,    $23
1344         addq    $8,     $18,    $8
1345         addq    $22,    $17,    $22
1346         cmpult  $8,     $18,    $21
1347         cmpult  $22,    $17,    $28
1348         addq    $22,    $21,    $22
1349         addq    $23,    $28,    $23
1350         mulq    $3,     $0,     $24
1351         umulh   $3,     $0,     $20
1352         cmplt   $24,    $31,    $19
1353         cmplt   $20,    $31,    $27
1354         addq    $24,    $24,    $24
1355         addq    $20,    $20,    $20
1356         addq    $20,    $19,    $20
1357         addq    $23,    $27,    $23
1358         addq    $8,     $24,    $8
1359         addq    $22,    $20,    $22
1360         cmpult  $8,     $24,    $25
1361         cmpult  $22,    $20,    $18
1362         addq    $22,    $25,    $22
1363         addq    $23,    $18,    $23
1364         stq     $8,     24($16)
1365         bis     $31,    $31,    $8
1366         mulq    $2,     $2,     $17
1367         umulh   $2,     $2,     $21
1368         addq    $22,    $17,    $22
1369         addq    $23,    $21,    $23
1370         cmpult  $22,    $17,    $28
1371         cmpult  $23,    $21,    $19
1372         addq    $23,    $28,    $23
1373         addq    $8,     $19,    $8
1374         mulq    $3,     $1,     $27
1375         umulh   $3,     $1,     $24
1376         cmplt   $27,    $31,    $20
1377         cmplt   $24,    $31,    $25
1378         addq    $27,    $27,    $27
1379         addq    $24,    $24,    $24
1380         addq    $24,    $20,    $24
1381         addq    $8,     $25,    $8
1382         addq    $22,    $27,    $22
1383         addq    $23,    $24,    $23
1384         cmpult  $22,    $27,    $18
1385         cmpult  $23,    $24,    $17
1386         addq    $23,    $18,    $23
1387         addq    $8,     $17,    $8
1388         mulq    $4,     $0,     $21
1389         umulh   $4,     $0,     $28
1390         cmplt   $21,    $31,    $19
1391         cmplt   $28,    $31,    $20
1392         addq    $21,    $21,    $21
1393         addq    $28,    $28,    $28
1394         addq    $28,    $19,    $28
1395         addq    $8,     $20,    $8
1396         addq    $22,    $21,    $22
1397         addq    $23,    $28,    $23
1398         cmpult  $22,    $21,    $25
1399         cmpult  $23,    $28,    $27
1400         addq    $23,    $25,    $23
1401         addq    $8,     $27,    $8
1402         stq     $22,    32($16)
1403         bis     $31,    $31,    $22
1404         mulq    $3,     $2,     $24
1405         umulh   $3,     $2,     $18
1406         cmplt   $24,    $31,    $17
1407         cmplt   $18,    $31,    $19
1408         addq    $24,    $24,    $24
1409         addq    $18,    $18,    $18
1410         addq    $18,    $17,    $18
1411         addq    $22,    $19,    $22
1412         addq    $23,    $24,    $23
1413         addq    $8,     $18,    $8
1414         cmpult  $23,    $24,    $20
1415         cmpult  $8,     $18,    $21
1416         addq    $8,     $20,    $8
1417         addq    $22,    $21,    $22
1418         mulq    $4,     $1,     $28
1419         umulh   $4,     $1,     $25
1420         cmplt   $28,    $31,    $27
1421         cmplt   $25,    $31,    $17
1422         addq    $28,    $28,    $28
1423         addq    $25,    $25,    $25
1424         addq    $25,    $27,    $25
1425         addq    $22,    $17,    $22
1426         addq    $23,    $28,    $23
1427         addq    $8,     $25,    $8
1428         cmpult  $23,    $28,    $19
1429         cmpult  $8,     $25,    $24
1430         addq    $8,     $19,    $8
1431         addq    $22,    $24,    $22
1432         mulq    $5,     $0,     $18
1433         umulh   $5,     $0,     $20
1434         cmplt   $18,    $31,    $21
1435         cmplt   $20,    $31,    $27
1436         addq    $18,    $18,    $18
1437         addq    $20,    $20,    $20
1438         addq    $20,    $21,    $20
1439         addq    $22,    $27,    $22
1440         addq    $23,    $18,    $23
1441         addq    $8,     $20,    $8
1442         cmpult  $23,    $18,    $17
1443         cmpult  $8,     $20,    $28
1444         addq    $8,     $17,    $8
1445         addq    $22,    $28,    $22
1446         stq     $23,    40($16)
1447         bis     $31,    $31,    $23
1448         mulq    $3,     $3,     $25
1449         umulh   $3,     $3,     $19
1450         addq    $8,     $25,    $8
1451         addq    $22,    $19,    $22
1452         cmpult  $8,     $25,    $24
1453         cmpult  $22,    $19,    $21
1454         addq    $22,    $24,    $22
1455         addq    $23,    $21,    $23
1456         mulq    $4,     $2,     $27
1457         umulh   $4,     $2,     $18
1458         cmplt   $27,    $31,    $20
1459         cmplt   $18,    $31,    $17
1460         addq    $27,    $27,    $27
1461         addq    $18,    $18,    $18
1462         addq    $18,    $20,    $18
1463         addq    $23,    $17,    $23
1464         addq    $8,     $27,    $8
1465         addq    $22,    $18,    $22
1466         cmpult  $8,     $27,    $28
1467         cmpult  $22,    $18,    $25
1468         addq    $22,    $28,    $22
1469         addq    $23,    $25,    $23
1470         mulq    $5,     $1,     $19
1471         umulh   $5,     $1,     $24
1472         cmplt   $19,    $31,    $21
1473         cmplt   $24,    $31,    $20
1474         addq    $19,    $19,    $19
1475         addq    $24,    $24,    $24
1476         addq    $24,    $21,    $24
1477         addq    $23,    $20,    $23
1478         addq    $8,     $19,    $8
1479         addq    $22,    $24,    $22
1480         cmpult  $8,     $19,    $17
1481         cmpult  $22,    $24,    $27
1482         addq    $22,    $17,    $22
1483         addq    $23,    $27,    $23
1484         mulq    $6,     $0,     $18
1485         umulh   $6,     $0,     $28
1486         cmplt   $18,    $31,    $25
1487         cmplt   $28,    $31,    $21
1488         addq    $18,    $18,    $18
1489         addq    $28,    $28,    $28
1490         addq    $28,    $25,    $28
1491         addq    $23,    $21,    $23
1492         addq    $8,     $18,    $8
1493         addq    $22,    $28,    $22
1494         cmpult  $8,     $18,    $20
1495         cmpult  $22,    $28,    $19
1496         addq    $22,    $20,    $22
1497         addq    $23,    $19,    $23
1498         stq     $8,     48($16)
1499         bis     $31,    $31,    $8
1500         mulq    $4,     $3,     $24
1501         umulh   $4,     $3,     $17
1502         cmplt   $24,    $31,    $27
1503         cmplt   $17,    $31,    $25
1504         addq    $24,    $24,    $24
1505         addq    $17,    $17,    $17
1506         addq    $17,    $27,    $17
1507         addq    $8,     $25,    $8
1508         addq    $22,    $24,    $22
1509         addq    $23,    $17,    $23
1510         cmpult  $22,    $24,    $21
1511         cmpult  $23,    $17,    $18
1512         addq    $23,    $21,    $23
1513         addq    $8,     $18,    $8
1514         mulq    $5,     $2,     $28
1515         umulh   $5,     $2,     $20
1516         cmplt   $28,    $31,    $19
1517         cmplt   $20,    $31,    $27
1518         addq    $28,    $28,    $28
1519         addq    $20,    $20,    $20
1520         addq    $20,    $19,    $20
1521         addq    $8,     $27,    $8
1522         addq    $22,    $28,    $22
1523         addq    $23,    $20,    $23
1524         cmpult  $22,    $28,    $25
1525         cmpult  $23,    $20,    $24
1526         addq    $23,    $25,    $23
1527         addq    $8,     $24,    $8
1528         mulq    $6,     $1,     $17
1529         umulh   $6,     $1,     $21
1530         cmplt   $17,    $31,    $18
1531         cmplt   $21,    $31,    $19
1532         addq    $17,    $17,    $17
1533         addq    $21,    $21,    $21
1534         addq    $21,    $18,    $21
1535         addq    $8,     $19,    $8
1536         addq    $22,    $17,    $22
1537         addq    $23,    $21,    $23
1538         cmpult  $22,    $17,    $27
1539         cmpult  $23,    $21,    $28
1540         addq    $23,    $27,    $23
1541         addq    $8,     $28,    $8
1542         mulq    $7,     $0,     $20
1543         umulh   $7,     $0,     $25
1544         cmplt   $20,    $31,    $24
1545         cmplt   $25,    $31,    $18
1546         addq    $20,    $20,    $20
1547         addq    $25,    $25,    $25
1548         addq    $25,    $24,    $25
1549         addq    $8,     $18,    $8
1550         addq    $22,    $20,    $22
1551         addq    $23,    $25,    $23
1552         cmpult  $22,    $20,    $19
1553         cmpult  $23,    $25,    $17
1554         addq    $23,    $19,    $23
1555         addq    $8,     $17,    $8
1556         stq     $22,    56($16)
1557         bis     $31,    $31,    $22
1558         mulq    $4,     $4,     $21
1559         umulh   $4,     $4,     $27
1560         addq    $23,    $21,    $23
1561         addq    $8,     $27,    $8
1562         cmpult  $23,    $21,    $28
1563         cmpult  $8,     $27,    $24
1564         addq    $8,     $28,    $8
1565         addq    $22,    $24,    $22
1566         mulq    $5,     $3,     $18
1567         umulh   $5,     $3,     $20
1568         cmplt   $18,    $31,    $25
1569         cmplt   $20,    $31,    $19
1570         addq    $18,    $18,    $18
1571         addq    $20,    $20,    $20
1572         addq    $20,    $25,    $20
1573         addq    $22,    $19,    $22
1574         addq    $23,    $18,    $23
1575         addq    $8,     $20,    $8
1576         cmpult  $23,    $18,    $17
1577         cmpult  $8,     $20,    $21
1578         addq    $8,     $17,    $8
1579         addq    $22,    $21,    $22
1580         mulq    $6,     $2,     $27
1581         umulh   $6,     $2,     $28
1582         cmplt   $27,    $31,    $24
1583         cmplt   $28,    $31,    $25
1584         addq    $27,    $27,    $27
1585         addq    $28,    $28,    $28
1586         addq    $28,    $24,    $28
1587         addq    $22,    $25,    $22
1588         addq    $23,    $27,    $23
1589         addq    $8,     $28,    $8
1590         cmpult  $23,    $27,    $19
1591         cmpult  $8,     $28,    $18
1592         addq    $8,     $19,    $8
1593         addq    $22,    $18,    $22
1594         mulq    $7,     $1,     $20
1595         umulh   $7,     $1,     $17
1596         cmplt   $20,    $31,    $21
1597         cmplt   $17,    $31,    $24
1598         addq    $20,    $20,    $20
1599         addq    $17,    $17,    $17
1600         addq    $17,    $21,    $17
1601         addq    $22,    $24,    $22
1602         addq    $23,    $20,    $23
1603         addq    $8,     $17,    $8
1604         cmpult  $23,    $20,    $25
1605         cmpult  $8,     $17,    $27
1606         addq    $8,     $25,    $8
1607         addq    $22,    $27,    $22
1608         stq     $23,    64($16)
1609         bis     $31,    $31,    $23
1610         mulq    $5,     $4,     $28
1611         umulh   $5,     $4,     $19
1612         cmplt   $28,    $31,    $18
1613         cmplt   $19,    $31,    $21
1614         addq    $28,    $28,    $28
1615         addq    $19,    $19,    $19
1616         addq    $19,    $18,    $19
1617         addq    $23,    $21,    $23
1618         addq    $8,     $28,    $8
1619         addq    $22,    $19,    $22
1620         cmpult  $8,     $28,    $24
1621         cmpult  $22,    $19,    $20
1622         addq    $22,    $24,    $22
1623         addq    $23,    $20,    $23
1624         mulq    $6,     $3,     $17
1625         umulh   $6,     $3,     $25
1626         cmplt   $17,    $31,    $27
1627         cmplt   $25,    $31,    $18
1628         addq    $17,    $17,    $17
1629         addq    $25,    $25,    $25
1630         addq    $25,    $27,    $25
1631         addq    $23,    $18,    $23
1632         addq    $8,     $17,    $8
1633         addq    $22,    $25,    $22
1634         cmpult  $8,     $17,    $21
1635         cmpult  $22,    $25,    $28
1636         addq    $22,    $21,    $22
1637         addq    $23,    $28,    $23
1638         mulq    $7,     $2,     $19
1639         umulh   $7,     $2,     $24
1640         cmplt   $19,    $31,    $20
1641         cmplt   $24,    $31,    $27
1642         addq    $19,    $19,    $19
1643         addq    $24,    $24,    $24
1644         addq    $24,    $20,    $24
1645         addq    $23,    $27,    $23
1646         addq    $8,     $19,    $8
1647         addq    $22,    $24,    $22
1648         cmpult  $8,     $19,    $18
1649         cmpult  $22,    $24,    $17
1650         addq    $22,    $18,    $22
1651         addq    $23,    $17,    $23
1652         stq     $8,     72($16)
1653         bis     $31,    $31,    $8
1654         mulq    $5,     $5,     $25
1655         umulh   $5,     $5,     $21
1656         addq    $22,    $25,    $22
1657         addq    $23,    $21,    $23
1658         cmpult  $22,    $25,    $28
1659         cmpult  $23,    $21,    $20
1660         addq    $23,    $28,    $23
1661         addq    $8,     $20,    $8
1662         mulq    $6,     $4,     $27
1663         umulh   $6,     $4,     $19
1664         cmplt   $27,    $31,    $24
1665         cmplt   $19,    $31,    $18
1666         addq    $27,    $27,    $27
1667         addq    $19,    $19,    $19
1668         addq    $19,    $24,    $19
1669         addq    $8,     $18,    $8
1670         addq    $22,    $27,    $22
1671         addq    $23,    $19,    $23
1672         cmpult  $22,    $27,    $17
1673         cmpult  $23,    $19,    $25
1674         addq    $23,    $17,    $23
1675         addq    $8,     $25,    $8
1676         mulq    $7,     $3,     $21
1677         umulh   $7,     $3,     $28
1678         cmplt   $21,    $31,    $20
1679         cmplt   $28,    $31,    $24
1680         addq    $21,    $21,    $21
1681         addq    $28,    $28,    $28
1682         addq    $28,    $20,    $28
1683         addq    $8,     $24,    $8
1684         addq    $22,    $21,    $22
1685         addq    $23,    $28,    $23
1686         cmpult  $22,    $21,    $18
1687         cmpult  $23,    $28,    $27
1688         addq    $23,    $18,    $23
1689         addq    $8,     $27,    $8
1690         stq     $22,    80($16)
1691         bis     $31,    $31,    $22
1692         mulq    $6,     $5,     $19
1693         umulh   $6,     $5,     $17
1694         cmplt   $19,    $31,    $25
1695         cmplt   $17,    $31,    $20
1696         addq    $19,    $19,    $19
1697         addq    $17,    $17,    $17
1698         addq    $17,    $25,    $17
1699         addq    $22,    $20,    $22
1700         addq    $23,    $19,    $23
1701         addq    $8,     $17,    $8
1702         cmpult  $23,    $19,    $24
1703         cmpult  $8,     $17,    $21
1704         addq    $8,     $24,    $8
1705         addq    $22,    $21,    $22
1706         mulq    $7,     $4,     $28
1707         umulh   $7,     $4,     $18
1708         cmplt   $28,    $31,    $27
1709         cmplt   $18,    $31,    $25
1710         addq    $28,    $28,    $28
1711         addq    $18,    $18,    $18
1712         addq    $18,    $27,    $18
1713         addq    $22,    $25,    $22
1714         addq    $23,    $28,    $23
1715         addq    $8,     $18,    $8
1716         cmpult  $23,    $28,    $20
1717         cmpult  $8,     $18,    $19
1718         addq    $8,     $20,    $8
1719         addq    $22,    $19,    $22
1720         stq     $23,    88($16)
1721         bis     $31,    $31,    $23
1722         mulq    $6,     $6,     $17
1723         umulh   $6,     $6,     $24
1724         addq    $8,     $17,    $8
1725         addq    $22,    $24,    $22
1726         cmpult  $8,     $17,    $21
1727         cmpult  $22,    $24,    $27
1728         addq    $22,    $21,    $22
1729         addq    $23,    $27,    $23
1730         mulq    $7,     $5,     $25
1731         umulh   $7,     $5,     $28
1732         cmplt   $25,    $31,    $18
1733         cmplt   $28,    $31,    $20
1734         addq    $25,    $25,    $25
1735         addq    $28,    $28,    $28
1736         addq    $28,    $18,    $28
1737         addq    $23,    $20,    $23
1738         addq    $8,     $25,    $8
1739         addq    $22,    $28,    $22
1740         cmpult  $8,     $25,    $19
1741         cmpult  $22,    $28,    $17
1742         addq    $22,    $19,    $22
1743         addq    $23,    $17,    $23
1744         stq     $8,     96($16)
1745         bis     $31,    $31,    $8
1746         mulq    $7,     $6,     $24
1747         umulh   $7,     $6,     $21
1748         cmplt   $24,    $31,    $27
1749         cmplt   $21,    $31,    $18
1750         addq    $24,    $24,    $24
1751         addq    $21,    $21,    $21
1752         addq    $21,    $27,    $21
1753         addq    $8,     $18,    $8
1754         addq    $22,    $24,    $22
1755         addq    $23,    $21,    $23
1756         cmpult  $22,    $24,    $20
1757         cmpult  $23,    $21,    $25
1758         addq    $23,    $20,    $23
1759         addq    $8,     $25,    $8
1760         stq     $22,    104($16)
1761         bis     $31,    $31,    $22
1762         mulq    $7,     $7,     $28
1763         umulh   $7,     $7,     $19
1764         addq    $23,    $28,    $23
1765         addq    $8,     $19,    $8
1766         cmpult  $23,    $28,    $17
1767         cmpult  $8,     $19,    $27
1768         addq    $8,     $17,    $8
1769         addq    $22,    $27,    $22
1770         stq     $23,    112($16)
1771         stq     $8,     120($16)
1772         ret     $31,($26),1
1773         .end bn_sqr_comba8