branch on equal is beql, not beq...
[openssl.git] / crypto / bn / asm / alpha.s
1  # DEC Alpha assember
2  # The bn_div_words is actually gcc output but the other parts are hand done.
3  # Thanks to tzeruch@ceddec.com for sending me the gcc output for
4  # bn_div_words.
5  # I've gone back and re-done most of routines.
6  # The key thing to remeber for the 164 CPU is that while a
7  # multiply operation takes 8 cycles, another one can only be issued
8  # after 4 cycles have elapsed.  I've done modification to help
9  # improve this.  Also, normally, a ld instruction will not be available
10  # for about 3 cycles.
11         .file   1 "bn_asm.c"
12         .set noat
13 gcc2_compiled.:
14 __gnu_compiled_c:
15         .text
16         .align 3
17         .globl bn_mul_add_words
18         .ent bn_mul_add_words
19 bn_mul_add_words:
20 bn_mul_add_words..ng:
21         .frame $30,0,$26,0
22         .prologue 0
23         .align 5
24         subq    $18,4,$18
25         bis     $31,$31,$0
26         blt     $18,$43         # if we are -1, -2, -3 or -4 goto tail code
27         ldq     $20,0($17)      # 1 1
28         ldq     $1,0($16)       # 1 1
29         .align 3
30 $42:
31         mulq    $20,$19,$5      # 1 2 1 ######
32         ldq     $21,8($17)      # 2 1
33         ldq     $2,8($16)       # 2 1
34         umulh   $20,$19,$20     # 1 2   ######
35         ldq     $27,16($17)     # 3 1
36         ldq     $3,16($16)      # 3 1
37         mulq    $21,$19,$6      # 2 2 1 ######
38          ldq    $28,24($17)     # 4 1
39         addq    $1,$5,$1        # 1 2 2
40          ldq    $4,24($16)      # 4 1
41         umulh   $21,$19,$21     # 2 2   ######
42          cmpult $1,$5,$22       # 1 2 3 1
43         addq    $20,$22,$20     # 1 3 1
44          addq   $1,$0,$1        # 1 2 3 1
45         mulq    $27,$19,$7      # 3 2 1 ######
46          cmpult $1,$0,$0        # 1 2 3 2
47         addq    $2,$6,$2        # 2 2 2
48          addq   $20,$0,$0       # 1 3 2 
49         cmpult  $2,$6,$23       # 2 2 3 1
50          addq   $21,$23,$21     # 2 3 1
51         umulh   $27,$19,$27     # 3 2   ######
52          addq   $2,$0,$2        # 2 2 3 1
53         cmpult  $2,$0,$0        # 2 2 3 2
54          subq   $18,4,$18
55         mulq    $28,$19,$8      # 4 2 1 ######
56          addq   $21,$0,$0       # 2 3 2 
57         addq    $3,$7,$3        # 3 2 2
58          addq   $16,32,$16
59         cmpult  $3,$7,$24       # 3 2 3 1
60          stq    $1,-32($16)     # 1 2 4
61         umulh   $28,$19,$28     # 4 2   ######
62          addq   $27,$24,$27     # 3 3 1
63         addq    $3,$0,$3        # 3 2 3 1
64          stq    $2,-24($16)     # 2 2 4
65         cmpult  $3,$0,$0        # 3 2 3 2
66          stq    $3,-16($16)     # 3 2 4
67         addq    $4,$8,$4        # 4 2 2
68          addq   $27,$0,$0       # 3 3 2 
69         cmpult  $4,$8,$25       # 4 2 3 1
70          addq   $17,32,$17
71         addq    $28,$25,$28     # 4 3 1
72          addq   $4,$0,$4        # 4 2 3 1
73         cmpult  $4,$0,$0        # 4 2 3 2
74          stq    $4,-8($16)      # 4 2 4
75         addq    $28,$0,$0       # 4 3 2 
76          blt    $18,$43
77
78         ldq     $20,0($17)      # 1 1
79         ldq     $1,0($16)       # 1 1
80
81         br      $42
82
83         .align 4
84 $45:
85         ldq     $20,0($17)      # 4 1
86         ldq     $1,0($16)       # 4 1
87         mulq    $20,$19,$5      # 4 2 1
88         subq    $18,1,$18
89         addq    $16,8,$16
90         addq    $17,8,$17
91         umulh   $20,$19,$20     # 4 2
92         addq    $1,$5,$1        # 4 2 2
93         cmpult  $1,$5,$22       # 4 2 3 1
94         addq    $20,$22,$20     # 4 3 1
95         addq    $1,$0,$1        # 4 2 3 1
96         cmpult  $1,$0,$0        # 4 2 3 2
97         addq    $20,$0,$0       # 4 3 2 
98         stq     $1,-8($16)      # 4 2 4
99         bgt     $18,$45
100         ret     $31,($26),1     # else exit
101
102         .align 4
103 $43:
104         addq    $18,4,$18
105         bgt     $18,$45         # goto tail code
106         ret     $31,($26),1     # else exit
107
108         .end bn_mul_add_words
109         .align 3
110         .globl bn_mul_words
111         .ent bn_mul_words
112 bn_mul_words:
113 bn_mul_words..ng:
114         .frame $30,0,$26,0
115         .prologue 0
116         .align 5
117         subq    $18,4,$18
118         bis     $31,$31,$0
119         blt     $18,$143        # if we are -1, -2, -3 or -4 goto tail code
120         ldq     $20,0($17)      # 1 1
121         .align 3
122 $142:
123
124         mulq    $20,$19,$5      # 1 2 1 #####
125          ldq    $21,8($17)      # 2 1
126          ldq    $27,16($17)     # 3 1
127         umulh   $20,$19,$20     # 1 2   #####
128          ldq    $28,24($17)     # 4 1
129         mulq    $21,$19,$6      # 2 2 1 #####
130          addq   $5,$0,$5        # 1 2 3 1
131         subq    $18,4,$18
132          cmpult $5,$0,$0        # 1 2 3 2
133         umulh   $21,$19,$21     # 2 2   #####
134          addq   $20,$0,$0       # 1 3 2 
135         addq    $17,32,$17
136          addq   $6,$0,$6        # 2 2 3 1
137         mulq    $27,$19,$7      # 3 2 1 #####
138          cmpult $6,$0,$0        # 2 2 3 2
139         addq    $21,$0,$0       # 2 3 2 
140          addq   $16,32,$16
141         umulh   $27,$19,$27     # 3 2   #####
142          stq    $5,-32($16)     # 1 2 4
143         mulq    $28,$19,$8      # 4 2 1 #####
144          addq   $7,$0,$7        # 3 2 3 1
145         stq     $6,-24($16)     # 2 2 4
146          cmpult $7,$0,$0        # 3 2 3 2
147         umulh   $28,$19,$28     # 4 2   #####
148          addq   $27,$0,$0       # 3 3 2 
149         stq     $7,-16($16)     # 3 2 4
150          addq   $8,$0,$8        # 4 2 3 1
151         cmpult  $8,$0,$0        # 4 2 3 2
152
153         addq    $28,$0,$0       # 4 3 2 
154
155         stq     $8,-8($16)      # 4 2 4
156
157         blt     $18,$143
158
159         ldq     $20,0($17)      # 1 1
160
161         br      $142
162
163         .align 4
164 $145:
165         ldq     $20,0($17)      # 4 1
166         mulq    $20,$19,$5      # 4 2 1
167         subq    $18,1,$18
168         umulh   $20,$19,$20     # 4 2
169         addq    $5,$0,$5        # 4 2 3 1
170          addq   $16,8,$16
171         cmpult  $5,$0,$0        # 4 2 3 2
172          addq   $17,8,$17
173         addq    $20,$0,$0       # 4 3 2 
174         stq     $5,-8($16)      # 4 2 4
175
176         bgt     $18,$145
177         ret     $31,($26),1     # else exit
178
179         .align 4
180 $143:
181         addq    $18,4,$18
182         bgt     $18,$145        # goto tail code
183         ret     $31,($26),1     # else exit
184
185         .end bn_mul_words
186         .align 3
187         .globl bn_sqr_words
188         .ent bn_sqr_words
189 bn_sqr_words:
190 bn_sqr_words..ng:
191         .frame $30,0,$26,0
192         .prologue 0
193
194         subq    $18,4,$18
195         blt     $18,$543        # if we are -1, -2, -3 or -4 goto tail code
196         ldq     $20,0($17)      # 1 1
197         .align 3
198 $542:
199         mulq    $20,$20,$5              ######
200          ldq    $21,8($17)      # 1 1
201         subq    $18,4
202         umulh   $20,$20,$1              ######
203         ldq     $27,16($17)     # 1 1
204         mulq    $21,$21,$6              ######
205         ldq     $28,24($17)     # 1 1
206         stq     $5,0($16)       # r[0]
207         umulh   $21,$21,$2              ######
208         stq     $1,8($16)       # r[1]
209         mulq    $27,$27,$7              ######
210         stq     $6,16($16)      # r[0]
211         umulh   $27,$27,$3              ######
212         stq     $2,24($16)      # r[1]
213         mulq    $28,$28,$8              ######
214         stq     $7,32($16)      # r[0]
215         umulh   $28,$28,$4              ######
216         stq     $3,40($16)      # r[1]
217
218         addq    $16,64,$16
219         addq    $17,32,$17
220         stq     $8,-16($16)     # r[0]
221         stq     $4,-8($16)      # r[1]
222
223         blt     $18,$543
224         ldq     $20,0($17)      # 1 1
225         br      $542
226
227 $442:
228         ldq     $20,0($17)   # a[0]
229         mulq    $20,$20,$5  # a[0]*w low part       r2
230         addq    $16,16,$16
231         addq    $17,8,$17
232         subq    $18,1,$18
233         umulh   $20,$20,$1  # a[0]*w high part       r3
234         stq     $5,-16($16)   # r[0]
235         stq     $1,-8($16)   # r[1]
236
237         bgt     $18,$442
238         ret     $31,($26),1     # else exit
239
240         .align 4
241 $543:
242         addq    $18,4,$18
243         bgt     $18,$442        # goto tail code
244         ret     $31,($26),1     # else exit
245         .end bn_sqr_words
246
247         .align 3
248         .globl bn_add_words
249         .ent bn_add_words
250 bn_add_words:
251 bn_add_words..ng:
252         .frame $30,0,$26,0
253         .prologue 0
254
255         subq    $19,4,$19
256         bis     $31,$31,$0      # carry = 0
257         blt     $19,$900
258         ldq     $5,0($17)       # a[0]
259         ldq     $1,0($18)       # b[1]
260         .align 3
261 $901:
262         addq    $1,$5,$1        # r=a+b;
263          ldq    $6,8($17)       # a[1]
264         cmpult  $1,$5,$22       # did we overflow?
265          ldq    $2,8($18)       # b[1]
266         addq    $1,$0,$1        # c+= overflow
267          ldq    $7,16($17)      # a[2]
268         cmpult  $1,$0,$0        # overflow?
269          ldq    $3,16($18)      # b[2]
270         addq    $0,$22,$0
271          ldq    $8,24($17)      # a[3]
272         addq    $2,$6,$2        # r=a+b;
273          ldq    $4,24($18)      # b[3]
274         cmpult  $2,$6,$23       # did we overflow?
275          addq   $3,$7,$3        # r=a+b;
276         addq    $2,$0,$2        # c+= overflow
277          cmpult $3,$7,$24       # did we overflow?
278         cmpult  $2,$0,$0        # overflow?
279          addq   $4,$8,$4        # r=a+b;
280         addq    $0,$23,$0
281          cmpult $4,$8,$25       # did we overflow?
282         addq    $3,$0,$3        # c+= overflow
283          stq    $1,0($16)       # r[0]=c
284         cmpult  $3,$0,$0        # overflow?
285          stq    $2,8($16)       # r[1]=c
286         addq    $0,$24,$0
287          stq    $3,16($16)      # r[2]=c
288         addq    $4,$0,$4        # c+= overflow
289          subq   $19,4,$19       # loop--
290         cmpult  $4,$0,$0        # overflow?
291          addq   $17,32,$17      # a++
292         addq    $0,$25,$0
293          stq    $4,24($16)      # r[3]=c
294         addq    $18,32,$18      # b++
295          addq   $16,32,$16      # r++
296
297         blt     $19,$900
298          ldq    $5,0($17)       # a[0]
299         ldq     $1,0($18)       # b[1]
300          br     $901
301         .align 4
302 $945:
303         ldq     $5,0($17)       # a[0]
304          ldq    $1,0($18)       # b[1]
305         addq    $1,$5,$1        # r=a+b;
306          subq   $19,1,$19       # loop--
307         addq    $1,$0,$1        # c+= overflow
308          addq   $17,8,$17       # a++
309         cmpult  $1,$5,$22       # did we overflow?
310          cmpult $1,$0,$0        # overflow?
311         addq    $18,8,$18       # b++
312          stq    $1,0($16)       # r[0]=c
313         addq    $0,$22,$0
314          addq   $16,8,$16       # r++
315
316         bgt     $19,$945
317         ret     $31,($26),1     # else exit
318
319 $900:
320         addq    $19,4,$19
321         bgt     $19,$945        # goto tail code
322         ret     $31,($26),1     # else exit
323         .end bn_add_words
324
325  #
326  # What follows was taken directly from the C compiler with a few
327  # hacks to redo the lables.
328  #
329 .text
330         .align 3
331         .globl bn_div_words
332         .ent bn_div_words
333 bn_div_words:
334         ldgp $29,0($27)
335 bn_div_words..ng:
336         lda $30,-48($30)
337         .frame $30,48,$26,0
338         stq $26,0($30)
339         stq $9,8($30)
340         stq $10,16($30)
341         stq $11,24($30)
342         stq $12,32($30)
343         stq $13,40($30)
344         .mask 0x4003e00,-48
345         .prologue 1
346         bis $16,$16,$9
347         bis $17,$17,$10
348         bis $18,$18,$11
349         bis $31,$31,$13
350         bis $31,2,$12
351         bne $11,$119
352         lda $0,-1
353         br $31,$136
354         .align 4
355 $119:
356         bis $11,$11,$16
357         jsr $26,BN_num_bits_word
358         ldgp $29,0($26)
359         subq $0,64,$1
360         beq $1,$120
361         bis $31,1,$1
362         sll $1,$0,$1
363         cmpule $9,$1,$1
364         bne $1,$120
365  #      lda $16,_IO_stderr_
366  #      lda $17,$C32
367  #      bis $0,$0,$18
368  #      jsr $26,fprintf
369  #      ldgp $29,0($26)
370         jsr $26,abort
371         ldgp $29,0($26)
372         .align 4
373 $120:
374         bis $31,64,$3
375         cmpult $9,$11,$2
376         subq $3,$0,$1
377         addl $1,$31,$0
378         subq $9,$11,$1
379         cmoveq $2,$1,$9
380         beq $0,$122
381         zapnot $0,15,$2
382         subq $3,$0,$1
383         sll $11,$2,$11
384         sll $9,$2,$3
385         srl $10,$1,$1
386         sll $10,$2,$10
387         bis $3,$1,$9
388 $122:
389         srl $11,32,$5
390         zapnot $11,15,$6
391         lda $7,-1
392         .align 5
393 $123:
394         srl $9,32,$1
395         subq $1,$5,$1
396         bne $1,$126
397         zapnot $7,15,$27
398         br $31,$127
399         .align 4
400 $126:
401         bis $9,$9,$24
402         bis $5,$5,$25
403         divqu $24,$25,$27
404 $127:
405         srl $10,32,$4
406         .align 5
407 $128:
408         mulq $27,$5,$1
409         subq $9,$1,$3
410         zapnot $3,240,$1
411         bne $1,$129
412         mulq $6,$27,$2
413         sll $3,32,$1
414         addq $1,$4,$1
415         cmpule $2,$1,$2
416         bne $2,$129
417         subq $27,1,$27
418         br $31,$128
419         .align 4
420 $129:
421         mulq $27,$6,$1
422         mulq $27,$5,$4
423         srl $1,32,$3
424         sll $1,32,$1
425         addq $4,$3,$4
426         cmpult $10,$1,$2
427         subq $10,$1,$10
428         addq $2,$4,$2
429         cmpult $9,$2,$1
430         bis $2,$2,$4
431         beq $1,$134
432         addq $9,$11,$9
433         subq $27,1,$27
434 $134:
435         subl $12,1,$12
436         subq $9,$4,$9
437         beq $12,$124
438         sll $27,32,$13
439         sll $9,32,$2
440         srl $10,32,$1
441         sll $10,32,$10
442         bis $2,$1,$9
443         br $31,$123
444         .align 4
445 $124:
446         bis $13,$27,$0
447 $136:
448         ldq $26,0($30)
449         ldq $9,8($30)
450         ldq $10,16($30)
451         ldq $11,24($30)
452         ldq $12,32($30)
453         ldq $13,40($30)
454         addq $30,48,$30
455         ret $31,($26),1
456         .end bn_div_words
457
458         .set noat
459         .text
460         .align 3
461         .globl bn_sub_words
462         .ent bn_sub_words
463 bn_sub_words:
464 bn_sub_words..ng:
465         .frame $30,0,$26,0
466         .prologue 0
467
468         subq    $19,    4,      $19
469         bis     $31,    $31,    $0
470         blt     $19,    $100
471         ldq     $1,     0($17)
472         ldq     $2,     0($18)
473 $101:
474         ldq     $3,     8($17)
475         cmpult  $1,     $2,     $4
476         ldq     $5,     8($18)
477         subq    $1,     $2,     $1
478         ldq     $6,     16($17)
479         cmpult  $1,     $0,     $2
480         ldq     $7,     16($18)
481         subq    $1,     $0,     $23
482         ldq     $8,     24($17)
483         addq    $2,     $4,     $0
484         cmpult  $3,     $5,     $24
485         subq    $3,     $5,     $3
486         ldq     $22,    24($18)
487         cmpult  $3,     $0,     $5
488         subq    $3,     $0,     $25
489         addq    $5,     $24,    $0
490         cmpult  $6,     $7,     $27
491         subq    $6,     $7,     $6
492         stq     $23,    0($16)
493         cmpult  $6,     $0,     $7
494         subq    $6,     $0,     $28
495         addq    $7,     $27,    $0
496         cmpult  $8,     $22,    $21
497         subq    $8,     $22,    $8
498         stq     $25,    8($16)
499         cmpult  $8,     $0,     $22
500         subq    $8,     $0,     $20
501         addq    $22,    $21,    $0
502         stq     $28,    16($16)
503         subq    $19,    4,      $19
504         stq     $20,    24($16)
505         addq    $17,    32,     $17
506         addq    $18,    32,     $18
507         addq    $16,    32,     $16
508         blt     $19,    $100
509         ldq     $1,     0($17)
510         ldq     $2,     0($18)
511         br      $101
512 $102:
513         ldq     $1,     0($17)
514         ldq     $2,     0($18)
515         cmpult  $1,     $2,     $27
516         subq    $1,     $2,     $1
517         cmpult  $1,     $0,     $2
518         subq    $1,     $0,     $1
519         stq     $1,     0($16)
520         addq    $2,     $27,    $0
521         addq    $17,    8,      $17
522         addq    $18,    8,      $18
523         addq    $16,    8,      $16
524         subq    $19,    1,      $19
525         bgt     $19,    $102
526         ret     $31,($26),1
527 $100:
528         addq    $19,    4,      $19
529         bgt     $19,    $102
530 $103:
531         ret     $31,($26),1
532         .end bn_sub_words
533         .text
534         .align 3
535         .globl bn_mul_comba4
536         .ent bn_mul_comba4
537 bn_mul_comba4:
538 bn_mul_comba4..ng:
539         .frame $30,0,$26,0
540         .prologue 0
541
542         ldq     $0,     0($17)
543         ldq     $1,     0($18)
544         ldq     $2,     8($17)
545         ldq     $3,     8($18)
546         ldq     $4,     16($17)
547         ldq     $5,     16($18)
548         ldq     $6,     24($17)
549         ldq     $7,     24($18)
550         bis     $31,    $31,    $23
551         mulq    $0,     $1,     $8
552         umulh   $0,     $1,     $22
553         stq     $8,     0($16)
554         bis     $31,    $31,    $8
555         mulq    $0,     $3,     $24
556         umulh   $0,     $3,     $25
557         addq    $22,    $24,    $22
558         cmpult  $22,    $24,    $27
559         addq    $27,    $25,    $25
560         addq    $23,    $25,    $23
561         cmpult  $23,    $25,    $28
562         addq    $8,     $28,    $8
563         mulq    $2,     $1,     $21
564         umulh   $2,     $1,     $20
565         addq    $22,    $21,    $22
566         cmpult  $22,    $21,    $19
567         addq    $19,    $20,    $20
568         addq    $23,    $20,    $23
569         cmpult  $23,    $20,    $17
570         addq    $8,     $17,    $8
571         stq     $22,    8($16)
572         bis     $31,    $31,    $22
573         mulq    $2,     $3,     $18
574         umulh   $2,     $3,     $24
575         addq    $23,    $18,    $23
576         cmpult  $23,    $18,    $27
577         addq    $27,    $24,    $24
578         addq    $8,     $24,    $8
579         cmpult  $8,     $24,    $25
580         addq    $22,    $25,    $22
581         mulq    $0,     $5,     $28
582         umulh   $0,     $5,     $21
583         addq    $23,    $28,    $23
584         cmpult  $23,    $28,    $19
585         addq    $19,    $21,    $21
586         addq    $8,     $21,    $8
587         cmpult  $8,     $21,    $20
588         addq    $22,    $20,    $22
589         mulq    $4,     $1,     $17
590         umulh   $4,     $1,     $18
591         addq    $23,    $17,    $23
592         cmpult  $23,    $17,    $27
593         addq    $27,    $18,    $18
594         addq    $8,     $18,    $8
595         cmpult  $8,     $18,    $24
596         addq    $22,    $24,    $22
597         stq     $23,    16($16)
598         bis     $31,    $31,    $23
599         mulq    $0,     $7,     $25
600         umulh   $0,     $7,     $28
601         addq    $8,     $25,    $8
602         cmpult  $8,     $25,    $19
603         addq    $19,    $28,    $28
604         addq    $22,    $28,    $22
605         cmpult  $22,    $28,    $21
606         addq    $23,    $21,    $23
607         mulq    $2,     $5,     $20
608         umulh   $2,     $5,     $17
609         addq    $8,     $20,    $8
610         cmpult  $8,     $20,    $27
611         addq    $27,    $17,    $17
612         addq    $22,    $17,    $22
613         cmpult  $22,    $17,    $18
614         addq    $23,    $18,    $23
615         mulq    $4,     $3,     $24
616         umulh   $4,     $3,     $25
617         addq    $8,     $24,    $8
618         cmpult  $8,     $24,    $19
619         addq    $19,    $25,    $25
620         addq    $22,    $25,    $22
621         cmpult  $22,    $25,    $28
622         addq    $23,    $28,    $23
623         mulq    $6,     $1,     $21
624         umulh   $6,     $1,     $0
625         addq    $8,     $21,    $8
626         cmpult  $8,     $21,    $20
627         addq    $20,    $0,     $0
628         addq    $22,    $0,     $22
629         cmpult  $22,    $0,     $27
630         addq    $23,    $27,    $23
631         stq     $8,     24($16)
632         bis     $31,    $31,    $8
633         mulq    $2,     $7,     $17
634         umulh   $2,     $7,     $18
635         addq    $22,    $17,    $22
636         cmpult  $22,    $17,    $24
637         addq    $24,    $18,    $18
638         addq    $23,    $18,    $23
639         cmpult  $23,    $18,    $19
640         addq    $8,     $19,    $8
641         mulq    $4,     $5,     $25
642         umulh   $4,     $5,     $28
643         addq    $22,    $25,    $22
644         cmpult  $22,    $25,    $21
645         addq    $21,    $28,    $28
646         addq    $23,    $28,    $23
647         cmpult  $23,    $28,    $20
648         addq    $8,     $20,    $8
649         mulq    $6,     $3,     $0
650         umulh   $6,     $3,     $27
651         addq    $22,    $0,     $22
652         cmpult  $22,    $0,     $1
653         addq    $1,     $27,    $27
654         addq    $23,    $27,    $23
655         cmpult  $23,    $27,    $17
656         addq    $8,     $17,    $8
657         stq     $22,    32($16)
658         bis     $31,    $31,    $22
659         mulq    $4,     $7,     $24
660         umulh   $4,     $7,     $18
661         addq    $23,    $24,    $23
662         cmpult  $23,    $24,    $19
663         addq    $19,    $18,    $18
664         addq    $8,     $18,    $8
665         cmpult  $8,     $18,    $2
666         addq    $22,    $2,     $22
667         mulq    $6,     $5,     $25
668         umulh   $6,     $5,     $21
669         addq    $23,    $25,    $23
670         cmpult  $23,    $25,    $28
671         addq    $28,    $21,    $21
672         addq    $8,     $21,    $8
673         cmpult  $8,     $21,    $20
674         addq    $22,    $20,    $22
675         stq     $23,    40($16)
676         bis     $31,    $31,    $23
677         mulq    $6,     $7,     $0
678         umulh   $6,     $7,     $1
679         addq    $8,     $0,     $8
680         cmpult  $8,     $0,     $27
681         addq    $27,    $1,     $1
682         addq    $22,    $1,     $22
683         cmpult  $22,    $1,     $17
684         addq    $23,    $17,    $23
685         stq     $8,     48($16)
686         stq     $22,    56($16)
687         ret     $31,($26),1
688         .end bn_mul_comba4
689         .text
690         .align 3
691         .globl bn_mul_comba8
692         .ent bn_mul_comba8
693 bn_mul_comba8:
694 bn_mul_comba8..ng:
695         .frame $30,0,$26,0
696         .prologue 0
697         ldq     $1,     0($17)
698         ldq     $2,     0($18)
699         zapnot  $1,     15,     $7
700         srl     $2,     32,     $8
701         mulq    $8,     $7,     $22
702         srl     $1,     32,     $6
703         zapnot  $2,     15,     $5
704         mulq    $5,     $6,     $4
705         mulq    $7,     $5,     $24
706         addq    $22,    $4,     $22
707         cmpult  $22,    $4,     $1
708         mulq    $6,     $8,     $3
709         beq     $1,     $173
710         bis     $31,    1,      $1
711         sll     $1,     32,     $1
712         addq    $3,     $1,     $3
713 $173:
714         sll     $22,    32,     $4
715         addq    $24,    $4,     $24
716         stq     $24,    0($16)
717         ldq     $2,     0($17)
718         ldq     $1,     8($18)
719         zapnot  $2,     15,     $7
720         srl     $1,     32,     $8
721         mulq    $8,     $7,     $25
722         zapnot  $1,     15,     $5
723         mulq    $7,     $5,     $0
724         srl     $2,     32,     $6
725         mulq    $5,     $6,     $23
726         mulq    $6,     $8,     $6
727         srl     $22,    32,     $1
728         cmpult  $24,    $4,     $2
729         addq    $3,     $1,     $3
730         addq    $2,     $3,     $22
731         addq    $25,    $23,    $25
732         cmpult  $25,    $23,    $1
733         bis     $31,    1,      $2
734         beq     $1,     $177
735         sll     $2,     32,     $1
736         addq    $6,     $1,     $6
737 $177:
738         sll     $25,    32,     $23
739         ldq     $1,     0($18)
740         addq    $0,     $23,    $0
741         bis     $0,     $0,     $7
742         ldq     $3,     8($17)
743         addq    $22,    $7,     $22
744         srl     $1,     32,     $8
745         cmpult  $22,    $7,     $4
746         zapnot  $3,     15,     $7
747         mulq    $8,     $7,     $28
748         zapnot  $1,     15,     $5
749         mulq    $7,     $5,     $21
750         srl     $25,    32,     $1
751         cmpult  $0,     $23,    $2
752         addq    $6,     $1,     $6
753         addq    $2,     $6,     $6
754         addq    $4,     $6,     $24
755         srl     $3,     32,     $6
756         mulq    $5,     $6,     $2
757         mulq    $6,     $8,     $6
758         addq    $28,    $2,     $28
759         cmpult  $28,    $2,     $1
760         bis     $31,    1,      $2
761         beq     $1,     $181
762         sll     $2,     32,     $1
763         addq    $6,     $1,     $6
764 $181:
765         sll     $28,    32,     $2
766         addq    $21,    $2,     $21
767         bis     $21,    $21,    $7
768         addq    $22,    $7,     $22
769         stq     $22,    8($16)
770         ldq     $3,     16($17)
771         ldq     $1,     0($18)
772         cmpult  $22,    $7,     $4
773         zapnot  $3,     15,     $7
774         srl     $1,     32,     $8
775         mulq    $8,     $7,     $22
776         zapnot  $1,     15,     $5
777         mulq    $7,     $5,     $20
778         srl     $28,    32,     $1
779         cmpult  $21,    $2,     $2
780         addq    $6,     $1,     $6
781         addq    $2,     $6,     $6
782         addq    $4,     $6,     $6
783         addq    $24,    $6,     $24
784         cmpult  $24,    $6,     $23
785         srl     $3,     32,     $6
786         mulq    $5,     $6,     $2
787         mulq    $6,     $8,     $6
788         addq    $22,    $2,     $22
789         cmpult  $22,    $2,     $1
790         bis     $31,    1,      $2
791         beq     $1,     $185
792         sll     $2,     32,     $1
793         addq    $6,     $1,     $6
794 $185:
795         sll     $22,    32,     $2
796         ldq     $1,     8($18)
797         addq    $20,    $2,     $20
798         bis     $20,    $20,    $7
799         ldq     $4,     8($17)
800         addq    $24,    $7,     $24
801         srl     $1,     32,     $8
802         cmpult  $24,    $7,     $3
803         zapnot  $4,     15,     $7
804         mulq    $8,     $7,     $25
805         zapnot  $1,     15,     $5
806         mulq    $7,     $5,     $0
807         srl     $22,    32,     $1
808         cmpult  $20,    $2,     $2
809         addq    $6,     $1,     $6
810         addq    $2,     $6,     $6
811         addq    $3,     $6,     $6
812         addq    $23,    $6,     $23
813         cmpult  $23,    $6,     $22
814         srl     $4,     32,     $6
815         mulq    $5,     $6,     $5
816         bis     $31,    1,      $21
817         addq    $25,    $5,     $25
818         cmpult  $25,    $5,     $1
819         mulq    $6,     $8,     $6
820         beq     $1,     $189
821         sll     $21,    32,     $1
822         addq    $6,     $1,     $6
823 $189:
824         sll     $25,    32,     $5
825         ldq     $2,     16($18)
826         addq    $0,     $5,     $0
827         bis     $0,     $0,     $7
828         ldq     $4,     0($17)
829         addq    $24,    $7,     $24
830         srl     $2,     32,     $8
831         cmpult  $24,    $7,     $3
832         zapnot  $4,     15,     $7
833         mulq    $8,     $7,     $28
834         srl     $25,    32,     $1
835         addq    $6,     $1,     $6
836         cmpult  $0,     $5,     $1
837         zapnot  $2,     15,     $5
838         addq    $1,     $6,     $6
839         addq    $3,     $6,     $6
840         addq    $23,    $6,     $23
841         cmpult  $23,    $6,     $1
842         srl     $4,     32,     $6
843         mulq    $5,     $6,     $25
844         mulq    $7,     $5,     $2
845         addq    $1,     $22,    $22
846         addq    $28,    $25,    $28
847         cmpult  $28,    $25,    $1
848         mulq    $6,     $8,     $6
849         beq     $1,     $193
850         sll     $21,    32,     $1
851         addq    $6,     $1,     $6
852 $193:
853         sll     $28,    32,     $25
854         addq    $2,     $25,    $2
855         bis     $2,     $2,     $7
856         addq    $24,    $7,     $24
857         stq     $24,    16($16)
858         ldq     $4,     0($17)
859         ldq     $5,     24($18)
860         cmpult  $24,    $7,     $3
861         zapnot  $4,     15,     $7
862         srl     $5,     32,     $8
863         mulq    $8,     $7,     $0
864         srl     $28,    32,     $1
865         cmpult  $2,     $25,    $2
866         addq    $6,     $1,     $6
867         addq    $2,     $6,     $6
868         addq    $3,     $6,     $6
869         addq    $23,    $6,     $23
870         cmpult  $23,    $6,     $1
871         srl     $4,     32,     $6
872         zapnot  $5,     15,     $5
873         mulq    $5,     $6,     $24
874         mulq    $7,     $5,     $2
875         addq    $1,     $22,    $22
876         addq    $0,     $24,    $0
877         cmpult  $0,     $24,    $1
878         mulq    $6,     $8,     $6
879         beq     $1,     $197
880         sll     $21,    32,     $1
881         addq    $6,     $1,     $6
882 $197:
883         sll     $0,     32,     $24
884         ldq     $1,     16($18)
885         addq    $2,     $24,    $2
886         bis     $2,     $2,     $7
887         ldq     $4,     8($17)
888         addq    $23,    $7,     $23
889         srl     $1,     32,     $8
890         cmpult  $23,    $7,     $3
891         zapnot  $4,     15,     $7
892         mulq    $8,     $7,     $25
893         zapnot  $1,     15,     $5
894         mulq    $7,     $5,     $21
895         srl     $0,     32,     $1
896         cmpult  $2,     $24,    $2
897         addq    $6,     $1,     $6
898         addq    $2,     $6,     $6
899         addq    $3,     $6,     $6
900         addq    $22,    $6,     $22
901         cmpult  $22,    $6,     $24
902         srl     $4,     32,     $6
903         mulq    $5,     $6,     $5
904         bis     $31,    1,      $20
905         addq    $25,    $5,     $25
906         cmpult  $25,    $5,     $1
907         mulq    $6,     $8,     $6
908         beq     $1,     $201
909         sll     $20,    32,     $1
910         addq    $6,     $1,     $6
911 $201:
912         sll     $25,    32,     $5
913         ldq     $2,     8($18)
914         addq    $21,    $5,     $21
915         bis     $21,    $21,    $7
916         ldq     $4,     16($17)
917         addq    $23,    $7,     $23
918         srl     $2,     32,     $8
919         cmpult  $23,    $7,     $3
920         zapnot  $4,     15,     $7
921         mulq    $8,     $7,     $28
922         srl     $25,    32,     $1
923         addq    $6,     $1,     $6
924         cmpult  $21,    $5,     $1
925         zapnot  $2,     15,     $5
926         addq    $1,     $6,     $6
927         addq    $3,     $6,     $6
928         addq    $22,    $6,     $22
929         cmpult  $22,    $6,     $1
930         srl     $4,     32,     $6
931         mulq    $5,     $6,     $25
932         mulq    $7,     $5,     $5
933         addq    $1,     $24,    $24
934         addq    $28,    $25,    $28
935         cmpult  $28,    $25,    $1
936         mulq    $6,     $8,     $6
937         beq     $1,     $205
938         sll     $20,    32,     $1
939         addq    $6,     $1,     $6
940 $205:
941         sll     $28,    32,     $25
942         ldq     $2,     0($18)
943         addq    $5,     $25,    $5
944         bis     $5,     $5,     $7
945         ldq     $4,     24($17)
946         addq    $23,    $7,     $23
947         srl     $2,     32,     $8
948         cmpult  $23,    $7,     $3
949         zapnot  $4,     15,     $7
950         mulq    $8,     $7,     $0
951         srl     $28,    32,     $1
952         addq    $6,     $1,     $6
953         cmpult  $5,     $25,    $1
954         zapnot  $2,     15,     $5
955         addq    $1,     $6,     $6
956         addq    $3,     $6,     $6
957         addq    $22,    $6,     $22
958         cmpult  $22,    $6,     $1
959         srl     $4,     32,     $6
960         mulq    $5,     $6,     $25
961         mulq    $7,     $5,     $2
962         addq    $1,     $24,    $24
963         addq    $0,     $25,    $0
964         cmpult  $0,     $25,    $1
965         mulq    $6,     $8,     $6
966         beq     $1,     $209
967         sll     $20,    32,     $1
968         addq    $6,     $1,     $6
969 $209:
970         sll     $0,     32,     $25
971         addq    $2,     $25,    $2
972         bis     $2,     $2,     $7
973         addq    $23,    $7,     $23
974         stq     $23,    24($16)
975         ldq     $4,     32($17)
976         ldq     $5,     0($18)
977         cmpult  $23,    $7,     $3
978         zapnot  $4,     15,     $7
979         srl     $5,     32,     $8
980         mulq    $8,     $7,     $28
981         srl     $0,     32,     $1
982         cmpult  $2,     $25,    $2
983         addq    $6,     $1,     $6
984         addq    $2,     $6,     $6
985         addq    $3,     $6,     $6
986         addq    $22,    $6,     $22
987         cmpult  $22,    $6,     $1
988         srl     $4,     32,     $6
989         zapnot  $5,     15,     $5
990         mulq    $5,     $6,     $23
991         mulq    $7,     $5,     $2
992         addq    $1,     $24,    $24
993         addq    $28,    $23,    $28
994         cmpult  $28,    $23,    $1
995         mulq    $6,     $8,     $6
996         beq     $1,     $213
997         sll     $20,    32,     $1
998         addq    $6,     $1,     $6
999 $213:
1000         sll     $28,    32,     $23
1001         ldq     $1,     8($18)
1002         addq    $2,     $23,    $2
1003         bis     $2,     $2,     $7
1004         ldq     $4,     24($17)
1005         addq    $22,    $7,     $22
1006         srl     $1,     32,     $8
1007         cmpult  $22,    $7,     $3
1008         zapnot  $4,     15,     $7
1009         mulq    $8,     $7,     $25
1010         zapnot  $1,     15,     $5
1011         mulq    $7,     $5,     $0
1012         srl     $28,    32,     $1
1013         cmpult  $2,     $23,    $2
1014         addq    $6,     $1,     $6
1015         addq    $2,     $6,     $6
1016         addq    $3,     $6,     $6
1017         addq    $24,    $6,     $24
1018         cmpult  $24,    $6,     $23
1019         srl     $4,     32,     $6
1020         mulq    $5,     $6,     $5
1021         bis     $31,    1,      $21
1022         addq    $25,    $5,     $25
1023         cmpult  $25,    $5,     $1
1024         mulq    $6,     $8,     $6
1025         beq     $1,     $217
1026         sll     $21,    32,     $1
1027         addq    $6,     $1,     $6
1028 $217:
1029         sll     $25,    32,     $5
1030         ldq     $2,     16($18)
1031         addq    $0,     $5,     $0
1032         bis     $0,     $0,     $7
1033         ldq     $4,     16($17)
1034         addq    $22,    $7,     $22
1035         srl     $2,     32,     $8
1036         cmpult  $22,    $7,     $3
1037         zapnot  $4,     15,     $7
1038         mulq    $8,     $7,     $28
1039         srl     $25,    32,     $1
1040         addq    $6,     $1,     $6
1041         cmpult  $0,     $5,     $1
1042         zapnot  $2,     15,     $5
1043         addq    $1,     $6,     $6
1044         addq    $3,     $6,     $6
1045         addq    $24,    $6,     $24
1046         cmpult  $24,    $6,     $1
1047         srl     $4,     32,     $6
1048         mulq    $5,     $6,     $25
1049         mulq    $7,     $5,     $5
1050         addq    $1,     $23,    $23
1051         addq    $28,    $25,    $28
1052         cmpult  $28,    $25,    $1
1053         mulq    $6,     $8,     $6
1054         beq     $1,     $221
1055         sll     $21,    32,     $1
1056         addq    $6,     $1,     $6
1057 $221:
1058         sll     $28,    32,     $25
1059         ldq     $2,     24($18)
1060         addq    $5,     $25,    $5
1061         bis     $5,     $5,     $7
1062         ldq     $4,     8($17)
1063         addq    $22,    $7,     $22
1064         srl     $2,     32,     $8
1065         cmpult  $22,    $7,     $3
1066         zapnot  $4,     15,     $7
1067         mulq    $8,     $7,     $0
1068         srl     $28,    32,     $1
1069         addq    $6,     $1,     $6
1070         cmpult  $5,     $25,    $1
1071         zapnot  $2,     15,     $5
1072         addq    $1,     $6,     $6
1073         addq    $3,     $6,     $6
1074         addq    $24,    $6,     $24
1075         cmpult  $24,    $6,     $1
1076         srl     $4,     32,     $6
1077         mulq    $5,     $6,     $25
1078         mulq    $7,     $5,     $5
1079         addq    $1,     $23,    $23
1080         addq    $0,     $25,    $0
1081         cmpult  $0,     $25,    $1
1082         mulq    $6,     $8,     $6
1083         beq     $1,     $225
1084         sll     $21,    32,     $1
1085         addq    $6,     $1,     $6
1086 $225:
1087         sll     $0,     32,     $25
1088         ldq     $2,     32($18)
1089         addq    $5,     $25,    $5
1090         bis     $5,     $5,     $7
1091         ldq     $4,     0($17)
1092         addq    $22,    $7,     $22
1093         srl     $2,     32,     $8
1094         cmpult  $22,    $7,     $3
1095         zapnot  $4,     15,     $7
1096         mulq    $8,     $7,     $28
1097         srl     $0,     32,     $1
1098         addq    $6,     $1,     $6
1099         cmpult  $5,     $25,    $1
1100         zapnot  $2,     15,     $5
1101         addq    $1,     $6,     $6
1102         addq    $3,     $6,     $6
1103         addq    $24,    $6,     $24
1104         cmpult  $24,    $6,     $1
1105         srl     $4,     32,     $6
1106         mulq    $5,     $6,     $25
1107         mulq    $7,     $5,     $2
1108         addq    $1,     $23,    $23
1109         addq    $28,    $25,    $28
1110         cmpult  $28,    $25,    $1
1111         mulq    $6,     $8,     $6
1112         beq     $1,     $229
1113         sll     $21,    32,     $1
1114         addq    $6,     $1,     $6
1115 $229:
1116         sll     $28,    32,     $25
1117         addq    $2,     $25,    $2
1118         bis     $2,     $2,     $7
1119         addq    $22,    $7,     $22
1120         stq     $22,    32($16)
1121         ldq     $4,     0($17)
1122         ldq     $5,     40($18)
1123         cmpult  $22,    $7,     $3
1124         zapnot  $4,     15,     $7
1125         srl     $5,     32,     $8
1126         mulq    $8,     $7,     $0
1127         srl     $28,    32,     $1
1128         cmpult  $2,     $25,    $2
1129         addq    $6,     $1,     $6
1130         addq    $2,     $6,     $6
1131         addq    $3,     $6,     $6
1132         addq    $24,    $6,     $24
1133         cmpult  $24,    $6,     $1
1134         srl     $4,     32,     $6
1135         zapnot  $5,     15,     $5
1136         mulq    $5,     $6,     $22
1137         mulq    $7,     $5,     $2
1138         addq    $1,     $23,    $23
1139         addq    $0,     $22,    $0
1140         cmpult  $0,     $22,    $1
1141         mulq    $6,     $8,     $6
1142         beq     $1,     $233
1143         sll     $21,    32,     $1
1144         addq    $6,     $1,     $6
1145 $233:
1146         sll     $0,     32,     $22
1147         ldq     $1,     32($18)
1148         addq    $2,     $22,    $2
1149         bis     $2,     $2,     $7
1150         ldq     $4,     8($17)
1151         addq    $24,    $7,     $24
1152         srl     $1,     32,     $8
1153         cmpult  $24,    $7,     $3
1154         zapnot  $4,     15,     $7
1155         mulq    $8,     $7,     $25
1156         zapnot  $1,     15,     $5
1157         mulq    $7,     $5,     $21
1158         srl     $0,     32,     $1
1159         cmpult  $2,     $22,    $2
1160         addq    $6,     $1,     $6
1161         addq    $2,     $6,     $6
1162         addq    $3,     $6,     $6
1163         addq    $23,    $6,     $23
1164         cmpult  $23,    $6,     $22
1165         srl     $4,     32,     $6
1166         mulq    $5,     $6,     $5
1167         bis     $31,    1,      $20
1168         addq    $25,    $5,     $25
1169         cmpult  $25,    $5,     $1
1170         mulq    $6,     $8,     $6
1171         beq     $1,     $237
1172         sll     $20,    32,     $1
1173         addq    $6,     $1,     $6
1174 $237:
1175         sll     $25,    32,     $5
1176         ldq     $2,     24($18)
1177         addq    $21,    $5,     $21
1178         bis     $21,    $21,    $7
1179         ldq     $4,     16($17)
1180         addq    $24,    $7,     $24
1181         srl     $2,     32,     $8
1182         cmpult  $24,    $7,     $3
1183         zapnot  $4,     15,     $7
1184         mulq    $8,     $7,     $28
1185         srl     $25,    32,     $1
1186         addq    $6,     $1,     $6
1187         cmpult  $21,    $5,     $1
1188         zapnot  $2,     15,     $5
1189         addq    $1,     $6,     $6
1190         addq    $3,     $6,     $6
1191         addq    $23,    $6,     $23
1192         cmpult  $23,    $6,     $1
1193         srl     $4,     32,     $6
1194         mulq    $5,     $6,     $25
1195         mulq    $7,     $5,     $5
1196         addq    $1,     $22,    $22
1197         addq    $28,    $25,    $28
1198         cmpult  $28,    $25,    $1
1199         mulq    $6,     $8,     $6
1200         beq     $1,     $241
1201         sll     $20,    32,     $1
1202         addq    $6,     $1,     $6
1203 $241:
1204         sll     $28,    32,     $25
1205         ldq     $2,     16($18)
1206         addq    $5,     $25,    $5
1207         bis     $5,     $5,     $7
1208         ldq     $4,     24($17)
1209         addq    $24,    $7,     $24
1210         srl     $2,     32,     $8
1211         cmpult  $24,    $7,     $3
1212         zapnot  $4,     15,     $7
1213         mulq    $8,     $7,     $0
1214         srl     $28,    32,     $1
1215         addq    $6,     $1,     $6
1216         cmpult  $5,     $25,    $1
1217         zapnot  $2,     15,     $5
1218         addq    $1,     $6,     $6
1219         addq    $3,     $6,     $6
1220         addq    $23,    $6,     $23
1221         cmpult  $23,    $6,     $1
1222         srl     $4,     32,     $6
1223         mulq    $5,     $6,     $25
1224         mulq    $7,     $5,     $5
1225         addq    $1,     $22,    $22
1226         addq    $0,     $25,    $0
1227         cmpult  $0,     $25,    $1
1228         mulq    $6,     $8,     $6
1229         beq     $1,     $245
1230         sll     $20,    32,     $1
1231         addq    $6,     $1,     $6
1232 $245:
1233         sll     $0,     32,     $25
1234         ldq     $2,     8($18)
1235         addq    $5,     $25,    $5
1236         bis     $5,     $5,     $7
1237         ldq     $4,     32($17)
1238         addq    $24,    $7,     $24
1239         srl     $2,     32,     $8
1240         cmpult  $24,    $7,     $3
1241         zapnot  $4,     15,     $7
1242         mulq    $8,     $7,     $28
1243         srl     $0,     32,     $1
1244         addq    $6,     $1,     $6
1245         cmpult  $5,     $25,    $1
1246         zapnot  $2,     15,     $5
1247         addq    $1,     $6,     $6
1248         addq    $3,     $6,     $6
1249         addq    $23,    $6,     $23
1250         cmpult  $23,    $6,     $1
1251         srl     $4,     32,     $6
1252         mulq    $5,     $6,     $25
1253         mulq    $7,     $5,     $5
1254         addq    $1,     $22,    $22
1255         addq    $28,    $25,    $28
1256         cmpult  $28,    $25,    $1
1257         mulq    $6,     $8,     $6
1258         beq     $1,     $249
1259         sll     $20,    32,     $1
1260         addq    $6,     $1,     $6
1261 $249:
1262         sll     $28,    32,     $25
1263         ldq     $2,     0($18)
1264         addq    $5,     $25,    $5
1265         bis     $5,     $5,     $7
1266         ldq     $4,     40($17)
1267         addq    $24,    $7,     $24
1268         srl     $2,     32,     $8
1269         cmpult  $24,    $7,     $3
1270         zapnot  $4,     15,     $7
1271         mulq    $8,     $7,     $0
1272         srl     $28,    32,     $1
1273         addq    $6,     $1,     $6
1274         cmpult  $5,     $25,    $1
1275         zapnot  $2,     15,     $5
1276         addq    $1,     $6,     $6
1277         addq    $3,     $6,     $6
1278         addq    $23,    $6,     $23
1279         cmpult  $23,    $6,     $1
1280         srl     $4,     32,     $6
1281         mulq    $5,     $6,     $25
1282         mulq    $7,     $5,     $2
1283         addq    $1,     $22,    $22
1284         addq    $0,     $25,    $0
1285         cmpult  $0,     $25,    $1
1286         mulq    $6,     $8,     $6
1287         beq     $1,     $253
1288         sll     $20,    32,     $1
1289         addq    $6,     $1,     $6
1290 $253:
1291         sll     $0,     32,     $25
1292         addq    $2,     $25,    $2
1293         bis     $2,     $2,     $7
1294         addq    $24,    $7,     $24
1295         stq     $24,    40($16)
1296         ldq     $4,     48($17)
1297         ldq     $5,     0($18)
1298         cmpult  $24,    $7,     $3
1299         zapnot  $4,     15,     $7
1300         srl     $5,     32,     $8
1301         mulq    $8,     $7,     $28
1302         srl     $0,     32,     $1
1303         cmpult  $2,     $25,    $2
1304         addq    $6,     $1,     $6
1305         addq    $2,     $6,     $6
1306         addq    $3,     $6,     $6
1307         addq    $23,    $6,     $23
1308         cmpult  $23,    $6,     $1
1309         srl     $4,     32,     $6
1310         zapnot  $5,     15,     $5
1311         mulq    $5,     $6,     $24
1312         mulq    $7,     $5,     $2
1313         addq    $1,     $22,    $22
1314         addq    $28,    $24,    $28
1315         cmpult  $28,    $24,    $1
1316         mulq    $6,     $8,     $6
1317         beq     $1,     $257
1318         sll     $20,    32,     $1
1319         addq    $6,     $1,     $6
1320 $257:
1321         sll     $28,    32,     $24
1322         ldq     $1,     8($18)
1323         addq    $2,     $24,    $2
1324         bis     $2,     $2,     $7
1325         ldq     $4,     40($17)
1326         addq    $23,    $7,     $23
1327         srl     $1,     32,     $8
1328         cmpult  $23,    $7,     $3
1329         zapnot  $4,     15,     $7
1330         mulq    $8,     $7,     $25
1331         zapnot  $1,     15,     $5
1332         mulq    $7,     $5,     $0
1333         srl     $28,    32,     $1
1334         cmpult  $2,     $24,    $2
1335         addq    $6,     $1,     $6
1336         addq    $2,     $6,     $6
1337         addq    $3,     $6,     $6
1338         addq    $22,    $6,     $22
1339         cmpult  $22,    $6,     $24
1340         srl     $4,     32,     $6
1341         mulq    $5,     $6,     $5
1342         bis     $31,    1,      $21
1343         addq    $25,    $5,     $25
1344         cmpult  $25,    $5,     $1
1345         mulq    $6,     $8,     $6
1346         beq     $1,     $261
1347         sll     $21,    32,     $1
1348         addq    $6,     $1,     $6
1349 $261:
1350         sll     $25,    32,     $5
1351         ldq     $2,     16($18)
1352         addq    $0,     $5,     $0
1353         bis     $0,     $0,     $7
1354         ldq     $4,     32($17)
1355         addq    $23,    $7,     $23
1356         srl     $2,     32,     $8
1357         cmpult  $23,    $7,     $3
1358         zapnot  $4,     15,     $7
1359         mulq    $8,     $7,     $28
1360         srl     $25,    32,     $1
1361         addq    $6,     $1,     $6
1362         cmpult  $0,     $5,     $1
1363         zapnot  $2,     15,     $5
1364         addq    $1,     $6,     $6
1365         addq    $3,     $6,     $6
1366         addq    $22,    $6,     $22
1367         cmpult  $22,    $6,     $1
1368         srl     $4,     32,     $6
1369         mulq    $5,     $6,     $25
1370         mulq    $7,     $5,     $5
1371         addq    $1,     $24,    $24
1372         addq    $28,    $25,    $28
1373         cmpult  $28,    $25,    $1
1374         mulq    $6,     $8,     $6
1375         beq     $1,     $265
1376         sll     $21,    32,     $1
1377         addq    $6,     $1,     $6
1378 $265:
1379         sll     $28,    32,     $25
1380         ldq     $2,     24($18)
1381         addq    $5,     $25,    $5
1382         bis     $5,     $5,     $7
1383         ldq     $4,     24($17)
1384         addq    $23,    $7,     $23
1385         srl     $2,     32,     $8
1386         cmpult  $23,    $7,     $3
1387         zapnot  $4,     15,     $7
1388         mulq    $8,     $7,     $0
1389         srl     $28,    32,     $1
1390         addq    $6,     $1,     $6
1391         cmpult  $5,     $25,    $1
1392         zapnot  $2,     15,     $5
1393         addq    $1,     $6,     $6
1394         addq    $3,     $6,     $6
1395         addq    $22,    $6,     $22
1396         cmpult  $22,    $6,     $1
1397         srl     $4,     32,     $6
1398         mulq    $5,     $6,     $25
1399         mulq    $7,     $5,     $5
1400         addq    $1,     $24,    $24
1401         addq    $0,     $25,    $0
1402         cmpult  $0,     $25,    $1
1403         mulq    $6,     $8,     $6
1404         beq     $1,     $269
1405         sll     $21,    32,     $1
1406         addq    $6,     $1,     $6
1407 $269:
1408         sll     $0,     32,     $25
1409         ldq     $2,     32($18)
1410         addq    $5,     $25,    $5
1411         bis     $5,     $5,     $7
1412         ldq     $4,     16($17)
1413         addq    $23,    $7,     $23
1414         srl     $2,     32,     $8
1415         cmpult  $23,    $7,     $3
1416         zapnot  $4,     15,     $7
1417         mulq    $8,     $7,     $28
1418         srl     $0,     32,     $1
1419         addq    $6,     $1,     $6
1420         cmpult  $5,     $25,    $1
1421         zapnot  $2,     15,     $5
1422         addq    $1,     $6,     $6
1423         addq    $3,     $6,     $6
1424         addq    $22,    $6,     $22
1425         cmpult  $22,    $6,     $1
1426         srl     $4,     32,     $6
1427         mulq    $5,     $6,     $25
1428         mulq    $7,     $5,     $5
1429         addq    $1,     $24,    $24
1430         addq    $28,    $25,    $28
1431         cmpult  $28,    $25,    $1
1432         mulq    $6,     $8,     $6
1433         beq     $1,     $273
1434         sll     $21,    32,     $1
1435         addq    $6,     $1,     $6
1436 $273:
1437         sll     $28,    32,     $25
1438         ldq     $2,     40($18)
1439         addq    $5,     $25,    $5
1440         bis     $5,     $5,     $7
1441         ldq     $4,     8($17)
1442         addq    $23,    $7,     $23
1443         srl     $2,     32,     $8
1444         cmpult  $23,    $7,     $3
1445         zapnot  $4,     15,     $7
1446         mulq    $8,     $7,     $0
1447         srl     $28,    32,     $1
1448         addq    $6,     $1,     $6
1449         cmpult  $5,     $25,    $1
1450         zapnot  $2,     15,     $5
1451         addq    $1,     $6,     $6
1452         addq    $3,     $6,     $6
1453         addq    $22,    $6,     $22
1454         cmpult  $22,    $6,     $1
1455         srl     $4,     32,     $6
1456         mulq    $5,     $6,     $25
1457         mulq    $7,     $5,     $5
1458         addq    $1,     $24,    $24
1459         addq    $0,     $25,    $0
1460         cmpult  $0,     $25,    $1
1461         mulq    $6,     $8,     $6
1462         beq     $1,     $277
1463         sll     $21,    32,     $1
1464         addq    $6,     $1,     $6
1465 $277:
1466         sll     $0,     32,     $25
1467         ldq     $2,     48($18)
1468         addq    $5,     $25,    $5
1469         bis     $5,     $5,     $7
1470         ldq     $4,     0($17)
1471         addq    $23,    $7,     $23
1472         srl     $2,     32,     $8
1473         cmpult  $23,    $7,     $3
1474         zapnot  $4,     15,     $7
1475         mulq    $8,     $7,     $28
1476         srl     $0,     32,     $1
1477         addq    $6,     $1,     $6
1478         cmpult  $5,     $25,    $1
1479         zapnot  $2,     15,     $5
1480         addq    $1,     $6,     $6
1481         addq    $3,     $6,     $6
1482         addq    $22,    $6,     $22
1483         cmpult  $22,    $6,     $1
1484         srl     $4,     32,     $6
1485         mulq    $5,     $6,     $25
1486         mulq    $7,     $5,     $2
1487         addq    $1,     $24,    $24
1488         addq    $28,    $25,    $28
1489         cmpult  $28,    $25,    $1
1490         mulq    $6,     $8,     $6
1491         beq     $1,     $281
1492         sll     $21,    32,     $1
1493         addq    $6,     $1,     $6
1494 $281:
1495         sll     $28,    32,     $25
1496         addq    $2,     $25,    $2
1497         bis     $2,     $2,     $7
1498         addq    $23,    $7,     $23
1499         stq     $23,    48($16)
1500         ldq     $4,     0($17)
1501         ldq     $5,     56($18)
1502         cmpult  $23,    $7,     $3
1503         zapnot  $4,     15,     $7
1504         srl     $5,     32,     $8
1505         mulq    $8,     $7,     $0
1506         srl     $28,    32,     $1
1507         cmpult  $2,     $25,    $2
1508         addq    $6,     $1,     $6
1509         addq    $2,     $6,     $6
1510         addq    $3,     $6,     $6
1511         addq    $22,    $6,     $22
1512         cmpult  $22,    $6,     $1
1513         srl     $4,     32,     $6
1514         zapnot  $5,     15,     $5
1515         mulq    $5,     $6,     $23
1516         mulq    $7,     $5,     $2
1517         addq    $1,     $24,    $24
1518         addq    $0,     $23,    $0
1519         cmpult  $0,     $23,    $1
1520         mulq    $6,     $8,     $6
1521         beq     $1,     $285
1522         sll     $21,    32,     $1
1523         addq    $6,     $1,     $6
1524 $285:
1525         sll     $0,     32,     $23
1526         ldq     $1,     48($18)
1527         addq    $2,     $23,    $2
1528         bis     $2,     $2,     $7
1529         ldq     $4,     8($17)
1530         addq    $22,    $7,     $22
1531         srl     $1,     32,     $8
1532         cmpult  $22,    $7,     $3
1533         zapnot  $4,     15,     $7
1534         mulq    $8,     $7,     $25
1535         zapnot  $1,     15,     $5
1536         mulq    $7,     $5,     $21
1537         srl     $0,     32,     $1
1538         cmpult  $2,     $23,    $2
1539         addq    $6,     $1,     $6
1540         addq    $2,     $6,     $6
1541         addq    $3,     $6,     $6
1542         addq    $24,    $6,     $24
1543         cmpult  $24,    $6,     $23
1544         srl     $4,     32,     $6
1545         mulq    $5,     $6,     $5
1546         bis     $31,    1,      $20
1547         addq    $25,    $5,     $25
1548         cmpult  $25,    $5,     $1
1549         mulq    $6,     $8,     $6
1550         beq     $1,     $289
1551         sll     $20,    32,     $1
1552         addq    $6,     $1,     $6
1553 $289:
1554         sll     $25,    32,     $5
1555         ldq     $2,     40($18)
1556         addq    $21,    $5,     $21
1557         bis     $21,    $21,    $7
1558         ldq     $4,     16($17)
1559         addq    $22,    $7,     $22
1560         srl     $2,     32,     $8
1561         cmpult  $22,    $7,     $3
1562         zapnot  $4,     15,     $7
1563         mulq    $8,     $7,     $28
1564         srl     $25,    32,     $1
1565         addq    $6,     $1,     $6
1566         cmpult  $21,    $5,     $1
1567         zapnot  $2,     15,     $5
1568         addq    $1,     $6,     $6
1569         addq    $3,     $6,     $6
1570         addq    $24,    $6,     $24
1571         cmpult  $24,    $6,     $1
1572         srl     $4,     32,     $6
1573         mulq    $5,     $6,     $25
1574         mulq    $7,     $5,     $5
1575         addq    $1,     $23,    $23
1576         addq    $28,    $25,    $28
1577         cmpult  $28,    $25,    $1
1578         mulq    $6,     $8,     $6
1579         beq     $1,     $293
1580         sll     $20,    32,     $1
1581         addq    $6,     $1,     $6
1582 $293:
1583         sll     $28,    32,     $25
1584         ldq     $2,     32($18)
1585         addq    $5,     $25,    $5
1586         bis     $5,     $5,     $7
1587         ldq     $4,     24($17)
1588         addq    $22,    $7,     $22
1589         srl     $2,     32,     $8
1590         cmpult  $22,    $7,     $3
1591         zapnot  $4,     15,     $7
1592         mulq    $8,     $7,     $0
1593         srl     $28,    32,     $1
1594         addq    $6,     $1,     $6
1595         cmpult  $5,     $25,    $1
1596         zapnot  $2,     15,     $5
1597         addq    $1,     $6,     $6
1598         addq    $3,     $6,     $6
1599         addq    $24,    $6,     $24
1600         cmpult  $24,    $6,     $1
1601         srl     $4,     32,     $6
1602         mulq    $5,     $6,     $25
1603         mulq    $7,     $5,     $5
1604         addq    $1,     $23,    $23
1605         addq    $0,     $25,    $0
1606         cmpult  $0,     $25,    $1
1607         mulq    $6,     $8,     $6
1608         beq     $1,     $297
1609         sll     $20,    32,     $1
1610         addq    $6,     $1,     $6
1611 $297:
1612         sll     $0,     32,     $25
1613         ldq     $2,     24($18)
1614         addq    $5,     $25,    $5
1615         bis     $5,     $5,     $7
1616         ldq     $4,     32($17)
1617         addq    $22,    $7,     $22
1618         srl     $2,     32,     $8
1619         cmpult  $22,    $7,     $3
1620         zapnot  $4,     15,     $7
1621         mulq    $8,     $7,     $28
1622         srl     $0,     32,     $1
1623         addq    $6,     $1,     $6
1624         cmpult  $5,     $25,    $1
1625         zapnot  $2,     15,     $5
1626         addq    $1,     $6,     $6
1627         addq    $3,     $6,     $6
1628         addq    $24,    $6,     $24
1629         cmpult  $24,    $6,     $1
1630         srl     $4,     32,     $6
1631         mulq    $5,     $6,     $25
1632         mulq    $7,     $5,     $5
1633         addq    $1,     $23,    $23
1634         addq    $28,    $25,    $28
1635         cmpult  $28,    $25,    $1
1636         mulq    $6,     $8,     $6
1637         beq     $1,     $301
1638         sll     $20,    32,     $1
1639         addq    $6,     $1,     $6
1640 $301:
1641         sll     $28,    32,     $25
1642         ldq     $2,     16($18)
1643         addq    $5,     $25,    $5
1644         bis     $5,     $5,     $7
1645         ldq     $4,     40($17)
1646         addq    $22,    $7,     $22
1647         srl     $2,     32,     $8
1648         cmpult  $22,    $7,     $3
1649         zapnot  $4,     15,     $7
1650         mulq    $8,     $7,     $0
1651         srl     $28,    32,     $1
1652         addq    $6,     $1,     $6
1653         cmpult  $5,     $25,    $1
1654         zapnot  $2,     15,     $5
1655         addq    $1,     $6,     $6
1656         addq    $3,     $6,     $6
1657         addq    $24,    $6,     $24
1658         cmpult  $24,    $6,     $1
1659         srl     $4,     32,     $6
1660         mulq    $5,     $6,     $25
1661         mulq    $7,     $5,     $5
1662         addq    $1,     $23,    $23
1663         addq    $0,     $25,    $0
1664         cmpult  $0,     $25,    $1
1665         mulq    $6,     $8,     $6
1666         beq     $1,     $305
1667         sll     $20,    32,     $1
1668         addq    $6,     $1,     $6
1669 $305:
1670         sll     $0,     32,     $25
1671         ldq     $2,     8($18)
1672         addq    $5,     $25,    $5
1673         bis     $5,     $5,     $7
1674         ldq     $4,     48($17)
1675         addq    $22,    $7,     $22
1676         srl     $2,     32,     $8
1677         cmpult  $22,    $7,     $3
1678         zapnot  $4,     15,     $7
1679         mulq    $8,     $7,     $28
1680         srl     $0,     32,     $1
1681         addq    $6,     $1,     $6
1682         cmpult  $5,     $25,    $1
1683         zapnot  $2,     15,     $5
1684         addq    $1,     $6,     $6
1685         addq    $3,     $6,     $6
1686         addq    $24,    $6,     $24
1687         cmpult  $24,    $6,     $1
1688         srl     $4,     32,     $6
1689         mulq    $5,     $6,     $25
1690         mulq    $7,     $5,     $5
1691         addq    $1,     $23,    $23
1692         addq    $28,    $25,    $28
1693         cmpult  $28,    $25,    $1
1694         mulq    $6,     $8,     $6
1695         beq     $1,     $309
1696         sll     $20,    32,     $1
1697         addq    $6,     $1,     $6
1698 $309:
1699         sll     $28,    32,     $25
1700         ldq     $2,     0($18)
1701         addq    $5,     $25,    $5
1702         bis     $5,     $5,     $7
1703         ldq     $4,     56($17)
1704         addq    $22,    $7,     $22
1705         srl     $2,     32,     $8
1706         cmpult  $22,    $7,     $3
1707         zapnot  $4,     15,     $7
1708         mulq    $8,     $7,     $0
1709         srl     $28,    32,     $1
1710         addq    $6,     $1,     $6
1711         cmpult  $5,     $25,    $1
1712         zapnot  $2,     15,     $5
1713         addq    $1,     $6,     $6
1714         addq    $3,     $6,     $6
1715         addq    $24,    $6,     $24
1716         cmpult  $24,    $6,     $1
1717         srl     $4,     32,     $6
1718         mulq    $5,     $6,     $25
1719         mulq    $7,     $5,     $2
1720         addq    $1,     $23,    $23
1721         addq    $0,     $25,    $0
1722         cmpult  $0,     $25,    $1
1723         mulq    $6,     $8,     $6
1724         beq     $1,     $313
1725         sll     $20,    32,     $1
1726         addq    $6,     $1,     $6
1727 $313:
1728         sll     $0,     32,     $25
1729         addq    $2,     $25,    $2
1730         bis     $2,     $2,     $7
1731         addq    $22,    $7,     $22
1732         stq     $22,    56($16)
1733         ldq     $4,     56($17)
1734         ldq     $5,     8($18)
1735         cmpult  $22,    $7,     $3
1736         zapnot  $4,     15,     $7
1737         srl     $5,     32,     $8
1738         mulq    $8,     $7,     $28
1739         srl     $0,     32,     $1
1740         cmpult  $2,     $25,    $2
1741         addq    $6,     $1,     $6
1742         addq    $2,     $6,     $6
1743         addq    $3,     $6,     $6
1744         addq    $24,    $6,     $24
1745         cmpult  $24,    $6,     $1
1746         srl     $4,     32,     $6
1747         zapnot  $5,     15,     $5
1748         mulq    $5,     $6,     $22
1749         mulq    $7,     $5,     $2
1750         addq    $1,     $23,    $23
1751         addq    $28,    $22,    $28
1752         cmpult  $28,    $22,    $1
1753         mulq    $6,     $8,     $6
1754         beq     $1,     $317
1755         sll     $20,    32,     $1
1756         addq    $6,     $1,     $6
1757 $317:
1758         sll     $28,    32,     $22
1759         ldq     $1,     16($18)
1760         addq    $2,     $22,    $2
1761         bis     $2,     $2,     $7
1762         ldq     $4,     48($17)
1763         addq    $24,    $7,     $24
1764         srl     $1,     32,     $8
1765         cmpult  $24,    $7,     $3
1766         zapnot  $4,     15,     $7
1767         mulq    $8,     $7,     $25
1768         zapnot  $1,     15,     $5
1769         mulq    $7,     $5,     $0
1770         srl     $28,    32,     $1
1771         cmpult  $2,     $22,    $2
1772         addq    $6,     $1,     $6
1773         addq    $2,     $6,     $6
1774         addq    $3,     $6,     $6
1775         addq    $23,    $6,     $23
1776         cmpult  $23,    $6,     $22
1777         srl     $4,     32,     $6
1778         mulq    $5,     $6,     $5
1779         bis     $31,    1,      $21
1780         addq    $25,    $5,     $25
1781         cmpult  $25,    $5,     $1
1782         mulq    $6,     $8,     $6
1783         beq     $1,     $321
1784         sll     $21,    32,     $1
1785         addq    $6,     $1,     $6
1786 $321:
1787         sll     $25,    32,     $5
1788         ldq     $2,     24($18)
1789         addq    $0,     $5,     $0
1790         bis     $0,     $0,     $7
1791         ldq     $4,     40($17)
1792         addq    $24,    $7,     $24
1793         srl     $2,     32,     $8
1794         cmpult  $24,    $7,     $3
1795         zapnot  $4,     15,     $7
1796         mulq    $8,     $7,     $28
1797         srl     $25,    32,     $1
1798         addq    $6,     $1,     $6
1799         cmpult  $0,     $5,     $1
1800         zapnot  $2,     15,     $5
1801         addq    $1,     $6,     $6
1802         addq    $3,     $6,     $6
1803         addq    $23,    $6,     $23
1804         cmpult  $23,    $6,     $1
1805         srl     $4,     32,     $6
1806         mulq    $5,     $6,     $25
1807         mulq    $7,     $5,     $5
1808         addq    $1,     $22,    $22
1809         addq    $28,    $25,    $28
1810         cmpult  $28,    $25,    $1
1811         mulq    $6,     $8,     $6
1812         beq     $1,     $325
1813         sll     $21,    32,     $1
1814         addq    $6,     $1,     $6
1815 $325:
1816         sll     $28,    32,     $25
1817         ldq     $2,     32($18)
1818         addq    $5,     $25,    $5
1819         bis     $5,     $5,     $7
1820         ldq     $4,     32($17)
1821         addq    $24,    $7,     $24
1822         srl     $2,     32,     $8
1823         cmpult  $24,    $7,     $3
1824         zapnot  $4,     15,     $7
1825         mulq    $8,     $7,     $0
1826         srl     $28,    32,     $1
1827         addq    $6,     $1,     $6
1828         cmpult  $5,     $25,    $1
1829         zapnot  $2,     15,     $5
1830         addq    $1,     $6,     $6
1831         addq    $3,     $6,     $6
1832         addq    $23,    $6,     $23
1833         cmpult  $23,    $6,     $1
1834         srl     $4,     32,     $6
1835         mulq    $5,     $6,     $25
1836         mulq    $7,     $5,     $5
1837         addq    $1,     $22,    $22
1838         addq    $0,     $25,    $0
1839         cmpult  $0,     $25,    $1
1840         mulq    $6,     $8,     $6
1841         beq     $1,     $329
1842         sll     $21,    32,     $1
1843         addq    $6,     $1,     $6
1844 $329:
1845         sll     $0,     32,     $25
1846         ldq     $2,     40($18)
1847         addq    $5,     $25,    $5
1848         bis     $5,     $5,     $7
1849         ldq     $4,     24($17)
1850         addq    $24,    $7,     $24
1851         srl     $2,     32,     $8
1852         cmpult  $24,    $7,     $3
1853         zapnot  $4,     15,     $7
1854         mulq    $8,     $7,     $28
1855         srl     $0,     32,     $1
1856         addq    $6,     $1,     $6
1857         cmpult  $5,     $25,    $1
1858         zapnot  $2,     15,     $5
1859         addq    $1,     $6,     $6
1860         addq    $3,     $6,     $6
1861         addq    $23,    $6,     $23
1862         cmpult  $23,    $6,     $1
1863         srl     $4,     32,     $6
1864         mulq    $5,     $6,     $25
1865         mulq    $7,     $5,     $5
1866         addq    $1,     $22,    $22
1867         addq    $28,    $25,    $28
1868         cmpult  $28,    $25,    $1
1869         mulq    $6,     $8,     $6
1870         beq     $1,     $333
1871         sll     $21,    32,     $1
1872         addq    $6,     $1,     $6
1873 $333:
1874         sll     $28,    32,     $25
1875         ldq     $2,     48($18)
1876         addq    $5,     $25,    $5
1877         bis     $5,     $5,     $7
1878         ldq     $4,     16($17)
1879         addq    $24,    $7,     $24
1880         srl     $2,     32,     $8
1881         cmpult  $24,    $7,     $3
1882         zapnot  $4,     15,     $7
1883         mulq    $8,     $7,     $0
1884         srl     $28,    32,     $1
1885         addq    $6,     $1,     $6
1886         cmpult  $5,     $25,    $1
1887         zapnot  $2,     15,     $5
1888         addq    $1,     $6,     $6
1889         addq    $3,     $6,     $6
1890         addq    $23,    $6,     $23
1891         cmpult  $23,    $6,     $1
1892         srl     $4,     32,     $6
1893         mulq    $5,     $6,     $25
1894         mulq    $7,     $5,     $5
1895         addq    $1,     $22,    $22
1896         addq    $0,     $25,    $0
1897         cmpult  $0,     $25,    $1
1898         mulq    $6,     $8,     $6
1899         beq     $1,     $337
1900         sll     $21,    32,     $1
1901         addq    $6,     $1,     $6
1902 $337:
1903         sll     $0,     32,     $25
1904         ldq     $2,     56($18)
1905         addq    $5,     $25,    $5
1906         bis     $5,     $5,     $7
1907         ldq     $4,     8($17)
1908         addq    $24,    $7,     $24
1909         srl     $2,     32,     $8
1910         cmpult  $24,    $7,     $3
1911         zapnot  $4,     15,     $7
1912         mulq    $8,     $7,     $28
1913         srl     $0,     32,     $1
1914         addq    $6,     $1,     $6
1915         cmpult  $5,     $25,    $1
1916         zapnot  $2,     15,     $5
1917         addq    $1,     $6,     $6
1918         addq    $3,     $6,     $6
1919         addq    $23,    $6,     $23
1920         cmpult  $23,    $6,     $1
1921         srl     $4,     32,     $6
1922         mulq    $5,     $6,     $25
1923         mulq    $7,     $5,     $2
1924         addq    $1,     $22,    $22
1925         addq    $28,    $25,    $28
1926         cmpult  $28,    $25,    $1
1927         mulq    $6,     $8,     $6
1928         beq     $1,     $341
1929         sll     $21,    32,     $1
1930         addq    $6,     $1,     $6
1931 $341:
1932         sll     $28,    32,     $25
1933         addq    $2,     $25,    $2
1934         bis     $2,     $2,     $7
1935         addq    $24,    $7,     $24
1936         stq     $24,    64($16)
1937         ldq     $4,     16($17)
1938         ldq     $5,     56($18)
1939         cmpult  $24,    $7,     $3
1940         zapnot  $4,     15,     $7
1941         srl     $5,     32,     $8
1942         mulq    $8,     $7,     $0
1943         srl     $28,    32,     $1
1944         cmpult  $2,     $25,    $2
1945         addq    $6,     $1,     $6
1946         addq    $2,     $6,     $6
1947         addq    $3,     $6,     $6
1948         addq    $23,    $6,     $23
1949         cmpult  $23,    $6,     $1
1950         srl     $4,     32,     $6
1951         zapnot  $5,     15,     $5
1952         mulq    $5,     $6,     $24
1953         mulq    $7,     $5,     $2
1954         addq    $1,     $22,    $22
1955         addq    $0,     $24,    $0
1956         cmpult  $0,     $24,    $1
1957         mulq    $6,     $8,     $6
1958         beq     $1,     $345
1959         sll     $21,    32,     $1
1960         addq    $6,     $1,     $6
1961 $345:
1962         sll     $0,     32,     $24
1963         ldq     $1,     48($18)
1964         addq    $2,     $24,    $2
1965         bis     $2,     $2,     $7
1966         ldq     $4,     24($17)
1967         addq    $23,    $7,     $23
1968         srl     $1,     32,     $8
1969         cmpult  $23,    $7,     $3
1970         zapnot  $4,     15,     $7
1971         mulq    $8,     $7,     $25
1972         zapnot  $1,     15,     $5
1973         mulq    $7,     $5,     $21
1974         srl     $0,     32,     $1
1975         cmpult  $2,     $24,    $2
1976         addq    $6,     $1,     $6
1977         addq    $2,     $6,     $6
1978         addq    $3,     $6,     $6
1979         addq    $22,    $6,     $22
1980         cmpult  $22,    $6,     $24
1981         srl     $4,     32,     $6
1982         mulq    $5,     $6,     $5
1983         bis     $31,    1,      $20
1984         addq    $25,    $5,     $25
1985         cmpult  $25,    $5,     $1
1986         mulq    $6,     $8,     $6
1987         beq     $1,     $349
1988         sll     $20,    32,     $1
1989         addq    $6,     $1,     $6
1990 $349:
1991         sll     $25,    32,     $5
1992         ldq     $2,     40($18)
1993         addq    $21,    $5,     $21
1994         bis     $21,    $21,    $7
1995         ldq     $4,     32($17)
1996         addq    $23,    $7,     $23
1997         srl     $2,     32,     $8
1998         cmpult  $23,    $7,     $3
1999         zapnot  $4,     15,     $7
2000         mulq    $8,     $7,     $28
2001         srl     $25,    32,     $1
2002         addq    $6,     $1,     $6
2003         cmpult  $21,    $5,     $1
2004         zapnot  $2,     15,     $5
2005         addq    $1,     $6,     $6
2006         addq    $3,     $6,     $6
2007         addq    $22,    $6,     $22
2008         cmpult  $22,    $6,     $1
2009         srl     $4,     32,     $6
2010         mulq    $5,     $6,     $25
2011         mulq    $7,     $5,     $5
2012         addq    $1,     $24,    $24
2013         addq    $28,    $25,    $28
2014         cmpult  $28,    $25,    $1
2015         mulq    $6,     $8,     $6
2016         beq     $1,     $353
2017         sll     $20,    32,     $1
2018         addq    $6,     $1,     $6
2019 $353:
2020         sll     $28,    32,     $25
2021         ldq     $2,     32($18)
2022         addq    $5,     $25,    $5
2023         bis     $5,     $5,     $7
2024         ldq     $4,     40($17)
2025         addq    $23,    $7,     $23
2026         srl     $2,     32,     $8
2027         cmpult  $23,    $7,     $3
2028         zapnot  $4,     15,     $7
2029         mulq    $8,     $7,     $0
2030         srl     $28,    32,     $1
2031         addq    $6,     $1,     $6
2032         cmpult  $5,     $25,    $1
2033         zapnot  $2,     15,     $5
2034         addq    $1,     $6,     $6
2035         addq    $3,     $6,     $6
2036         addq    $22,    $6,     $22
2037         cmpult  $22,    $6,     $1
2038         srl     $4,     32,     $6
2039         mulq    $5,     $6,     $25
2040         mulq    $7,     $5,     $5
2041         addq    $1,     $24,    $24
2042         addq    $0,     $25,    $0
2043         cmpult  $0,     $25,    $1
2044         mulq    $6,     $8,     $6
2045         beq     $1,     $357
2046         sll     $20,    32,     $1
2047         addq    $6,     $1,     $6
2048 $357:
2049         sll     $0,     32,     $25
2050         ldq     $2,     24($18)
2051         addq    $5,     $25,    $5
2052         bis     $5,     $5,     $7
2053         ldq     $4,     48($17)
2054         addq    $23,    $7,     $23
2055         srl     $2,     32,     $8
2056         cmpult  $23,    $7,     $3
2057         zapnot  $4,     15,     $7
2058         mulq    $8,     $7,     $28
2059         srl     $0,     32,     $1
2060         addq    $6,     $1,     $6
2061         cmpult  $5,     $25,    $1
2062         zapnot  $2,     15,     $5
2063         addq    $1,     $6,     $6
2064         addq    $3,     $6,     $6
2065         addq    $22,    $6,     $22
2066         cmpult  $22,    $6,     $1
2067         srl     $4,     32,     $6
2068         mulq    $5,     $6,     $25
2069         mulq    $7,     $5,     $5
2070         addq    $1,     $24,    $24
2071         addq    $28,    $25,    $28
2072         cmpult  $28,    $25,    $1
2073         mulq    $6,     $8,     $6
2074         beq     $1,     $361
2075         sll     $20,    32,     $1
2076         addq    $6,     $1,     $6
2077 $361:
2078         sll     $28,    32,     $25
2079         ldq     $2,     16($18)
2080         addq    $5,     $25,    $5
2081         bis     $5,     $5,     $7
2082         ldq     $4,     56($17)
2083         addq    $23,    $7,     $23
2084         srl     $2,     32,     $8
2085         cmpult  $23,    $7,     $3
2086         zapnot  $4,     15,     $7
2087         mulq    $8,     $7,     $0
2088         srl     $28,    32,     $1
2089         addq    $6,     $1,     $6
2090         cmpult  $5,     $25,    $1
2091         zapnot  $2,     15,     $5
2092         addq    $1,     $6,     $6
2093         addq    $3,     $6,     $6
2094         addq    $22,    $6,     $22
2095         cmpult  $22,    $6,     $1
2096         srl     $4,     32,     $6
2097         mulq    $5,     $6,     $25
2098         mulq    $7,     $5,     $2
2099         addq    $1,     $24,    $24
2100         addq    $0,     $25,    $0
2101         cmpult  $0,     $25,    $1
2102         mulq    $6,     $8,     $6
2103         beq     $1,     $365
2104         sll     $20,    32,     $1
2105         addq    $6,     $1,     $6
2106 $365:
2107         sll     $0,     32,     $25
2108         addq    $2,     $25,    $2
2109         bis     $2,     $2,     $7
2110         addq    $23,    $7,     $23
2111         stq     $23,    72($16)
2112         ldq     $4,     56($17)
2113         ldq     $5,     24($18)
2114         cmpult  $23,    $7,     $3
2115         zapnot  $4,     15,     $7
2116         srl     $5,     32,     $8
2117         mulq    $8,     $7,     $28
2118         srl     $0,     32,     $1
2119         cmpult  $2,     $25,    $2
2120         addq    $6,     $1,     $6
2121         addq    $2,     $6,     $6
2122         addq    $3,     $6,     $6
2123         addq    $22,    $6,     $22
2124         cmpult  $22,    $6,     $1
2125         srl     $4,     32,     $6
2126         zapnot  $5,     15,     $5
2127         mulq    $5,     $6,     $23
2128         mulq    $7,     $5,     $2
2129         addq    $1,     $24,    $24
2130         addq    $28,    $23,    $28
2131         cmpult  $28,    $23,    $1
2132         mulq    $6,     $8,     $6
2133         beq     $1,     $369
2134         sll     $20,    32,     $1
2135         addq    $6,     $1,     $6
2136 $369:
2137         sll     $28,    32,     $23
2138         ldq     $1,     32($18)
2139         addq    $2,     $23,    $2
2140         bis     $2,     $2,     $7
2141         ldq     $4,     48($17)
2142         addq    $22,    $7,     $22
2143         srl     $1,     32,     $8
2144         cmpult  $22,    $7,     $3
2145         zapnot  $4,     15,     $7
2146         mulq    $8,     $7,     $25
2147         zapnot  $1,     15,     $5
2148         mulq    $7,     $5,     $0
2149         srl     $28,    32,     $1
2150         cmpult  $2,     $23,    $2
2151         addq    $6,     $1,     $6
2152         addq    $2,     $6,     $6
2153         addq    $3,     $6,     $6
2154         addq    $24,    $6,     $24
2155         cmpult  $24,    $6,     $23
2156         srl     $4,     32,     $6
2157         mulq    $5,     $6,     $5
2158         bis     $31,    1,      $21
2159         addq    $25,    $5,     $25
2160         cmpult  $25,    $5,     $1
2161         mulq    $6,     $8,     $6
2162         beq     $1,     $373
2163         sll     $21,    32,     $1
2164         addq    $6,     $1,     $6
2165 $373:
2166         sll     $25,    32,     $5
2167         ldq     $2,     40($18)
2168         addq    $0,     $5,     $0
2169         bis     $0,     $0,     $7
2170         ldq     $4,     40($17)
2171         addq    $22,    $7,     $22
2172         srl     $2,     32,     $8
2173         cmpult  $22,    $7,     $3
2174         zapnot  $4,     15,     $7
2175         mulq    $8,     $7,     $28
2176         srl     $25,    32,     $1
2177         addq    $6,     $1,     $6
2178         cmpult  $0,     $5,     $1
2179         zapnot  $2,     15,     $5
2180         addq    $1,     $6,     $6
2181         addq    $3,     $6,     $6
2182         addq    $24,    $6,     $24
2183         cmpult  $24,    $6,     $1
2184         srl     $4,     32,     $6
2185         mulq    $5,     $6,     $25
2186         mulq    $7,     $5,     $5
2187         addq    $1,     $23,    $23
2188         addq    $28,    $25,    $28
2189         cmpult  $28,    $25,    $1
2190         mulq    $6,     $8,     $6
2191         beq     $1,     $377
2192         sll     $21,    32,     $1
2193         addq    $6,     $1,     $6
2194 $377:
2195         sll     $28,    32,     $25
2196         ldq     $2,     48($18)
2197         addq    $5,     $25,    $5
2198         bis     $5,     $5,     $7
2199         ldq     $4,     32($17)
2200         addq    $22,    $7,     $22
2201         srl     $2,     32,     $8
2202         cmpult  $22,    $7,     $3
2203         zapnot  $4,     15,     $7
2204         mulq    $8,     $7,     $0
2205         srl     $28,    32,     $1
2206         addq    $6,     $1,     $6
2207         cmpult  $5,     $25,    $1
2208         zapnot  $2,     15,     $5
2209         addq    $1,     $6,     $6
2210         addq    $3,     $6,     $6
2211         addq    $24,    $6,     $24
2212         cmpult  $24,    $6,     $1
2213         srl     $4,     32,     $6
2214         mulq    $5,     $6,     $25
2215         mulq    $7,     $5,     $5
2216         addq    $1,     $23,    $23
2217         addq    $0,     $25,    $0
2218         cmpult  $0,     $25,    $1
2219         mulq    $6,     $8,     $6
2220         beq     $1,     $381
2221         sll     $21,    32,     $1
2222         addq    $6,     $1,     $6
2223 $381:
2224         sll     $0,     32,     $25
2225         ldq     $2,     56($18)
2226         addq    $5,     $25,    $5
2227         bis     $5,     $5,     $7
2228         ldq     $4,     24($17)
2229         addq    $22,    $7,     $22
2230         srl     $2,     32,     $8
2231         cmpult  $22,    $7,     $3
2232         zapnot  $4,     15,     $7
2233         mulq    $8,     $7,     $28
2234         srl     $0,     32,     $1
2235         addq    $6,     $1,     $6
2236         cmpult  $5,     $25,    $1
2237         zapnot  $2,     15,     $5
2238         addq    $1,     $6,     $6
2239         addq    $3,     $6,     $6
2240         addq    $24,    $6,     $24
2241         cmpult  $24,    $6,     $1
2242         srl     $4,     32,     $6
2243         mulq    $5,     $6,     $25
2244         mulq    $7,     $5,     $2
2245         addq    $1,     $23,    $23
2246         addq    $28,    $25,    $28
2247         cmpult  $28,    $25,    $1
2248         mulq    $6,     $8,     $6
2249         beq     $1,     $385
2250         sll     $21,    32,     $1
2251         addq    $6,     $1,     $6
2252 $385:
2253         sll     $28,    32,     $25
2254         addq    $2,     $25,    $2
2255         bis     $2,     $2,     $7
2256         addq    $22,    $7,     $22
2257         stq     $22,    80($16)
2258         ldq     $4,     32($17)
2259         ldq     $5,     56($18)
2260         cmpult  $22,    $7,     $3
2261         zapnot  $4,     15,     $7
2262         srl     $5,     32,     $8
2263         mulq    $8,     $7,     $0
2264         srl     $28,    32,     $1
2265         cmpult  $2,     $25,    $2
2266         addq    $6,     $1,     $6
2267         addq    $2,     $6,     $6
2268         addq    $3,     $6,     $6
2269         addq    $24,    $6,     $24
2270         cmpult  $24,    $6,     $1
2271         srl     $4,     32,     $6
2272         zapnot  $5,     15,     $5
2273         mulq    $5,     $6,     $22
2274         mulq    $7,     $5,     $2
2275         addq    $1,     $23,    $23
2276         addq    $0,     $22,    $0
2277         cmpult  $0,     $22,    $1
2278         mulq    $6,     $8,     $6
2279         beq     $1,     $389
2280         sll     $21,    32,     $1
2281         addq    $6,     $1,     $6
2282 $389:
2283         sll     $0,     32,     $22
2284         ldq     $1,     48($18)
2285         addq    $2,     $22,    $2
2286         bis     $2,     $2,     $7
2287         ldq     $4,     40($17)
2288         addq    $24,    $7,     $24
2289         srl     $1,     32,     $8
2290         cmpult  $24,    $7,     $3
2291         zapnot  $4,     15,     $7
2292         mulq    $8,     $7,     $25
2293         zapnot  $1,     15,     $5
2294         mulq    $7,     $5,     $21
2295         srl     $0,     32,     $1
2296         cmpult  $2,     $22,    $2
2297         addq    $6,     $1,     $6
2298         addq    $2,     $6,     $6
2299         addq    $3,     $6,     $6
2300         addq    $23,    $6,     $23
2301         cmpult  $23,    $6,     $22
2302         srl     $4,     32,     $6
2303         mulq    $5,     $6,     $5
2304         bis     $31,    1,      $20
2305         addq    $25,    $5,     $25
2306         cmpult  $25,    $5,     $1
2307         mulq    $6,     $8,     $6
2308         beq     $1,     $393
2309         sll     $20,    32,     $1
2310         addq    $6,     $1,     $6
2311 $393:
2312         sll     $25,    32,     $5
2313         ldq     $2,     40($18)
2314         addq    $21,    $5,     $21
2315         bis     $21,    $21,    $7
2316         ldq     $4,     48($17)
2317         addq    $24,    $7,     $24
2318         srl     $2,     32,     $8
2319         cmpult  $24,    $7,     $3
2320         zapnot  $4,     15,     $7
2321         mulq    $8,     $7,     $28
2322         srl     $25,    32,     $1
2323         addq    $6,     $1,     $6
2324         cmpult  $21,    $5,     $1
2325         zapnot  $2,     15,     $5
2326         addq    $1,     $6,     $6
2327         addq    $3,     $6,     $6
2328         addq    $23,    $6,     $23
2329         cmpult  $23,    $6,     $1
2330         srl     $4,     32,     $6
2331         mulq    $5,     $6,     $25
2332         mulq    $7,     $5,     $5
2333         addq    $1,     $22,    $22
2334         addq    $28,    $25,    $28
2335         cmpult  $28,    $25,    $1
2336         mulq    $6,     $8,     $6
2337         beq     $1,     $397
2338         sll     $20,    32,     $1
2339         addq    $6,     $1,     $6
2340 $397:
2341         sll     $28,    32,     $25
2342         ldq     $2,     32($18)
2343         addq    $5,     $25,    $5
2344         bis     $5,     $5,     $7
2345         ldq     $4,     56($17)
2346         addq    $24,    $7,     $24
2347         srl     $2,     32,     $8
2348         cmpult  $24,    $7,     $3
2349         zapnot  $4,     15,     $7
2350         mulq    $8,     $7,     $21
2351         srl     $28,    32,     $1
2352         addq    $6,     $1,     $6
2353         cmpult  $5,     $25,    $1
2354         zapnot  $2,     15,     $5
2355         addq    $1,     $6,     $6
2356         addq    $3,     $6,     $6
2357         addq    $23,    $6,     $23
2358         cmpult  $23,    $6,     $1
2359         srl     $4,     32,     $6
2360         mulq    $5,     $6,     $25
2361         mulq    $7,     $5,     $2
2362         addq    $1,     $22,    $22
2363         addq    $21,    $25,    $21
2364         cmpult  $21,    $25,    $1
2365         mulq    $6,     $8,     $6
2366         beq     $1,     $401
2367         sll     $20,    32,     $1
2368         addq    $6,     $1,     $6
2369 $401:
2370         sll     $21,    32,     $25
2371         addq    $2,     $25,    $2
2372         bis     $2,     $2,     $7
2373         addq    $24,    $7,     $24
2374         stq     $24,    88($16)
2375         ldq     $4,     56($17)
2376         ldq     $5,     40($18)
2377         cmpult  $24,    $7,     $3
2378         zapnot  $4,     15,     $7
2379         srl     $5,     32,     $8
2380         mulq    $8,     $7,     $0
2381         srl     $21,    32,     $1
2382         cmpult  $2,     $25,    $2
2383         addq    $6,     $1,     $6
2384         addq    $2,     $6,     $6
2385         addq    $3,     $6,     $6
2386         addq    $23,    $6,     $23
2387         cmpult  $23,    $6,     $1
2388         srl     $4,     32,     $6
2389         zapnot  $5,     15,     $5
2390         mulq    $5,     $6,     $24
2391         mulq    $7,     $5,     $5
2392         addq    $1,     $22,    $22
2393         addq    $0,     $24,    $0
2394         cmpult  $0,     $24,    $1
2395         mulq    $6,     $8,     $6
2396         beq     $1,     $405
2397         sll     $20,    32,     $1
2398         addq    $6,     $1,     $6
2399 $405:
2400         sll     $0,     32,     $24
2401         ldq     $2,     48($18)
2402         addq    $5,     $24,    $5
2403         bis     $5,     $5,     $7
2404         ldq     $4,     48($17)
2405         addq    $23,    $7,     $23
2406         srl     $2,     32,     $8
2407         cmpult  $23,    $7,     $3
2408         zapnot  $4,     15,     $7
2409         mulq    $8,     $7,     $28
2410         srl     $0,     32,     $1
2411         addq    $6,     $1,     $6
2412         cmpult  $5,     $24,    $1
2413         zapnot  $2,     15,     $5
2414         addq    $1,     $6,     $6
2415         addq    $3,     $6,     $6
2416         addq    $22,    $6,     $22
2417         cmpult  $22,    $6,     $24
2418         srl     $4,     32,     $6
2419         mulq    $5,     $6,     $25
2420         mulq    $7,     $5,     $5
2421         addq    $28,    $25,    $28
2422         cmpult  $28,    $25,    $1
2423         mulq    $6,     $8,     $6
2424         beq     $1,     $409
2425         sll     $20,    32,     $1
2426         addq    $6,     $1,     $6
2427 $409:
2428         sll     $28,    32,     $25
2429         ldq     $2,     56($18)
2430         addq    $5,     $25,    $5
2431         bis     $5,     $5,     $7
2432         ldq     $4,     40($17)
2433         addq    $23,    $7,     $23
2434         srl     $2,     32,     $8
2435         cmpult  $23,    $7,     $3
2436         zapnot  $4,     15,     $7
2437         mulq    $8,     $7,     $0
2438         srl     $28,    32,     $1
2439         addq    $6,     $1,     $6
2440         cmpult  $5,     $25,    $1
2441         zapnot  $2,     15,     $5
2442         addq    $1,     $6,     $6
2443         addq    $3,     $6,     $6
2444         addq    $22,    $6,     $22
2445         cmpult  $22,    $6,     $1
2446         srl     $4,     32,     $6
2447         mulq    $5,     $6,     $25
2448         mulq    $7,     $5,     $2
2449         addq    $1,     $24,    $24
2450         addq    $0,     $25,    $0
2451         cmpult  $0,     $25,    $1
2452         mulq    $6,     $8,     $6
2453         beq     $1,     $413
2454         sll     $20,    32,     $1
2455         addq    $6,     $1,     $6
2456 $413:
2457         sll     $0,     32,     $25
2458         addq    $2,     $25,    $2
2459         bis     $2,     $2,     $7
2460         addq    $23,    $7,     $23
2461         stq     $23,    96($16)
2462         ldq     $4,     48($17)
2463         ldq     $5,     56($18)
2464         cmpult  $23,    $7,     $3
2465         zapnot  $4,     15,     $7
2466         srl     $5,     32,     $8
2467         mulq    $8,     $7,     $28
2468         srl     $0,     32,     $1
2469         cmpult  $2,     $25,    $2
2470         addq    $6,     $1,     $6
2471         addq    $2,     $6,     $6
2472         addq    $3,     $6,     $6
2473         addq    $22,    $6,     $22
2474         cmpult  $22,    $6,     $1
2475         srl     $4,     32,     $6
2476         zapnot  $5,     15,     $5
2477         mulq    $5,     $6,     $23
2478         mulq    $7,     $5,     $5
2479         addq    $1,     $24,    $24
2480         addq    $28,    $23,    $28
2481         cmpult  $28,    $23,    $1
2482         mulq    $6,     $8,     $6
2483         beq     $1,     $417
2484         sll     $20,    32,     $1
2485         addq    $6,     $1,     $6
2486 $417:
2487         sll     $28,    32,     $23
2488         ldq     $2,     48($18)
2489         addq    $5,     $23,    $5
2490         bis     $5,     $5,     $7
2491         ldq     $4,     56($17)
2492         addq    $22,    $7,     $22
2493         srl     $2,     32,     $8
2494         cmpult  $22,    $7,     $3
2495         zapnot  $4,     15,     $7
2496         mulq    $8,     $7,     $0
2497         srl     $28,    32,     $1
2498         addq    $6,     $1,     $6
2499         cmpult  $5,     $23,    $1
2500         zapnot  $2,     15,     $5
2501         addq    $1,     $6,     $6
2502         addq    $3,     $6,     $6
2503         addq    $24,    $6,     $24
2504         cmpult  $24,    $6,     $23
2505         srl     $4,     32,     $6
2506         mulq    $5,     $6,     $25
2507         mulq    $7,     $5,     $2
2508         addq    $0,     $25,    $0
2509         cmpult  $0,     $25,    $1
2510         mulq    $6,     $8,     $6
2511         beq     $1,     $421
2512         sll     $20,    32,     $1
2513         addq    $6,     $1,     $6
2514 $421:
2515         sll     $0,     32,     $25
2516         addq    $2,     $25,    $2
2517         bis     $2,     $2,     $7
2518         addq    $22,    $7,     $22
2519         stq     $22,    104($16)
2520         ldq     $4,     56($17)
2521         ldq     $5,     56($18)
2522         cmpult  $22,    $7,     $3
2523         zapnot  $4,     15,     $7
2524         srl     $5,     32,     $8
2525         mulq    $8,     $7,     $28
2526         srl     $0,     32,     $1
2527         cmpult  $2,     $25,    $2
2528         addq    $6,     $1,     $6
2529         addq    $2,     $6,     $6
2530         addq    $3,     $6,     $6
2531         addq    $24,    $6,     $24
2532         cmpult  $24,    $6,     $1
2533         srl     $4,     32,     $6
2534         zapnot  $5,     15,     $5
2535         mulq    $5,     $6,     $22
2536         mulq    $7,     $5,     $2
2537         addq    $1,     $23,    $23
2538         addq    $28,    $22,    $28
2539         cmpult  $28,    $22,    $1
2540         mulq    $6,     $8,     $3
2541         beq     $1,     $425
2542         sll     $20,    32,     $1
2543         addq    $3,     $1,     $3
2544 $425:
2545         sll     $28,    32,     $22
2546         srl     $28,    32,     $1
2547         addq    $2,     $22,    $2
2548         addq    $3,     $1,     $3
2549         bis     $2,     $2,     $7
2550         addq    $24,    $7,     $24
2551         cmpult  $7,     $22,    $1
2552         cmpult  $24,    $7,     $2
2553         addq    $1,     $3,     $6
2554         addq    $2,     $6,     $6
2555         stq     $24,    112($16)
2556         addq    $23,    $6,     $23
2557         stq     $23,    120($16)
2558         ret     $31,    ($26),  1
2559         .end bn_mul_comba8
2560         .text
2561         .align 3
2562         .globl bn_sqr_comba4
2563         .ent bn_sqr_comba4
2564 bn_sqr_comba4:
2565 bn_sqr_comba4..ng:
2566         .frame $30,0,$26,0
2567         .prologue 0
2568
2569         ldq     $0,     0($17)
2570         ldq     $1,     8($17)
2571         ldq     $2,     16($17)
2572         ldq     $3,     24($17)
2573         bis     $31,    $31,    $6
2574         mulq    $0,     $0,     $4
2575         umulh   $0,     $0,     $5
2576         stq     $4,     0($16)
2577         bis     $31,    $31,    $4
2578         mulq    $0,     $1,     $7
2579         umulh   $0,     $1,     $8
2580         cmplt   $7,     $31,    $22
2581         cmplt   $8,     $31,    $23
2582         addq    $7,     $7,     $7
2583         addq    $8,     $8,     $8
2584         addq    $8,     $22,    $8
2585         addq    $4,     $23,    $4
2586         addq    $5,     $7,     $5
2587         addq    $6,     $8,     $6
2588         cmpult  $5,     $7,     $24
2589         cmpult  $6,     $8,     $25
2590         addq    $6,     $24,    $6
2591         addq    $4,     $25,    $4
2592         stq     $5,     8($16)
2593         bis     $31,    $31,    $5
2594         mulq    $1,     $1,     $27
2595         umulh   $1,     $1,     $28
2596         addq    $6,     $27,    $6
2597         addq    $4,     $28,    $4
2598         cmpult  $6,     $27,    $21
2599         cmpult  $4,     $28,    $20
2600         addq    $4,     $21,    $4
2601         addq    $5,     $20,    $5
2602         mulq    $2,     $0,     $19
2603         umulh   $2,     $0,     $18
2604         cmplt   $19,    $31,    $17
2605         cmplt   $18,    $31,    $22
2606         addq    $19,    $19,    $19
2607         addq    $18,    $18,    $18
2608         addq    $18,    $17,    $18
2609         addq    $5,     $22,    $5
2610         addq    $6,     $19,    $6
2611         addq    $4,     $18,    $4
2612         cmpult  $6,     $19,    $23
2613         cmpult  $4,     $18,    $7
2614         addq    $4,     $23,    $4
2615         addq    $5,     $7,     $5
2616         stq     $6,     16($16)
2617         bis     $31,    $31,    $6
2618         mulq    $3,     $0,     $8
2619         umulh   $3,     $0,     $24
2620         cmplt   $8,     $31,    $25
2621         cmplt   $24,    $31,    $27
2622         addq    $8,     $8,     $8
2623         addq    $24,    $24,    $24
2624         addq    $24,    $25,    $24
2625         addq    $6,     $27,    $6
2626         addq    $4,     $8,     $4
2627         addq    $5,     $24,    $5
2628         cmpult  $4,     $8,     $28
2629         cmpult  $5,     $24,    $21
2630         addq    $5,     $28,    $5
2631         addq    $6,     $21,    $6
2632         mulq    $2,     $1,     $20
2633         umulh   $2,     $1,     $17
2634         cmplt   $20,    $31,    $22
2635         cmplt   $17,    $31,    $19
2636         addq    $20,    $20,    $20
2637         addq    $17,    $17,    $17
2638         addq    $17,    $22,    $17
2639         addq    $6,     $19,    $6
2640         addq    $4,     $20,    $4
2641         addq    $5,     $17,    $5
2642         cmpult  $4,     $20,    $18
2643         cmpult  $5,     $17,    $23
2644         addq    $5,     $18,    $5
2645         addq    $6,     $23,    $6
2646         stq     $4,     24($16)
2647         bis     $31,    $31,    $4
2648         mulq    $2,     $2,     $7
2649         umulh   $2,     $2,     $25
2650         addq    $5,     $7,     $5
2651         addq    $6,     $25,    $6
2652         cmpult  $5,     $7,     $27
2653         cmpult  $6,     $25,    $8
2654         addq    $6,     $27,    $6
2655         addq    $4,     $8,     $4
2656         mulq    $3,     $1,     $24
2657         umulh   $3,     $1,     $28
2658         cmplt   $24,    $31,    $21
2659         cmplt   $28,    $31,    $22
2660         addq    $24,    $24,    $24
2661         addq    $28,    $28,    $28
2662         addq    $28,    $21,    $28
2663         addq    $4,     $22,    $4
2664         addq    $5,     $24,    $5
2665         addq    $6,     $28,    $6
2666         cmpult  $5,     $24,    $19
2667         cmpult  $6,     $28,    $20
2668         addq    $6,     $19,    $6
2669         addq    $4,     $20,    $4
2670         stq     $5,     32($16)
2671         bis     $31,    $31,    $5
2672         mulq    $3,     $2,     $17
2673         umulh   $3,     $2,     $18
2674         cmplt   $17,    $31,    $23
2675         cmplt   $18,    $31,    $7
2676         addq    $17,    $17,    $17
2677         addq    $18,    $18,    $18
2678         addq    $18,    $23,    $18
2679         addq    $5,     $7,     $5
2680         addq    $6,     $17,    $6
2681         addq    $4,     $18,    $4
2682         cmpult  $6,     $17,    $25
2683         cmpult  $4,     $18,    $27
2684         addq    $4,     $25,    $4
2685         addq    $5,     $27,    $5
2686         stq     $6,     40($16)
2687         bis     $31,    $31,    $6
2688         mulq    $3,     $3,     $8
2689         umulh   $3,     $3,     $21
2690         addq    $4,     $8,     $4
2691         addq    $5,     $21,    $5
2692         cmpult  $4,     $8,     $22
2693         cmpult  $5,     $21,    $24
2694         addq    $5,     $22,    $5
2695         addq    $6,     $24,    $6
2696         stq     $4,     48($16)
2697         stq     $5,     56($16)
2698         ret     $31,($26),1
2699         .end bn_sqr_comba4
2700         .text
2701         .align 3
2702         .globl bn_sqr_comba8
2703         .ent bn_sqr_comba8
2704 bn_sqr_comba8:
2705 bn_sqr_comba8..ng:
2706         .frame $30,0,$26,0
2707         .prologue 0
2708
2709         ldq     $0,     0($17)
2710         ldq     $1,     8($17)
2711         ldq     $2,     16($17)
2712         ldq     $3,     24($17)
2713         ldq     $4,     32($17)
2714         ldq     $5,     40($17)
2715         ldq     $6,     48($17)
2716         ldq     $7,     56($17)
2717         bis     $31,    $31,    $23
2718         mulq    $0,     $0,     $8
2719         umulh   $0,     $0,     $22
2720         stq     $8,     0($16)
2721         bis     $31,    $31,    $8
2722         mulq    $1,     $0,     $24
2723         umulh   $1,     $0,     $25
2724         cmplt   $24,    $31,    $27
2725         cmplt   $25,    $31,    $28
2726         addq    $24,    $24,    $24
2727         addq    $25,    $25,    $25
2728         addq    $25,    $27,    $25
2729         addq    $8,     $28,    $8
2730         addq    $22,    $24,    $22
2731         addq    $23,    $25,    $23
2732         cmpult  $22,    $24,    $21
2733         cmpult  $23,    $25,    $20
2734         addq    $23,    $21,    $23
2735         addq    $8,     $20,    $8
2736         stq     $22,    8($16)
2737         bis     $31,    $31,    $22
2738         mulq    $1,     $1,     $19
2739         umulh   $1,     $1,     $18
2740         addq    $23,    $19,    $23
2741         addq    $8,     $18,    $8
2742         cmpult  $23,    $19,    $17
2743         cmpult  $8,     $18,    $27
2744         addq    $8,     $17,    $8
2745         addq    $22,    $27,    $22
2746         mulq    $2,     $0,     $28
2747         umulh   $2,     $0,     $24
2748         cmplt   $28,    $31,    $25
2749         cmplt   $24,    $31,    $21
2750         addq    $28,    $28,    $28
2751         addq    $24,    $24,    $24
2752         addq    $24,    $25,    $24
2753         addq    $22,    $21,    $22
2754         addq    $23,    $28,    $23
2755         addq    $8,     $24,    $8
2756         cmpult  $23,    $28,    $20
2757         cmpult  $8,     $24,    $19
2758         addq    $8,     $20,    $8
2759         addq    $22,    $19,    $22
2760         stq     $23,    16($16)
2761         bis     $31,    $31,    $23
2762         mulq    $2,     $1,     $18
2763         umulh   $2,     $1,     $17
2764         cmplt   $18,    $31,    $27
2765         cmplt   $17,    $31,    $25
2766         addq    $18,    $18,    $18
2767         addq    $17,    $17,    $17
2768         addq    $17,    $27,    $17
2769         addq    $23,    $25,    $23
2770         addq    $8,     $18,    $8
2771         addq    $22,    $17,    $22
2772         cmpult  $8,     $18,    $21
2773         cmpult  $22,    $17,    $28
2774         addq    $22,    $21,    $22
2775         addq    $23,    $28,    $23
2776         mulq    $3,     $0,     $24
2777         umulh   $3,     $0,     $20
2778         cmplt   $24,    $31,    $19
2779         cmplt   $20,    $31,    $27
2780         addq    $24,    $24,    $24
2781         addq    $20,    $20,    $20
2782         addq    $20,    $19,    $20
2783         addq    $23,    $27,    $23
2784         addq    $8,     $24,    $8
2785         addq    $22,    $20,    $22
2786         cmpult  $8,     $24,    $25
2787         cmpult  $22,    $20,    $18
2788         addq    $22,    $25,    $22
2789         addq    $23,    $18,    $23
2790         stq     $8,     24($16)
2791         bis     $31,    $31,    $8
2792         mulq    $2,     $2,     $17
2793         umulh   $2,     $2,     $21
2794         addq    $22,    $17,    $22
2795         addq    $23,    $21,    $23
2796         cmpult  $22,    $17,    $28
2797         cmpult  $23,    $21,    $19
2798         addq    $23,    $28,    $23
2799         addq    $8,     $19,    $8
2800         mulq    $3,     $1,     $27
2801         umulh   $3,     $1,     $24
2802         cmplt   $27,    $31,    $20
2803         cmplt   $24,    $31,    $25
2804         addq    $27,    $27,    $27
2805         addq    $24,    $24,    $24
2806         addq    $24,    $20,    $24
2807         addq    $8,     $25,    $8
2808         addq    $22,    $27,    $22
2809         addq    $23,    $24,    $23
2810         cmpult  $22,    $27,    $18
2811         cmpult  $23,    $24,    $17
2812         addq    $23,    $18,    $23
2813         addq    $8,     $17,    $8
2814         mulq    $4,     $0,     $21
2815         umulh   $4,     $0,     $28
2816         cmplt   $21,    $31,    $19
2817         cmplt   $28,    $31,    $20
2818         addq    $21,    $21,    $21
2819         addq    $28,    $28,    $28
2820         addq    $28,    $19,    $28
2821         addq    $8,     $20,    $8
2822         addq    $22,    $21,    $22
2823         addq    $23,    $28,    $23
2824         cmpult  $22,    $21,    $25
2825         cmpult  $23,    $28,    $27
2826         addq    $23,    $25,    $23
2827         addq    $8,     $27,    $8
2828         stq     $22,    32($16)
2829         bis     $31,    $31,    $22
2830         mulq    $3,     $2,     $24
2831         umulh   $3,     $2,     $18
2832         cmplt   $24,    $31,    $17
2833         cmplt   $18,    $31,    $19
2834         addq    $24,    $24,    $24
2835         addq    $18,    $18,    $18
2836         addq    $18,    $17,    $18
2837         addq    $22,    $19,    $22
2838         addq    $23,    $24,    $23
2839         addq    $8,     $18,    $8
2840         cmpult  $23,    $24,    $20
2841         cmpult  $8,     $18,    $21
2842         addq    $8,     $20,    $8
2843         addq    $22,    $21,    $22
2844         mulq    $4,     $1,     $28
2845         umulh   $4,     $1,     $25
2846         cmplt   $28,    $31,    $27
2847         cmplt   $25,    $31,    $17
2848         addq    $28,    $28,    $28
2849         addq    $25,    $25,    $25
2850         addq    $25,    $27,    $25
2851         addq    $22,    $17,    $22
2852         addq    $23,    $28,    $23
2853         addq    $8,     $25,    $8
2854         cmpult  $23,    $28,    $19
2855         cmpult  $8,     $25,    $24
2856         addq    $8,     $19,    $8
2857         addq    $22,    $24,    $22
2858         mulq    $5,     $0,     $18
2859         umulh   $5,     $0,     $20
2860         cmplt   $18,    $31,    $21
2861         cmplt   $20,    $31,    $27
2862         addq    $18,    $18,    $18
2863         addq    $20,    $20,    $20
2864         addq    $20,    $21,    $20
2865         addq    $22,    $27,    $22
2866         addq    $23,    $18,    $23
2867         addq    $8,     $20,    $8
2868         cmpult  $23,    $18,    $17
2869         cmpult  $8,     $20,    $28
2870         addq    $8,     $17,    $8
2871         addq    $22,    $28,    $22
2872         stq     $23,    40($16)
2873         bis     $31,    $31,    $23
2874         mulq    $3,     $3,     $25
2875         umulh   $3,     $3,     $19
2876         addq    $8,     $25,    $8
2877         addq    $22,    $19,    $22
2878         cmpult  $8,     $25,    $24
2879         cmpult  $22,    $19,    $21
2880         addq    $22,    $24,    $22
2881         addq    $23,    $21,    $23
2882         mulq    $4,     $2,     $27
2883         umulh   $4,     $2,     $18
2884         cmplt   $27,    $31,    $20
2885         cmplt   $18,    $31,    $17
2886         addq    $27,    $27,    $27
2887         addq    $18,    $18,    $18
2888         addq    $18,    $20,    $18
2889         addq    $23,    $17,    $23
2890         addq    $8,     $27,    $8
2891         addq    $22,    $18,    $22
2892         cmpult  $8,     $27,    $28
2893         cmpult  $22,    $18,    $25
2894         addq    $22,    $28,    $22
2895         addq    $23,    $25,    $23
2896         mulq    $5,     $1,     $19
2897         umulh   $5,     $1,     $24
2898         cmplt   $19,    $31,    $21
2899         cmplt   $24,    $31,    $20
2900         addq    $19,    $19,    $19
2901         addq    $24,    $24,    $24
2902         addq    $24,    $21,    $24
2903         addq    $23,    $20,    $23
2904         addq    $8,     $19,    $8
2905         addq    $22,    $24,    $22
2906         cmpult  $8,     $19,    $17
2907         cmpult  $22,    $24,    $27
2908         addq    $22,    $17,    $22
2909         addq    $23,    $27,    $23
2910         mulq    $6,     $0,     $18
2911         umulh   $6,     $0,     $28
2912         cmplt   $18,    $31,    $25
2913         cmplt   $28,    $31,    $21
2914         addq    $18,    $18,    $18
2915         addq    $28,    $28,    $28
2916         addq    $28,    $25,    $28
2917         addq    $23,    $21,    $23
2918         addq    $8,     $18,    $8
2919         addq    $22,    $28,    $22
2920         cmpult  $8,     $18,    $20
2921         cmpult  $22,    $28,    $19
2922         addq    $22,    $20,    $22
2923         addq    $23,    $19,    $23
2924         stq     $8,     48($16)
2925         bis     $31,    $31,    $8
2926         mulq    $4,     $3,     $24
2927         umulh   $4,     $3,     $17
2928         cmplt   $24,    $31,    $27
2929         cmplt   $17,    $31,    $25
2930         addq    $24,    $24,    $24
2931         addq    $17,    $17,    $17
2932         addq    $17,    $27,    $17
2933         addq    $8,     $25,    $8
2934         addq    $22,    $24,    $22
2935         addq    $23,    $17,    $23
2936         cmpult  $22,    $24,    $21
2937         cmpult  $23,    $17,    $18
2938         addq    $23,    $21,    $23
2939         addq    $8,     $18,    $8
2940         mulq    $5,     $2,     $28
2941         umulh   $5,     $2,     $20
2942         cmplt   $28,    $31,    $19
2943         cmplt   $20,    $31,    $27
2944         addq    $28,    $28,    $28
2945         addq    $20,    $20,    $20
2946         addq    $20,    $19,    $20
2947         addq    $8,     $27,    $8
2948         addq    $22,    $28,    $22
2949         addq    $23,    $20,    $23
2950         cmpult  $22,    $28,    $25
2951         cmpult  $23,    $20,    $24
2952         addq    $23,    $25,    $23
2953         addq    $8,     $24,    $8
2954         mulq    $6,     $1,     $17
2955         umulh   $6,     $1,     $21
2956         cmplt   $17,    $31,    $18
2957         cmplt   $21,    $31,    $19
2958         addq    $17,    $17,    $17
2959         addq    $21,    $21,    $21
2960         addq    $21,    $18,    $21
2961         addq    $8,     $19,    $8
2962         addq    $22,    $17,    $22
2963         addq    $23,    $21,    $23
2964         cmpult  $22,    $17,    $27
2965         cmpult  $23,    $21,    $28
2966         addq    $23,    $27,    $23
2967         addq    $8,     $28,    $8
2968         mulq    $7,     $0,     $20
2969         umulh   $7,     $0,     $25
2970         cmplt   $20,    $31,    $24
2971         cmplt   $25,    $31,    $18
2972         addq    $20,    $20,    $20
2973         addq    $25,    $25,    $25
2974         addq    $25,    $24,    $25
2975         addq    $8,     $18,    $8
2976         addq    $22,    $20,    $22
2977         addq    $23,    $25,    $23
2978         cmpult  $22,    $20,    $19
2979         cmpult  $23,    $25,    $17
2980         addq    $23,    $19,    $23
2981         addq    $8,     $17,    $8
2982         stq     $22,    56($16)
2983         bis     $31,    $31,    $22
2984         mulq    $4,     $4,     $21
2985         umulh   $4,     $4,     $27
2986         addq    $23,    $21,    $23
2987         addq    $8,     $27,    $8
2988         cmpult  $23,    $21,    $28
2989         cmpult  $8,     $27,    $24
2990         addq    $8,     $28,    $8
2991         addq    $22,    $24,    $22
2992         mulq    $5,     $3,     $18
2993         umulh   $5,     $3,     $20
2994         cmplt   $18,    $31,    $25
2995         cmplt   $20,    $31,    $19
2996         addq    $18,    $18,    $18
2997         addq    $20,    $20,    $20
2998         addq    $20,    $25,    $20
2999         addq    $22,    $19,    $22
3000         addq    $23,    $18,    $23
3001         addq    $8,     $20,    $8
3002         cmpult  $23,    $18,    $17
3003         cmpult  $8,     $20,    $21
3004         addq    $8,     $17,    $8
3005         addq    $22,    $21,    $22
3006         mulq    $6,     $2,     $27
3007         umulh   $6,     $2,     $28
3008         cmplt   $27,    $31,    $24
3009         cmplt   $28,    $31,    $25
3010         addq    $27,    $27,    $27
3011         addq    $28,    $28,    $28
3012         addq    $28,    $24,    $28
3013         addq    $22,    $25,    $22
3014         addq    $23,    $27,    $23
3015         addq    $8,     $28,    $8
3016         cmpult  $23,    $27,    $19
3017         cmpult  $8,     $28,    $18
3018         addq    $8,     $19,    $8
3019         addq    $22,    $18,    $22
3020         mulq    $7,     $1,     $20
3021         umulh   $7,     $1,     $17
3022         cmplt   $20,    $31,    $21
3023         cmplt   $17,    $31,    $24
3024         addq    $20,    $20,    $20
3025         addq    $17,    $17,    $17
3026         addq    $17,    $21,    $17
3027         addq    $22,    $24,    $22
3028         addq    $23,    $20,    $23
3029         addq    $8,     $17,    $8
3030         cmpult  $23,    $20,    $25
3031         cmpult  $8,     $17,    $27
3032         addq    $8,     $25,    $8
3033         addq    $22,    $27,    $22
3034         stq     $23,    64($16)
3035         bis     $31,    $31,    $23
3036         mulq    $5,     $4,     $28
3037         umulh   $5,     $4,     $19
3038         cmplt   $28,    $31,    $18
3039         cmplt   $19,    $31,    $21
3040         addq    $28,    $28,    $28
3041         addq    $19,    $19,    $19
3042         addq    $19,    $18,    $19
3043         addq    $23,    $21,    $23
3044         addq    $8,     $28,    $8
3045         addq    $22,    $19,    $22
3046         cmpult  $8,     $28,    $24
3047         cmpult  $22,    $19,    $20
3048         addq    $22,    $24,    $22
3049         addq    $23,    $20,    $23
3050         mulq    $6,     $3,     $17
3051         umulh   $6,     $3,     $25
3052         cmplt   $17,    $31,    $27
3053         cmplt   $25,    $31,    $18
3054         addq    $17,    $17,    $17
3055         addq    $25,    $25,    $25
3056         addq    $25,    $27,    $25
3057         addq    $23,    $18,    $23
3058         addq    $8,     $17,    $8
3059         addq    $22,    $25,    $22
3060         cmpult  $8,     $17,    $21
3061         cmpult  $22,    $25,    $28
3062         addq    $22,    $21,    $22
3063         addq    $23,    $28,    $23
3064         mulq    $7,     $2,     $19
3065         umulh   $7,     $2,     $24
3066         cmplt   $19,    $31,    $20
3067         cmplt   $24,    $31,    $27
3068         addq    $19,    $19,    $19
3069         addq    $24,    $24,    $24
3070         addq    $24,    $20,    $24
3071         addq    $23,    $27,    $23
3072         addq    $8,     $19,    $8
3073         addq    $22,    $24,    $22
3074         cmpult  $8,     $19,    $18
3075         cmpult  $22,    $24,    $17
3076         addq    $22,    $18,    $22
3077         addq    $23,    $17,    $23
3078         stq     $8,     72($16)
3079         bis     $31,    $31,    $8
3080         mulq    $5,     $5,     $25
3081         umulh   $5,     $5,     $21
3082         addq    $22,    $25,    $22
3083         addq    $23,    $21,    $23
3084         cmpult  $22,    $25,    $28
3085         cmpult  $23,    $21,    $20
3086         addq    $23,    $28,    $23
3087         addq    $8,     $20,    $8
3088         mulq    $6,     $4,     $27
3089         umulh   $6,     $4,     $19
3090         cmplt   $27,    $31,    $24
3091         cmplt   $19,    $31,    $18
3092         addq    $27,    $27,    $27
3093         addq    $19,    $19,    $19
3094         addq    $19,    $24,    $19
3095         addq    $8,     $18,    $8
3096         addq    $22,    $27,    $22
3097         addq    $23,    $19,    $23
3098         cmpult  $22,    $27,    $17
3099         cmpult  $23,    $19,    $25
3100         addq    $23,    $17,    $23
3101         addq    $8,     $25,    $8
3102         mulq    $7,     $3,     $21
3103         umulh   $7,     $3,     $28
3104         cmplt   $21,    $31,    $20
3105         cmplt   $28,    $31,    $24
3106         addq    $21,    $21,    $21
3107         addq    $28,    $28,    $28
3108         addq    $28,    $20,    $28
3109         addq    $8,     $24,    $8
3110         addq    $22,    $21,    $22
3111         addq    $23,    $28,    $23
3112         cmpult  $22,    $21,    $18
3113         cmpult  $23,    $28,    $27
3114         addq    $23,    $18,    $23
3115         addq    $8,     $27,    $8
3116         stq     $22,    80($16)
3117         bis     $31,    $31,    $22
3118         mulq    $6,     $5,     $19
3119         umulh   $6,     $5,     $17
3120         cmplt   $19,    $31,    $25
3121         cmplt   $17,    $31,    $20
3122         addq    $19,    $19,    $19
3123         addq    $17,    $17,    $17
3124         addq    $17,    $25,    $17
3125         addq    $22,    $20,    $22
3126         addq    $23,    $19,    $23
3127         addq    $8,     $17,    $8
3128         cmpult  $23,    $19,    $24
3129         cmpult  $8,     $17,    $21
3130         addq    $8,     $24,    $8
3131         addq    $22,    $21,    $22
3132         mulq    $7,     $4,     $28
3133         umulh   $7,     $4,     $18
3134         cmplt   $28,    $31,    $27
3135         cmplt   $18,    $31,    $25
3136         addq    $28,    $28,    $28
3137         addq    $18,    $18,    $18
3138         addq    $18,    $27,    $18
3139         addq    $22,    $25,    $22
3140         addq    $23,    $28,    $23
3141         addq    $8,     $18,    $8
3142         cmpult  $23,    $28,    $20
3143         cmpult  $8,     $18,    $19
3144         addq    $8,     $20,    $8
3145         addq    $22,    $19,    $22
3146         stq     $23,    88($16)
3147         bis     $31,    $31,    $23
3148         mulq    $6,     $6,     $17
3149         umulh   $6,     $6,     $24
3150         addq    $8,     $17,    $8
3151         addq    $22,    $24,    $22
3152         cmpult  $8,     $17,    $21
3153         cmpult  $22,    $24,    $27
3154         addq    $22,    $21,    $22
3155         addq    $23,    $27,    $23
3156         mulq    $7,     $5,     $25
3157         umulh   $7,     $5,     $28
3158         cmplt   $25,    $31,    $18
3159         cmplt   $28,    $31,    $20
3160         addq    $25,    $25,    $25
3161         addq    $28,    $28,    $28
3162         addq    $28,    $18,    $28
3163         addq    $23,    $20,    $23
3164         addq    $8,     $25,    $8
3165         addq    $22,    $28,    $22
3166         cmpult  $8,     $25,    $19
3167         cmpult  $22,    $28,    $17
3168         addq    $22,    $19,    $22
3169         addq    $23,    $17,    $23
3170         stq     $8,     96($16)
3171         bis     $31,    $31,    $8
3172         mulq    $7,     $6,     $24
3173         umulh   $7,     $6,     $21
3174         cmplt   $24,    $31,    $27
3175         cmplt   $21,    $31,    $18
3176         addq    $24,    $24,    $24
3177         addq    $21,    $21,    $21
3178         addq    $21,    $27,    $21
3179         addq    $8,     $18,    $8
3180         addq    $22,    $24,    $22
3181         addq    $23,    $21,    $23
3182         cmpult  $22,    $24,    $20
3183         cmpult  $23,    $21,    $25
3184         addq    $23,    $20,    $23
3185         addq    $8,     $25,    $8
3186         stq     $22,    104($16)
3187         bis     $31,    $31,    $22
3188         mulq    $7,     $7,     $28
3189         umulh   $7,     $7,     $19
3190         addq    $23,    $28,    $23
3191         addq    $8,     $19,    $8
3192         cmpult  $23,    $28,    $17
3193         cmpult  $8,     $19,    $27
3194         addq    $8,     $17,    $8
3195         addq    $22,    $27,    $22
3196         stq     $23,    112($16)
3197         stq     $8,     120($16)
3198         ret     $31,($26),1
3199         .end bn_sqr_comba8