]> git.ipfire.org Git - thirdparty/openssl.git/blob - crypto/bn/asm/alpha.s
Import of old SSLeay release: SSLeay 0.9.1b (unreleased)
[thirdparty/openssl.git] / crypto / bn / asm / alpha.s
1 # DEC Alpha assember
2 # The bn_div64 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_div64.
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_div64
332 .ent bn_div64
333 bn_div64:
334 ldgp $29,0($27)
335 bn_div64..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_div64
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
698 subq $30, 16, $30
699 ldq $0, 0($17)
700 ldq $1, 0($18)
701 stq $9, 0($30)
702 stq $10, 8($30)
703 ldq $2, 8($17)
704 ldq $3, 8($18)
705 ldq $4, 16($17)
706 ldq $5, 16($18)
707 ldq $6, 24($17)
708 ldq $7, 24($18)
709 ldq $8, 8($17)
710 ldq $22, 8($18)
711 ldq $23, 8($17)
712 ldq $24, 8($18)
713 ldq $25, 8($17)
714 ldq $27, 8($18)
715 ldq $28, 8($17)
716 ldq $21, 8($18)
717 bis $31, $31, $9
718 mulq $0, $1, $20
719 umulh $0, $1, $19
720 stq $20, 0($16)
721 bis $31, $31, $20
722 mulq $0, $3, $10
723 umulh $0, $3, $17
724 addq $19, $10, $19
725 cmpult $19, $10, $18
726 addq $18, $17, $17
727 addq $9, $17, $9
728 cmpult $9, $17, $10
729 addq $20, $10, $20
730 mulq $2, $1, $18
731 umulh $2, $1, $17
732 addq $19, $18, $19
733 cmpult $19, $18, $10
734 addq $10, $17, $17
735 addq $9, $17, $9
736 cmpult $9, $17, $18
737 addq $20, $18, $20
738 stq $19, 8($16)
739 bis $31, $31, $19
740 mulq $0, $5, $10
741 umulh $0, $5, $17
742 addq $9, $10, $9
743 cmpult $9, $10, $18
744 addq $18, $17, $17
745 addq $20, $17, $20
746 cmpult $20, $17, $10
747 addq $19, $10, $19
748 mulq $2, $3, $18
749 umulh $2, $3, $17
750 addq $9, $18, $9
751 cmpult $9, $18, $10
752 addq $10, $17, $17
753 addq $20, $17, $20
754 cmpult $20, $17, $18
755 addq $19, $18, $19
756 mulq $4, $1, $10
757 umulh $4, $1, $17
758 addq $9, $10, $9
759 cmpult $9, $10, $18
760 addq $18, $17, $17
761 addq $20, $17, $20
762 cmpult $20, $17, $10
763 addq $19, $10, $19
764 stq $9, 16($16)
765 bis $31, $31, $9
766 mulq $0, $7, $18
767 umulh $0, $7, $17
768 addq $20, $18, $20
769 cmpult $20, $18, $10
770 addq $10, $17, $17
771 addq $19, $17, $19
772 cmpult $19, $17, $18
773 addq $9, $18, $9
774 mulq $2, $5, $10
775 umulh $2, $5, $17
776 addq $20, $10, $20
777 cmpult $20, $10, $18
778 addq $18, $17, $17
779 addq $19, $17, $19
780 cmpult $19, $17, $10
781 addq $9, $10, $9
782 mulq $4, $3, $18
783 umulh $4, $3, $17
784 addq $20, $18, $20
785 cmpult $20, $18, $10
786 addq $10, $17, $17
787 addq $19, $17, $19
788 cmpult $19, $17, $18
789 addq $9, $18, $9
790 mulq $6, $1, $10
791 umulh $6, $1, $17
792 addq $20, $10, $20
793 cmpult $20, $10, $18
794 addq $18, $17, $17
795 addq $19, $17, $19
796 cmpult $19, $17, $10
797 addq $9, $10, $9
798 stq $20, 24($16)
799 bis $31, $31, $20
800 mulq $0, $22, $18
801 umulh $0, $22, $17
802 addq $19, $18, $19
803 cmpult $19, $18, $10
804 addq $10, $17, $17
805 addq $9, $17, $9
806 cmpult $9, $17, $18
807 addq $20, $18, $20
808 mulq $2, $7, $10
809 umulh $2, $7, $17
810 addq $19, $10, $19
811 cmpult $19, $10, $18
812 addq $18, $17, $17
813 addq $9, $17, $9
814 cmpult $9, $17, $10
815 addq $20, $10, $20
816 mulq $4, $5, $18
817 umulh $4, $5, $17
818 addq $19, $18, $19
819 cmpult $19, $18, $10
820 addq $10, $17, $17
821 addq $9, $17, $9
822 cmpult $9, $17, $18
823 addq $20, $18, $20
824 mulq $6, $3, $10
825 umulh $6, $3, $17
826 addq $19, $10, $19
827 cmpult $19, $10, $18
828 addq $18, $17, $17
829 addq $9, $17, $9
830 cmpult $9, $17, $10
831 addq $20, $10, $20
832 mulq $8, $1, $18
833 umulh $8, $1, $17
834 addq $19, $18, $19
835 cmpult $19, $18, $10
836 addq $10, $17, $17
837 addq $9, $17, $9
838 cmpult $9, $17, $18
839 addq $20, $18, $20
840 stq $19, 32($16)
841 bis $31, $31, $19
842 mulq $0, $24, $10
843 umulh $0, $24, $17
844 addq $9, $10, $9
845 cmpult $9, $10, $18
846 addq $18, $17, $17
847 addq $20, $17, $20
848 cmpult $20, $17, $10
849 addq $19, $10, $19
850 mulq $2, $22, $18
851 umulh $2, $22, $17
852 addq $9, $18, $9
853 cmpult $9, $18, $10
854 addq $10, $17, $17
855 addq $20, $17, $20
856 cmpult $20, $17, $18
857 addq $19, $18, $19
858 mulq $4, $7, $10
859 umulh $4, $7, $17
860 addq $9, $10, $9
861 cmpult $9, $10, $18
862 addq $18, $17, $17
863 addq $20, $17, $20
864 cmpult $20, $17, $10
865 addq $19, $10, $19
866 mulq $6, $5, $18
867 umulh $6, $5, $17
868 addq $9, $18, $9
869 cmpult $9, $18, $10
870 addq $10, $17, $17
871 addq $20, $17, $20
872 cmpult $20, $17, $18
873 addq $19, $18, $19
874 mulq $8, $3, $10
875 umulh $8, $3, $17
876 addq $9, $10, $9
877 cmpult $9, $10, $18
878 addq $18, $17, $17
879 addq $20, $17, $20
880 cmpult $20, $17, $10
881 addq $19, $10, $19
882 mulq $23, $1, $18
883 umulh $23, $1, $17
884 addq $9, $18, $9
885 cmpult $9, $18, $10
886 addq $10, $17, $17
887 addq $20, $17, $20
888 cmpult $20, $17, $18
889 addq $19, $18, $19
890 stq $9, 40($16)
891 bis $31, $31, $9
892 mulq $0, $27, $10
893 umulh $0, $27, $17
894 addq $20, $10, $20
895 cmpult $20, $10, $18
896 addq $18, $17, $17
897 addq $19, $17, $19
898 cmpult $19, $17, $10
899 addq $9, $10, $9
900 mulq $2, $24, $18
901 umulh $2, $24, $17
902 addq $20, $18, $20
903 cmpult $20, $18, $10
904 addq $10, $17, $17
905 addq $19, $17, $19
906 cmpult $19, $17, $18
907 addq $9, $18, $9
908 mulq $4, $22, $10
909 umulh $4, $22, $17
910 addq $20, $10, $20
911 cmpult $20, $10, $18
912 addq $18, $17, $17
913 addq $19, $17, $19
914 cmpult $19, $17, $10
915 addq $9, $10, $9
916 mulq $6, $7, $18
917 umulh $6, $7, $17
918 addq $20, $18, $20
919 cmpult $20, $18, $10
920 addq $10, $17, $17
921 addq $19, $17, $19
922 cmpult $19, $17, $18
923 addq $9, $18, $9
924 mulq $8, $5, $10
925 umulh $8, $5, $17
926 addq $20, $10, $20
927 cmpult $20, $10, $18
928 addq $18, $17, $17
929 addq $19, $17, $19
930 cmpult $19, $17, $10
931 addq $9, $10, $9
932 mulq $23, $3, $18
933 umulh $23, $3, $17
934 addq $20, $18, $20
935 cmpult $20, $18, $10
936 addq $10, $17, $17
937 addq $19, $17, $19
938 cmpult $19, $17, $18
939 addq $9, $18, $9
940 mulq $25, $1, $10
941 umulh $25, $1, $17
942 addq $20, $10, $20
943 cmpult $20, $10, $18
944 addq $18, $17, $17
945 addq $19, $17, $19
946 cmpult $19, $17, $10
947 addq $9, $10, $9
948 stq $20, 48($16)
949 bis $31, $31, $20
950 mulq $0, $21, $18
951 umulh $0, $21, $17
952 addq $19, $18, $19
953 cmpult $19, $18, $10
954 addq $10, $17, $17
955 addq $9, $17, $9
956 cmpult $9, $17, $18
957 addq $20, $18, $20
958 mulq $2, $27, $10
959 umulh $2, $27, $17
960 addq $19, $10, $19
961 cmpult $19, $10, $18
962 addq $18, $17, $17
963 addq $9, $17, $9
964 cmpult $9, $17, $0
965 addq $20, $0, $20
966 mulq $4, $24, $10
967 umulh $4, $24, $18
968 addq $19, $10, $19
969 cmpult $19, $10, $17
970 addq $17, $18, $18
971 addq $9, $18, $9
972 cmpult $9, $18, $0
973 addq $20, $0, $20
974 mulq $6, $22, $10
975 umulh $6, $22, $17
976 addq $19, $10, $19
977 cmpult $19, $10, $18
978 addq $18, $17, $17
979 addq $9, $17, $9
980 cmpult $9, $17, $0
981 addq $20, $0, $20
982 mulq $8, $7, $10
983 umulh $8, $7, $18
984 addq $19, $10, $19
985 cmpult $19, $10, $17
986 addq $17, $18, $18
987 addq $9, $18, $9
988 cmpult $9, $18, $0
989 addq $20, $0, $20
990 mulq $23, $5, $10
991 umulh $23, $5, $17
992 addq $19, $10, $19
993 cmpult $19, $10, $18
994 addq $18, $17, $17
995 addq $9, $17, $9
996 cmpult $9, $17, $0
997 addq $20, $0, $20
998 mulq $25, $3, $10
999 umulh $25, $3, $18
1000 addq $19, $10, $19
1001 cmpult $19, $10, $17
1002 addq $17, $18, $18
1003 addq $9, $18, $9
1004 cmpult $9, $18, $0
1005 addq $20, $0, $20
1006 mulq $28, $1, $10
1007 umulh $28, $1, $17
1008 addq $19, $10, $19
1009 cmpult $19, $10, $18
1010 addq $18, $17, $17
1011 addq $9, $17, $9
1012 cmpult $9, $17, $0
1013 addq $20, $0, $20
1014 stq $19, 56($16)
1015 bis $31, $31, $19
1016 mulq $2, $21, $10
1017 umulh $2, $21, $18
1018 addq $9, $10, $9
1019 cmpult $9, $10, $17
1020 addq $17, $18, $18
1021 addq $20, $18, $20
1022 cmpult $20, $18, $0
1023 addq $19, $0, $19
1024 mulq $4, $27, $1
1025 umulh $4, $27, $10
1026 addq $9, $1, $9
1027 cmpult $9, $1, $17
1028 addq $17, $10, $10
1029 addq $20, $10, $20
1030 cmpult $20, $10, $18
1031 addq $19, $18, $19
1032 mulq $6, $24, $0
1033 umulh $6, $24, $2
1034 addq $9, $0, $9
1035 cmpult $9, $0, $1
1036 addq $1, $2, $2
1037 addq $20, $2, $20
1038 cmpult $20, $2, $17
1039 addq $19, $17, $19
1040 mulq $8, $22, $10
1041 umulh $8, $22, $18
1042 addq $9, $10, $9
1043 cmpult $9, $10, $0
1044 addq $0, $18, $18
1045 addq $20, $18, $20
1046 cmpult $20, $18, $1
1047 addq $19, $1, $19
1048 mulq $23, $7, $2
1049 umulh $23, $7, $17
1050 addq $9, $2, $9
1051 cmpult $9, $2, $10
1052 addq $10, $17, $17
1053 addq $20, $17, $20
1054 cmpult $20, $17, $0
1055 addq $19, $0, $19
1056 mulq $25, $5, $18
1057 umulh $25, $5, $1
1058 addq $9, $18, $9
1059 cmpult $9, $18, $2
1060 addq $2, $1, $1
1061 addq $20, $1, $20
1062 cmpult $20, $1, $10
1063 addq $19, $10, $19
1064 mulq $28, $3, $17
1065 umulh $28, $3, $0
1066 addq $9, $17, $9
1067 cmpult $9, $17, $18
1068 addq $18, $0, $0
1069 addq $20, $0, $20
1070 cmpult $20, $0, $2
1071 addq $19, $2, $19
1072 stq $9, 64($16)
1073 bis $31, $31, $9
1074 mulq $4, $21, $1
1075 umulh $4, $21, $10
1076 addq $20, $1, $20
1077 cmpult $20, $1, $17
1078 addq $17, $10, $10
1079 addq $19, $10, $19
1080 cmpult $19, $10, $18
1081 addq $9, $18, $9
1082 mulq $6, $27, $0
1083 umulh $6, $27, $2
1084 addq $20, $0, $20
1085 cmpult $20, $0, $3
1086 addq $3, $2, $2
1087 addq $19, $2, $19
1088 cmpult $19, $2, $1
1089 addq $9, $1, $9
1090 mulq $8, $24, $17
1091 umulh $8, $24, $10
1092 addq $20, $17, $20
1093 cmpult $20, $17, $18
1094 addq $18, $10, $10
1095 addq $19, $10, $19
1096 cmpult $19, $10, $4
1097 addq $9, $4, $9
1098 mulq $23, $22, $0
1099 umulh $23, $22, $3
1100 addq $20, $0, $20
1101 cmpult $20, $0, $2
1102 addq $2, $3, $3
1103 addq $19, $3, $19
1104 cmpult $19, $3, $1
1105 addq $9, $1, $9
1106 mulq $25, $7, $17
1107 umulh $25, $7, $18
1108 addq $20, $17, $20
1109 cmpult $20, $17, $10
1110 addq $10, $18, $18
1111 addq $19, $18, $19
1112 cmpult $19, $18, $4
1113 addq $9, $4, $9
1114 mulq $28, $5, $0
1115 umulh $28, $5, $2
1116 addq $20, $0, $20
1117 cmpult $20, $0, $3
1118 addq $3, $2, $2
1119 addq $19, $2, $19
1120 cmpult $19, $2, $1
1121 addq $9, $1, $9
1122 stq $20, 72($16)
1123 bis $31, $31, $20
1124 mulq $6, $21, $17
1125 umulh $6, $21, $10
1126 addq $19, $17, $19
1127 cmpult $19, $17, $18
1128 addq $18, $10, $10
1129 addq $9, $10, $9
1130 cmpult $9, $10, $4
1131 addq $20, $4, $20
1132 mulq $8, $27, $0
1133 umulh $8, $27, $3
1134 addq $19, $0, $19
1135 cmpult $19, $0, $2
1136 addq $2, $3, $3
1137 addq $9, $3, $9
1138 cmpult $9, $3, $1
1139 addq $20, $1, $20
1140 mulq $23, $24, $5
1141 umulh $23, $24, $17
1142 addq $19, $5, $19
1143 cmpult $19, $5, $18
1144 addq $18, $17, $17
1145 addq $9, $17, $9
1146 cmpult $9, $17, $10
1147 addq $20, $10, $20
1148 mulq $25, $22, $4
1149 umulh $25, $22, $6
1150 addq $19, $4, $19
1151 cmpult $19, $4, $0
1152 addq $0, $6, $6
1153 addq $9, $6, $9
1154 cmpult $9, $6, $2
1155 addq $20, $2, $20
1156 mulq $28, $7, $3
1157 umulh $28, $7, $1
1158 addq $19, $3, $19
1159 cmpult $19, $3, $5
1160 addq $5, $1, $1
1161 addq $9, $1, $9
1162 cmpult $9, $1, $18
1163 addq $20, $18, $20
1164 stq $19, 80($16)
1165 bis $31, $31, $19
1166 mulq $8, $21, $17
1167 umulh $8, $21, $10
1168 addq $9, $17, $9
1169 cmpult $9, $17, $4
1170 addq $4, $10, $10
1171 addq $20, $10, $20
1172 cmpult $20, $10, $0
1173 addq $19, $0, $19
1174 mulq $23, $27, $6
1175 umulh $23, $27, $2
1176 addq $9, $6, $9
1177 cmpult $9, $6, $3
1178 addq $3, $2, $2
1179 addq $20, $2, $20
1180 cmpult $20, $2, $5
1181 addq $19, $5, $19
1182 mulq $25, $24, $1
1183 umulh $25, $24, $18
1184 addq $9, $1, $9
1185 cmpult $9, $1, $7
1186 addq $7, $18, $18
1187 addq $20, $18, $20
1188 cmpult $20, $18, $17
1189 addq $19, $17, $19
1190 mulq $28, $22, $4
1191 umulh $28, $22, $10
1192 addq $9, $4, $9
1193 cmpult $9, $4, $0
1194 addq $0, $10, $10
1195 addq $20, $10, $20
1196 cmpult $20, $10, $8
1197 addq $19, $8, $19
1198 stq $9, 88($16)
1199 bis $31, $31, $9
1200 mulq $23, $21, $6
1201 umulh $23, $21, $3
1202 addq $20, $6, $20
1203 cmpult $20, $6, $2
1204 addq $2, $3, $3
1205 addq $19, $3, $19
1206 cmpult $19, $3, $5
1207 addq $9, $5, $9
1208 mulq $25, $27, $1
1209 umulh $25, $27, $7
1210 addq $20, $1, $20
1211 cmpult $20, $1, $18
1212 addq $18, $7, $7
1213 addq $19, $7, $19
1214 cmpult $19, $7, $17
1215 addq $9, $17, $9
1216 mulq $28, $24, $4
1217 umulh $28, $24, $0
1218 addq $20, $4, $20
1219 cmpult $20, $4, $10
1220 addq $10, $0, $0
1221 addq $19, $0, $19
1222 cmpult $19, $0, $8
1223 addq $9, $8, $9
1224 stq $20, 96($16)
1225 bis $31, $31, $20
1226 mulq $25, $21, $22
1227 umulh $25, $21, $6
1228 addq $19, $22, $19
1229 cmpult $19, $22, $2
1230 addq $2, $6, $6
1231 addq $9, $6, $9
1232 cmpult $9, $6, $3
1233 addq $20, $3, $20
1234 mulq $28, $27, $5
1235 umulh $28, $27, $23
1236 addq $19, $5, $19
1237 cmpult $19, $5, $1
1238 addq $1, $23, $23
1239 addq $9, $23, $9
1240 cmpult $9, $23, $18
1241 addq $20, $18, $20
1242 stq $19, 104($16)
1243 bis $31, $31, $19
1244 mulq $28, $21, $7
1245 umulh $28, $21, $17
1246 addq $9, $7, $9
1247 cmpult $9, $7, $4
1248 addq $4, $17, $17
1249 addq $20, $17, $20
1250 cmpult $20, $17, $10
1251 addq $19, $10, $19
1252 stq $9, 112($16)
1253 stq $20, 120($16)
1254 ldq $9, 0($30)
1255 ldq $10, 8($30)
1256 addq $30, 16, $30
1257 ret $31,($26),1
1258 .end bn_mul_comba8
1259 .text
1260 .align 3
1261 .globl bn_sqr_comba4
1262 .ent bn_sqr_comba4
1263 bn_sqr_comba4:
1264 bn_sqr_comba4..ng:
1265 .frame $30,0,$26,0
1266 .prologue 0
1267
1268 ldq $0, 0($17)
1269 ldq $1, 8($17)
1270 ldq $2, 16($17)
1271 ldq $3, 24($17)
1272 bis $31, $31, $6
1273 mulq $0, $0, $4
1274 umulh $0, $0, $5
1275 stq $4, 0($16)
1276 bis $31, $31, $4
1277 mulq $0, $1, $7
1278 umulh $0, $1, $8
1279 cmplt $7, $31, $22
1280 cmplt $8, $31, $23
1281 addq $7, $7, $7
1282 addq $8, $8, $8
1283 addq $8, $22, $8
1284 addq $4, $23, $4
1285 addq $5, $7, $5
1286 addq $6, $8, $6
1287 cmpult $5, $7, $24
1288 cmpult $6, $8, $25
1289 addq $6, $24, $6
1290 addq $4, $25, $4
1291 stq $5, 8($16)
1292 bis $31, $31, $5
1293 mulq $1, $1, $27
1294 umulh $1, $1, $28
1295 addq $6, $27, $6
1296 addq $4, $28, $4
1297 cmpult $6, $27, $21
1298 cmpult $4, $28, $20
1299 addq $4, $21, $4
1300 addq $5, $20, $5
1301 mulq $2, $0, $19
1302 umulh $2, $0, $18
1303 cmplt $19, $31, $17
1304 cmplt $18, $31, $22
1305 addq $19, $19, $19
1306 addq $18, $18, $18
1307 addq $18, $17, $18
1308 addq $5, $22, $5
1309 addq $6, $19, $6
1310 addq $4, $18, $4
1311 cmpult $6, $19, $23
1312 cmpult $4, $18, $7
1313 addq $4, $23, $4
1314 addq $5, $7, $5
1315 stq $6, 16($16)
1316 bis $31, $31, $6
1317 mulq $3, $0, $8
1318 umulh $3, $0, $24
1319 cmplt $8, $31, $25
1320 cmplt $24, $31, $27
1321 addq $8, $8, $8
1322 addq $24, $24, $24
1323 addq $24, $25, $24
1324 addq $6, $27, $6
1325 addq $4, $8, $4
1326 addq $5, $24, $5
1327 cmpult $4, $8, $28
1328 cmpult $5, $24, $21
1329 addq $5, $28, $5
1330 addq $6, $21, $6
1331 mulq $2, $1, $20
1332 umulh $2, $1, $17
1333 cmplt $20, $31, $22
1334 cmplt $17, $31, $19
1335 addq $20, $20, $20
1336 addq $17, $17, $17
1337 addq $17, $22, $17
1338 addq $6, $19, $6
1339 addq $4, $20, $4
1340 addq $5, $17, $5
1341 cmpult $4, $20, $18
1342 cmpult $5, $17, $23
1343 addq $5, $18, $5
1344 addq $6, $23, $6
1345 stq $4, 24($16)
1346 bis $31, $31, $4
1347 mulq $2, $2, $7
1348 umulh $2, $2, $25
1349 addq $5, $7, $5
1350 addq $6, $25, $6
1351 cmpult $5, $7, $27
1352 cmpult $6, $25, $8
1353 addq $6, $27, $6
1354 addq $4, $8, $4
1355 mulq $3, $1, $24
1356 umulh $3, $1, $28
1357 cmplt $24, $31, $21
1358 cmplt $28, $31, $22
1359 addq $24, $24, $24
1360 addq $28, $28, $28
1361 addq $28, $21, $28
1362 addq $4, $22, $4
1363 addq $5, $24, $5
1364 addq $6, $28, $6
1365 cmpult $5, $24, $19
1366 cmpult $6, $28, $20
1367 addq $6, $19, $6
1368 addq $4, $20, $4
1369 stq $5, 32($16)
1370 bis $31, $31, $5
1371 mulq $3, $2, $17
1372 umulh $3, $2, $18
1373 cmplt $17, $31, $23
1374 cmplt $18, $31, $7
1375 addq $17, $17, $17
1376 addq $18, $18, $18
1377 addq $18, $23, $18
1378 addq $5, $7, $5
1379 addq $6, $17, $6
1380 addq $4, $18, $4
1381 cmpult $6, $17, $25
1382 cmpult $4, $18, $27
1383 addq $4, $25, $4
1384 addq $5, $27, $5
1385 stq $6, 40($16)
1386 bis $31, $31, $6
1387 mulq $3, $3, $8
1388 umulh $3, $3, $21
1389 addq $4, $8, $4
1390 addq $5, $21, $5
1391 cmpult $4, $8, $22
1392 cmpult $5, $21, $24
1393 addq $5, $22, $5
1394 addq $6, $24, $6
1395 stq $4, 48($16)
1396 stq $5, 56($16)
1397 ret $31,($26),1
1398 .end bn_sqr_comba4
1399 .text
1400 .align 3
1401 .globl bn_sqr_comba8
1402 .ent bn_sqr_comba8
1403 bn_sqr_comba8:
1404 bn_sqr_comba8..ng:
1405 .frame $30,0,$26,0
1406 .prologue 0
1407
1408 ldq $0, 0($17)
1409 ldq $1, 8($17)
1410 ldq $2, 16($17)
1411 ldq $3, 24($17)
1412 ldq $4, 32($17)
1413 ldq $5, 40($17)
1414 ldq $6, 48($17)
1415 ldq $7, 56($17)
1416 bis $31, $31, $23
1417 mulq $0, $0, $8
1418 umulh $0, $0, $22
1419 stq $8, 0($16)
1420 bis $31, $31, $8
1421 mulq $1, $0, $24
1422 umulh $1, $0, $25
1423 cmplt $24, $31, $27
1424 cmplt $25, $31, $28
1425 addq $24, $24, $24
1426 addq $25, $25, $25
1427 addq $25, $27, $25
1428 addq $8, $28, $8
1429 addq $22, $24, $22
1430 addq $23, $25, $23
1431 cmpult $22, $24, $21
1432 cmpult $23, $25, $20
1433 addq $23, $21, $23
1434 addq $8, $20, $8
1435 stq $22, 8($16)
1436 bis $31, $31, $22
1437 mulq $1, $1, $19
1438 umulh $1, $1, $18
1439 addq $23, $19, $23
1440 addq $8, $18, $8
1441 cmpult $23, $19, $17
1442 cmpult $8, $18, $27
1443 addq $8, $17, $8
1444 addq $22, $27, $22
1445 mulq $2, $0, $28
1446 umulh $2, $0, $24
1447 cmplt $28, $31, $25
1448 cmplt $24, $31, $21
1449 addq $28, $28, $28
1450 addq $24, $24, $24
1451 addq $24, $25, $24
1452 addq $22, $21, $22
1453 addq $23, $28, $23
1454 addq $8, $24, $8
1455 cmpult $23, $28, $20
1456 cmpult $8, $24, $19
1457 addq $8, $20, $8
1458 addq $22, $19, $22
1459 stq $23, 16($16)
1460 bis $31, $31, $23
1461 mulq $2, $1, $18
1462 umulh $2, $1, $17
1463 cmplt $18, $31, $27
1464 cmplt $17, $31, $25
1465 addq $18, $18, $18
1466 addq $17, $17, $17
1467 addq $17, $27, $17
1468 addq $23, $25, $23
1469 addq $8, $18, $8
1470 addq $22, $17, $22
1471 cmpult $8, $18, $21
1472 cmpult $22, $17, $28
1473 addq $22, $21, $22
1474 addq $23, $28, $23
1475 mulq $3, $0, $24
1476 umulh $3, $0, $20
1477 cmplt $24, $31, $19
1478 cmplt $20, $31, $27
1479 addq $24, $24, $24
1480 addq $20, $20, $20
1481 addq $20, $19, $20
1482 addq $23, $27, $23
1483 addq $8, $24, $8
1484 addq $22, $20, $22
1485 cmpult $8, $24, $25
1486 cmpult $22, $20, $18
1487 addq $22, $25, $22
1488 addq $23, $18, $23
1489 stq $8, 24($16)
1490 bis $31, $31, $8
1491 mulq $2, $2, $17
1492 umulh $2, $2, $21
1493 addq $22, $17, $22
1494 addq $23, $21, $23
1495 cmpult $22, $17, $28
1496 cmpult $23, $21, $19
1497 addq $23, $28, $23
1498 addq $8, $19, $8
1499 mulq $3, $1, $27
1500 umulh $3, $1, $24
1501 cmplt $27, $31, $20
1502 cmplt $24, $31, $25
1503 addq $27, $27, $27
1504 addq $24, $24, $24
1505 addq $24, $20, $24
1506 addq $8, $25, $8
1507 addq $22, $27, $22
1508 addq $23, $24, $23
1509 cmpult $22, $27, $18
1510 cmpult $23, $24, $17
1511 addq $23, $18, $23
1512 addq $8, $17, $8
1513 mulq $4, $0, $21
1514 umulh $4, $0, $28
1515 cmplt $21, $31, $19
1516 cmplt $28, $31, $20
1517 addq $21, $21, $21
1518 addq $28, $28, $28
1519 addq $28, $19, $28
1520 addq $8, $20, $8
1521 addq $22, $21, $22
1522 addq $23, $28, $23
1523 cmpult $22, $21, $25
1524 cmpult $23, $28, $27
1525 addq $23, $25, $23
1526 addq $8, $27, $8
1527 stq $22, 32($16)
1528 bis $31, $31, $22
1529 mulq $3, $2, $24
1530 umulh $3, $2, $18
1531 cmplt $24, $31, $17
1532 cmplt $18, $31, $19
1533 addq $24, $24, $24
1534 addq $18, $18, $18
1535 addq $18, $17, $18
1536 addq $22, $19, $22
1537 addq $23, $24, $23
1538 addq $8, $18, $8
1539 cmpult $23, $24, $20
1540 cmpult $8, $18, $21
1541 addq $8, $20, $8
1542 addq $22, $21, $22
1543 mulq $4, $1, $28
1544 umulh $4, $1, $25
1545 cmplt $28, $31, $27
1546 cmplt $25, $31, $17
1547 addq $28, $28, $28
1548 addq $25, $25, $25
1549 addq $25, $27, $25
1550 addq $22, $17, $22
1551 addq $23, $28, $23
1552 addq $8, $25, $8
1553 cmpult $23, $28, $19
1554 cmpult $8, $25, $24
1555 addq $8, $19, $8
1556 addq $22, $24, $22
1557 mulq $5, $0, $18
1558 umulh $5, $0, $20
1559 cmplt $18, $31, $21
1560 cmplt $20, $31, $27
1561 addq $18, $18, $18
1562 addq $20, $20, $20
1563 addq $20, $21, $20
1564 addq $22, $27, $22
1565 addq $23, $18, $23
1566 addq $8, $20, $8
1567 cmpult $23, $18, $17
1568 cmpult $8, $20, $28
1569 addq $8, $17, $8
1570 addq $22, $28, $22
1571 stq $23, 40($16)
1572 bis $31, $31, $23
1573 mulq $3, $3, $25
1574 umulh $3, $3, $19
1575 addq $8, $25, $8
1576 addq $22, $19, $22
1577 cmpult $8, $25, $24
1578 cmpult $22, $19, $21
1579 addq $22, $24, $22
1580 addq $23, $21, $23
1581 mulq $4, $2, $27
1582 umulh $4, $2, $18
1583 cmplt $27, $31, $20
1584 cmplt $18, $31, $17
1585 addq $27, $27, $27
1586 addq $18, $18, $18
1587 addq $18, $20, $18
1588 addq $23, $17, $23
1589 addq $8, $27, $8
1590 addq $22, $18, $22
1591 cmpult $8, $27, $28
1592 cmpult $22, $18, $25
1593 addq $22, $28, $22
1594 addq $23, $25, $23
1595 mulq $5, $1, $19
1596 umulh $5, $1, $24
1597 cmplt $19, $31, $21
1598 cmplt $24, $31, $20
1599 addq $19, $19, $19
1600 addq $24, $24, $24
1601 addq $24, $21, $24
1602 addq $23, $20, $23
1603 addq $8, $19, $8
1604 addq $22, $24, $22
1605 cmpult $8, $19, $17
1606 cmpult $22, $24, $27
1607 addq $22, $17, $22
1608 addq $23, $27, $23
1609 mulq $6, $0, $18
1610 umulh $6, $0, $28
1611 cmplt $18, $31, $25
1612 cmplt $28, $31, $21
1613 addq $18, $18, $18
1614 addq $28, $28, $28
1615 addq $28, $25, $28
1616 addq $23, $21, $23
1617 addq $8, $18, $8
1618 addq $22, $28, $22
1619 cmpult $8, $18, $20
1620 cmpult $22, $28, $19
1621 addq $22, $20, $22
1622 addq $23, $19, $23
1623 stq $8, 48($16)
1624 bis $31, $31, $8
1625 mulq $4, $3, $24
1626 umulh $4, $3, $17
1627 cmplt $24, $31, $27
1628 cmplt $17, $31, $25
1629 addq $24, $24, $24
1630 addq $17, $17, $17
1631 addq $17, $27, $17
1632 addq $8, $25, $8
1633 addq $22, $24, $22
1634 addq $23, $17, $23
1635 cmpult $22, $24, $21
1636 cmpult $23, $17, $18
1637 addq $23, $21, $23
1638 addq $8, $18, $8
1639 mulq $5, $2, $28
1640 umulh $5, $2, $20
1641 cmplt $28, $31, $19
1642 cmplt $20, $31, $27
1643 addq $28, $28, $28
1644 addq $20, $20, $20
1645 addq $20, $19, $20
1646 addq $8, $27, $8
1647 addq $22, $28, $22
1648 addq $23, $20, $23
1649 cmpult $22, $28, $25
1650 cmpult $23, $20, $24
1651 addq $23, $25, $23
1652 addq $8, $24, $8
1653 mulq $6, $1, $17
1654 umulh $6, $1, $21
1655 cmplt $17, $31, $18
1656 cmplt $21, $31, $19
1657 addq $17, $17, $17
1658 addq $21, $21, $21
1659 addq $21, $18, $21
1660 addq $8, $19, $8
1661 addq $22, $17, $22
1662 addq $23, $21, $23
1663 cmpult $22, $17, $27
1664 cmpult $23, $21, $28
1665 addq $23, $27, $23
1666 addq $8, $28, $8
1667 mulq $7, $0, $20
1668 umulh $7, $0, $25
1669 cmplt $20, $31, $24
1670 cmplt $25, $31, $18
1671 addq $20, $20, $20
1672 addq $25, $25, $25
1673 addq $25, $24, $25
1674 addq $8, $18, $8
1675 addq $22, $20, $22
1676 addq $23, $25, $23
1677 cmpult $22, $20, $19
1678 cmpult $23, $25, $17
1679 addq $23, $19, $23
1680 addq $8, $17, $8
1681 stq $22, 56($16)
1682 bis $31, $31, $22
1683 mulq $4, $4, $21
1684 umulh $4, $4, $27
1685 addq $23, $21, $23
1686 addq $8, $27, $8
1687 cmpult $23, $21, $28
1688 cmpult $8, $27, $24
1689 addq $8, $28, $8
1690 addq $22, $24, $22
1691 mulq $5, $3, $18
1692 umulh $5, $3, $20
1693 cmplt $18, $31, $25
1694 cmplt $20, $31, $19
1695 addq $18, $18, $18
1696 addq $20, $20, $20
1697 addq $20, $25, $20
1698 addq $22, $19, $22
1699 addq $23, $18, $23
1700 addq $8, $20, $8
1701 cmpult $23, $18, $17
1702 cmpult $8, $20, $21
1703 addq $8, $17, $8
1704 addq $22, $21, $22
1705 mulq $6, $2, $27
1706 umulh $6, $2, $28
1707 cmplt $27, $31, $24
1708 cmplt $28, $31, $25
1709 addq $27, $27, $27
1710 addq $28, $28, $28
1711 addq $28, $24, $28
1712 addq $22, $25, $22
1713 addq $23, $27, $23
1714 addq $8, $28, $8
1715 cmpult $23, $27, $19
1716 cmpult $8, $28, $18
1717 addq $8, $19, $8
1718 addq $22, $18, $22
1719 mulq $7, $1, $20
1720 umulh $7, $1, $17
1721 cmplt $20, $31, $21
1722 cmplt $17, $31, $24
1723 addq $20, $20, $20
1724 addq $17, $17, $17
1725 addq $17, $21, $17
1726 addq $22, $24, $22
1727 addq $23, $20, $23
1728 addq $8, $17, $8
1729 cmpult $23, $20, $25
1730 cmpult $8, $17, $27
1731 addq $8, $25, $8
1732 addq $22, $27, $22
1733 stq $23, 64($16)
1734 bis $31, $31, $23
1735 mulq $5, $4, $28
1736 umulh $5, $4, $19
1737 cmplt $28, $31, $18
1738 cmplt $19, $31, $21
1739 addq $28, $28, $28
1740 addq $19, $19, $19
1741 addq $19, $18, $19
1742 addq $23, $21, $23
1743 addq $8, $28, $8
1744 addq $22, $19, $22
1745 cmpult $8, $28, $24
1746 cmpult $22, $19, $20
1747 addq $22, $24, $22
1748 addq $23, $20, $23
1749 mulq $6, $3, $17
1750 umulh $6, $3, $25
1751 cmplt $17, $31, $27
1752 cmplt $25, $31, $18
1753 addq $17, $17, $17
1754 addq $25, $25, $25
1755 addq $25, $27, $25
1756 addq $23, $18, $23
1757 addq $8, $17, $8
1758 addq $22, $25, $22
1759 cmpult $8, $17, $21
1760 cmpult $22, $25, $28
1761 addq $22, $21, $22
1762 addq $23, $28, $23
1763 mulq $7, $2, $19
1764 umulh $7, $2, $24
1765 cmplt $19, $31, $20
1766 cmplt $24, $31, $27
1767 addq $19, $19, $19
1768 addq $24, $24, $24
1769 addq $24, $20, $24
1770 addq $23, $27, $23
1771 addq $8, $19, $8
1772 addq $22, $24, $22
1773 cmpult $8, $19, $18
1774 cmpult $22, $24, $17
1775 addq $22, $18, $22
1776 addq $23, $17, $23
1777 stq $8, 72($16)
1778 bis $31, $31, $8
1779 mulq $5, $5, $25
1780 umulh $5, $5, $21
1781 addq $22, $25, $22
1782 addq $23, $21, $23
1783 cmpult $22, $25, $28
1784 cmpult $23, $21, $20
1785 addq $23, $28, $23
1786 addq $8, $20, $8
1787 mulq $6, $4, $27
1788 umulh $6, $4, $19
1789 cmplt $27, $31, $24
1790 cmplt $19, $31, $18
1791 addq $27, $27, $27
1792 addq $19, $19, $19
1793 addq $19, $24, $19
1794 addq $8, $18, $8
1795 addq $22, $27, $22
1796 addq $23, $19, $23
1797 cmpult $22, $27, $17
1798 cmpult $23, $19, $25
1799 addq $23, $17, $23
1800 addq $8, $25, $8
1801 mulq $7, $3, $21
1802 umulh $7, $3, $28
1803 cmplt $21, $31, $20
1804 cmplt $28, $31, $24
1805 addq $21, $21, $21
1806 addq $28, $28, $28
1807 addq $28, $20, $28
1808 addq $8, $24, $8
1809 addq $22, $21, $22
1810 addq $23, $28, $23
1811 cmpult $22, $21, $18
1812 cmpult $23, $28, $27
1813 addq $23, $18, $23
1814 addq $8, $27, $8
1815 stq $22, 80($16)
1816 bis $31, $31, $22
1817 mulq $6, $5, $19
1818 umulh $6, $5, $17
1819 cmplt $19, $31, $25
1820 cmplt $17, $31, $20
1821 addq $19, $19, $19
1822 addq $17, $17, $17
1823 addq $17, $25, $17
1824 addq $22, $20, $22
1825 addq $23, $19, $23
1826 addq $8, $17, $8
1827 cmpult $23, $19, $24
1828 cmpult $8, $17, $21
1829 addq $8, $24, $8
1830 addq $22, $21, $22
1831 mulq $7, $4, $28
1832 umulh $7, $4, $18
1833 cmplt $28, $31, $27
1834 cmplt $18, $31, $25
1835 addq $28, $28, $28
1836 addq $18, $18, $18
1837 addq $18, $27, $18
1838 addq $22, $25, $22
1839 addq $23, $28, $23
1840 addq $8, $18, $8
1841 cmpult $23, $28, $20
1842 cmpult $8, $18, $19
1843 addq $8, $20, $8
1844 addq $22, $19, $22
1845 stq $23, 88($16)
1846 bis $31, $31, $23
1847 mulq $6, $6, $17
1848 umulh $6, $6, $24
1849 addq $8, $17, $8
1850 addq $22, $24, $22
1851 cmpult $8, $17, $21
1852 cmpult $22, $24, $27
1853 addq $22, $21, $22
1854 addq $23, $27, $23
1855 mulq $7, $5, $25
1856 umulh $7, $5, $28
1857 cmplt $25, $31, $18
1858 cmplt $28, $31, $20
1859 addq $25, $25, $25
1860 addq $28, $28, $28
1861 addq $28, $18, $28
1862 addq $23, $20, $23
1863 addq $8, $25, $8
1864 addq $22, $28, $22
1865 cmpult $8, $25, $19
1866 cmpult $22, $28, $17
1867 addq $22, $19, $22
1868 addq $23, $17, $23
1869 stq $8, 96($16)
1870 bis $31, $31, $8
1871 mulq $7, $6, $24
1872 umulh $7, $6, $21
1873 cmplt $24, $31, $27
1874 cmplt $21, $31, $18
1875 addq $24, $24, $24
1876 addq $21, $21, $21
1877 addq $21, $27, $21
1878 addq $8, $18, $8
1879 addq $22, $24, $22
1880 addq $23, $21, $23
1881 cmpult $22, $24, $20
1882 cmpult $23, $21, $25
1883 addq $23, $20, $23
1884 addq $8, $25, $8
1885 stq $22, 104($16)
1886 bis $31, $31, $22
1887 mulq $7, $7, $28
1888 umulh $7, $7, $19
1889 addq $23, $28, $23
1890 addq $8, $19, $8
1891 cmpult $23, $28, $17
1892 cmpult $8, $19, $27
1893 addq $8, $17, $8
1894 addq $22, $27, $22
1895 stq $23, 112($16)
1896 stq $8, 120($16)
1897 ret $31,($26),1
1898 .end bn_sqr_comba8