summaryrefslogtreecommitdiff
path: root/crypto/bn/asm/f.s
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/bn/asm/f.s')
-rw-r--r--crypto/bn/asm/f.s1773
1 files changed, 1773 insertions, 0 deletions
diff --git a/crypto/bn/asm/f.s b/crypto/bn/asm/f.s
new file mode 100644
index 0000000000..2f8f63c690
--- /dev/null
+++ b/crypto/bn/asm/f.s
@@ -0,0 +1,1773 @@
+ # Don't even think of reading this code
+ # It was automatically generated by bn-586.pl
+ # Which is a perl program used to generate the alpha assember.
+ # eric <eay@cryptsoft.com>
+
+ # DEC Alpha assember
+ # Generated from perl scripts contains in SSLeay
+ .file 1 "bn-586.s"
+ .set noat
+ .text
+ .align 3
+ .globl bn_mul_words
+ .ent bn_mul_words
+bn_mul_words:
+bn_mul_words..ng:
+ .frame $30,0,$26,0
+ .prologue 0
+
+ subq $18, 4, $18
+ bis $31, $31, $0
+ br $100
+ blt $18, $100
+ ldq $1, 0($17)
+ ldq $2, 0($16)
+$101:
+ ldq $3, 0($17)
+ mulq $3, $19, $4
+ addq $17, 8, $17
+ umulh $3, $19, $5
+ addq $4, $0, $4
+ addq $16, 8, $16
+ subq $18, 1, $18
+ cmpult $4, $0, $0
+ stq $4, -8($16)
+ addq $5, $0, $0
+ bgt $18, $101
+ ret $31,($26),1
+$100:
+ addq $18, 4, $18
+ bgt $18, $101
+$102:
+ ret $31,($26),1
+ .end bn_mul_words
+ .text
+ .align 3
+ .globl bn_sqr_words
+ .ent bn_sqr_words
+bn_sqr_words:
+bn_sqr_words..ng:
+ .frame $30,0,$26,0
+ .prologue 0
+
+ subq $18, 4, $18
+ bis $31, $31, $0
+ br $103
+ blt $18, $103
+ ldq $1, 0($17)
+ ldq $2, 0($16)
+$104:
+ ldq $3, 0($17)
+ mulq $3, $3, $4
+ addq $17, 8, $17
+ addq $16, 16, $16
+ subq $18, 1, $18
+ umulh $3, $3, $5
+ stq $4, -16($16)
+ stq $5, -8($16)
+ bgt $18, $104
+ ret $31,($26),1
+$103:
+ addq $18, 4, $18
+ bgt $18, $104
+$105:
+ ret $31,($26),1
+ .end bn_sqr_words
+ .text
+ .align 3
+ .globl bn_mul_add_words
+ .ent bn_mul_add_words
+bn_mul_add_words:
+bn_mul_add_words..ng:
+ .frame $30,0,$26,0
+ .prologue 0
+
+ subq $18, 4, $18
+ bis $31, $31, $0
+ br $106
+ blt $18, $106
+ ldq $1, 0($17)
+ ldq $2, 0($16)
+$107:
+ ldq $3, 0($17)
+ ldq $4, 0($16)
+ mulq $3, $19, $5
+ subq $18, 1, $18
+ addq $17, 8, $17
+ umulh $3, $19, $6
+ addq $4, $5, $4
+ addq $16, 8, $16
+ cmpult $4, $5, $7
+ addq $4, $0, $4
+ addq $6, $7, $6
+ cmpult $4, $0, $0
+ stq $4, -8($16)
+ addq $6, $0, $0
+ bgt $18, $107
+ ret $31,($26),1
+$106:
+ addq $18, 4, $18
+ bgt $18, $107
+$108:
+ ret $31,($26),1
+ .end bn_mul_add_words
+ .text
+ .align 3
+ .globl bn_add_words
+ .ent bn_add_words
+bn_add_words:
+bn_add_words..ng:
+ .frame $30,0,$26,0
+ .prologue 0
+
+ subq $19, 4, $19
+ bis $31, $31, $0
+ br $109
+ blt $19, $109
+ ldq $1, 0($17)
+ ldq $2, 0($18)
+$110:
+ ldq $3, 8($17)
+ ldq $4, 8($18)
+ ldq $5, 16($17)
+ ldq $6, 16($18)
+ ldq $7, 24($17)
+ ldq $8, 24($18)
+ addq $1, $2, $22
+ cmpult $22, $2, $23
+ addq $22, $0, $22
+ cmpult $22, $0, $0
+ addq $0, $23, $0
+ addq $3, $4, $25
+ cmpult $25, $4, $24
+ addq $25, $0, $25
+ cmpult $25, $0, $0
+ addq $0, $24, $0
+ addq $5, $6, $28
+ cmpult $28, $6, $27
+ addq $28, $0, $28
+ cmpult $28, $0, $0
+ addq $0, $27, $0
+ addq $7, $8, $20
+ cmpult $20, $8, $21
+ addq $20, $0, $20
+ cmpult $20, $0, $0
+ addq $0, $21, $0
+ stq $22, 0($16)
+ stq $25, 0($16)
+ stq $28, 0($16)
+ stq $20, 0($16)
+ subq $19, 4, $19
+ addq $17, 32, $17
+ addq $18, 32, $18
+ addq $16, 32, $16
+ blt $19, $109
+ ldq $1, 0($17)
+ ldq $2, 0($18)
+ br $110
+$111:
+ ldq $1, 0($17)
+ ldq $2, 0($18)
+ addq $1, $2, $3
+ cmpult $3, $2, $23
+ addq $3, $0, $3
+ cmpult $3, $0, $0
+ addq $0, $23, $0
+ stq $3, 0($16)
+ addq $17, 8, $17
+ addq $18, 8, $18
+ addq $16, 8, $16
+ subq $19, 1, $19
+ bgt $19, $111
+ ret $31,($26),1
+$109:
+ addq $19, 4, $19
+ bgt $19, $111
+$112:
+ ret $31,($26),1
+ .end bn_add_words
+ .text
+ .align 3
+ .globl bn_sub_words
+ .ent bn_sub_words
+bn_sub_words:
+bn_sub_words..ng:
+ .frame $30,0,$26,0
+ .prologue 0
+
+ subq $19, 4, $19
+ bis $31, $31, $0
+ blt $19, $113
+ ldq $1, 0($17)
+ ldq $2, 0($18)
+$114:
+ ldq $3, 8($17)
+ cmpult $1, $2, $4
+ ldq $5, 8($18)
+ subq $1, $2, $1
+ ldq $6, 16($17)
+ cmpult $1, $0, $2
+ ldq $7, 16($18)
+ subq $1, $0, $23
+ ldq $8, 24($17)
+ addq $2, $4, $0
+ cmpult $3, $5, $24
+ subq $3, $5, $3
+ ldq $22, 24($18)
+ cmpult $3, $0, $5
+ subq $3, $0, $25
+ addq $5, $24, $0
+ cmpult $6, $7, $27
+ subq $6, $7, $6
+ stq $23, 0($16)
+ cmpult $6, $0, $7
+ subq $6, $0, $28
+ addq $7, $27, $0
+ cmpult $8, $22, $21
+ subq $8, $22, $8
+ stq $25, 8($16)
+ cmpult $8, $0, $22
+ subq $8, $0, $20
+ addq $22, $21, $0
+ stq $28, 16($16)
+ subq $19, 4, $19
+ stq $20, 24($16)
+ addq $17, 32, $17
+ addq $18, 32, $18
+ addq $16, 32, $16
+ blt $19, $113
+ ldq $1, 0($17)
+ ldq $2, 0($18)
+ br $114
+$115:
+ ldq $1, 0($17)
+ ldq $2, 0($18)
+ cmpult $1, $2, $27
+ subq $1, $2, $1
+ cmpult $1, $0, $2
+ subq $1, $0, $1
+ stq $1, 0($16)
+ addq $2, $27, $0
+ addq $17, 8, $17
+ addq $18, 8, $18
+ addq $16, 8, $16
+ subq $19, 1, $19
+ bgt $19, $115
+ ret $31,($26),1
+$113:
+ addq $19, 4, $19
+ bgt $19, $115
+$116:
+ ret $31,($26),1
+ .end bn_sub_words
+ #
+ # What follows was taken directly from the C compiler with a few
+ # hacks to redo the lables.
+ #
+.text
+ .align 3
+ .globl bn_div64
+ .ent bn_div64
+bn_div64:
+ ldgp $29,0($27)
+bn_div64..ng:
+ lda $30,-48($30)
+ .frame $30,48,$26,0
+ stq $26,0($30)
+ stq $9,8($30)
+ stq $10,16($30)
+ stq $11,24($30)
+ stq $12,32($30)
+ stq $13,40($30)
+ .mask 0x4003e00,-48
+ .prologue 1
+ bis $16,$16,$9
+ bis $17,$17,$10
+ bis $18,$18,$11
+ bis $31,$31,$13
+ bis $31,2,$12
+ bne $11,$9119
+ lda $0,-1
+ br $31,$9136
+ .align 4
+$9119:
+ bis $11,$11,$16
+ jsr $26,BN_num_bits_word
+ ldgp $29,0($26)
+ subq $0,64,$1
+ beq $1,$9120
+ bis $31,1,$1
+ sll $1,$0,$1
+ cmpule $9,$1,$1
+ bne $1,$9120
+ # lda $16,_IO_stderr_
+ # lda $17,$C32
+ # bis $0,$0,$18
+ # jsr $26,fprintf
+ # ldgp $29,0($26)
+ jsr $26,abort
+ ldgp $29,0($26)
+ .align 4
+$9120:
+ bis $31,64,$3
+ cmpult $9,$11,$2
+ subq $3,$0,$1
+ addl $1,$31,$0
+ subq $9,$11,$1
+ cmoveq $2,$1,$9
+ beq $0,$9122
+ zapnot $0,15,$2
+ subq $3,$0,$1
+ sll $11,$2,$11
+ sll $9,$2,$3
+ srl $10,$1,$1
+ sll $10,$2,$10
+ bis $3,$1,$9
+$9122:
+ srl $11,32,$5
+ zapnot $11,15,$6
+ lda $7,-1
+ .align 5
+$9123:
+ srl $9,32,$1
+ subq $1,$5,$1
+ bne $1,$9126
+ zapnot $7,15,$27
+ br $31,$9127
+ .align 4
+$9126:
+ bis $9,$9,$24
+ bis $5,$5,$25
+ divqu $24,$25,$27
+$9127:
+ srl $10,32,$4
+ .align 5
+$9128:
+ mulq $27,$5,$1
+ subq $9,$1,$3
+ zapnot $3,240,$1
+ bne $1,$9129
+ mulq $6,$27,$2
+ sll $3,32,$1
+ addq $1,$4,$1
+ cmpule $2,$1,$2
+ bne $2,$9129
+ subq $27,1,$27
+ br $31,$9128
+ .align 4
+$9129:
+ mulq $27,$6,$1
+ mulq $27,$5,$4
+ srl $1,32,$3
+ sll $1,32,$1
+ addq $4,$3,$4
+ cmpult $10,$1,$2
+ subq $10,$1,$10
+ addq $2,$4,$2
+ cmpult $9,$2,$1
+ bis $2,$2,$4
+ beq $1,$9134
+ addq $9,$11,$9
+ subq $27,1,$27
+$9134:
+ subl $12,1,$12
+ subq $9,$4,$9
+ beq $12,$9124
+ sll $27,32,$13
+ sll $9,32,$2
+ srl $10,32,$1
+ sll $10,32,$10
+ bis $2,$1,$9
+ br $31,$9123
+ .align 4
+$9124:
+ bis $13,$27,$0
+$9136:
+ ldq $26,0($30)
+ ldq $9,8($30)
+ ldq $10,16($30)
+ ldq $11,24($30)
+ ldq $12,32($30)
+ ldq $13,40($30)
+ addq $30,48,$30
+ ret $31,($26),1
+ .end bn_div64
+ .text
+ .align 3
+ .globl bn_mul_comba8
+ .ent bn_mul_comba8
+bn_mul_comba8:
+bn_mul_comba8..ng:
+ .frame $30,0,$26,0
+ .prologue 0
+
+ subq $30, 16, $30
+ ldq $0, 0($17)
+ ldq $1, 0($18)
+ stq $9, 0($30)
+ stq $10, 8($30)
+ ldq $2, 8($17)
+ ldq $3, 8($18)
+ ldq $4, 16($17)
+ ldq $5, 16($18)
+ ldq $6, 24($17)
+ ldq $7, 24($18)
+ ldq $8, 8($17)
+ ldq $22, 8($18)
+ ldq $23, 8($17)
+ ldq $24, 8($18)
+ ldq $25, 8($17)
+ ldq $27, 8($18)
+ ldq $28, 8($17)
+ ldq $21, 8($18)
+ bis $31, $31, $9
+ mulq $0, $1, $20
+ umulh $0, $1, $19
+ stq $20, 0($16)
+ bis $31, $31, $10
+ mulq $0, $3, $17
+ umulh $0, $3, $18
+ addq $19, $17, $19
+ cmpult $19, $17, $20
+ addq $20, $18, $18
+ addq $9, $18, $9
+ cmpult $9, $18, $17
+ addq $10, $17, $10
+ mulq $2, $1, $20
+ umulh $2, $1, $18
+ addq $19, $20, $19
+ cmpult $19, $20, $17
+ addq $17, $18, $18
+ addq $9, $18, $9
+ cmpult $9, $18, $20
+ addq $10, $20, $10
+ stq $19, 8($16)
+ bis $31, $31, $17
+ mulq $0, $5, $18
+ umulh $0, $5, $20
+ addq $9, $18, $9
+ cmpult $9, $18, $19
+ addq $19, $20, $20
+ addq $10, $20, $10
+ cmpult $10, $20, $18
+ addq $17, $18, $17
+ mulq $2, $3, $19
+ umulh $2, $3, $20
+ addq $9, $19, $9
+ cmpult $9, $19, $18
+ addq $18, $20, $20
+ addq $10, $20, $10
+ cmpult $10, $20, $19
+ addq $17, $19, $17
+ mulq $4, $1, $18
+ umulh $4, $1, $20
+ addq $9, $18, $9
+ cmpult $9, $18, $19
+ addq $19, $20, $20
+ addq $10, $20, $10
+ cmpult $10, $20, $18
+ addq $17, $18, $17
+ stq $9, 16($16)
+ bis $31, $31, $19
+ mulq $0, $7, $20
+ umulh $0, $7, $18
+ addq $10, $20, $10
+ cmpult $10, $20, $9
+ addq $9, $18, $18
+ addq $17, $18, $17
+ cmpult $17, $18, $20
+ addq $19, $20, $19
+ mulq $2, $5, $9
+ umulh $2, $5, $18
+ addq $10, $9, $10
+ cmpult $10, $9, $20
+ addq $20, $18, $18
+ addq $17, $18, $17
+ cmpult $17, $18, $9
+ addq $19, $9, $19
+ mulq $4, $3, $20
+ umulh $4, $3, $18
+ addq $10, $20, $10
+ cmpult $10, $20, $9
+ addq $9, $18, $18
+ addq $17, $18, $17
+ cmpult $17, $18, $20
+ addq $19, $20, $19
+ mulq $6, $1, $9
+ umulh $6, $1, $18
+ addq $10, $9, $10
+ cmpult $10, $9, $20
+ addq $20, $18, $18
+ addq $17, $18, $17
+ cmpult $17, $18, $9
+ addq $19, $9, $19
+ stq $10, 24($16)
+ bis $31, $31, $20
+ mulq $0, $22, $18
+ umulh $0, $22, $9
+ addq $17, $18, $17
+ cmpult $17, $18, $10
+ addq $10, $9, $9
+ addq $19, $9, $19
+ cmpult $19, $9, $18
+ addq $20, $18, $20
+ mulq $2, $7, $10
+ umulh $2, $7, $9
+ addq $17, $10, $17
+ cmpult $17, $10, $18
+ addq $18, $9, $9
+ addq $19, $9, $19
+ cmpult $19, $9, $10
+ addq $20, $10, $20
+ mulq $4, $5, $18
+ umulh $4, $5, $9
+ addq $17, $18, $17
+ cmpult $17, $18, $10
+ addq $10, $9, $9
+ addq $19, $9, $19
+ cmpult $19, $9, $18
+ addq $20, $18, $20
+ mulq $6, $3, $10
+ umulh $6, $3, $9
+ addq $17, $10, $17
+ cmpult $17, $10, $18
+ addq $18, $9, $9
+ addq $19, $9, $19
+ cmpult $19, $9, $10
+ addq $20, $10, $20
+ mulq $8, $1, $18
+ umulh $8, $1, $9
+ addq $17, $18, $17
+ cmpult $17, $18, $10
+ addq $10, $9, $9
+ addq $19, $9, $19
+ cmpult $19, $9, $18
+ addq $20, $18, $20
+ stq $17, 32($16)
+ bis $31, $31, $10
+ mulq $0, $24, $9
+ umulh $0, $24, $18
+ addq $19, $9, $19
+ cmpult $19, $9, $17
+ addq $17, $18, $18
+ addq $20, $18, $20
+ cmpult $20, $18, $9
+ addq $10, $9, $10
+ mulq $2, $22, $17
+ umulh $2, $22, $18
+ addq $19, $17, $19
+ cmpult $19, $17, $9
+ addq $9, $18, $18
+ addq $20, $18, $20
+ cmpult $20, $18, $17
+ addq $10, $17, $10
+ mulq $4, $7, $9
+ umulh $4, $7, $18
+ addq $19, $9, $19
+ cmpult $19, $9, $17
+ addq $17, $18, $18
+ addq $20, $18, $20
+ cmpult $20, $18, $9
+ addq $10, $9, $10
+ mulq $6, $5, $17
+ umulh $6, $5, $18
+ addq $19, $17, $19
+ cmpult $19, $17, $9
+ addq $9, $18, $18
+ addq $20, $18, $20
+ cmpult $20, $18, $17
+ addq $10, $17, $10
+ mulq $8, $3, $9
+ umulh $8, $3, $18
+ addq $19, $9, $19
+ cmpult $19, $9, $17
+ addq $17, $18, $18
+ addq $20, $18, $20
+ cmpult $20, $18, $9
+ addq $10, $9, $10
+ mulq $23, $1, $17
+ umulh $23, $1, $18
+ addq $19, $17, $19
+ cmpult $19, $17, $9
+ addq $9, $18, $18
+ addq $20, $18, $20
+ cmpult $20, $18, $17
+ addq $10, $17, $10
+ stq $19, 40($16)
+ bis $31, $31, $9
+ mulq $0, $27, $18
+ umulh $0, $27, $17
+ addq $20, $18, $20
+ cmpult $20, $18, $19
+ addq $19, $17, $17
+ addq $10, $17, $10
+ cmpult $10, $17, $18
+ addq $9, $18, $9
+ mulq $2, $24, $19
+ umulh $2, $24, $17
+ addq $20, $19, $20
+ cmpult $20, $19, $18
+ addq $18, $17, $17
+ addq $10, $17, $10
+ cmpult $10, $17, $19
+ addq $9, $19, $9
+ mulq $4, $22, $18
+ umulh $4, $22, $17
+ addq $20, $18, $20
+ cmpult $20, $18, $19
+ addq $19, $17, $17
+ addq $10, $17, $10
+ cmpult $10, $17, $18
+ addq $9, $18, $9
+ mulq $6, $7, $19
+ umulh $6, $7, $17
+ addq $20, $19, $20
+ cmpult $20, $19, $18
+ addq $18, $17, $17
+ addq $10, $17, $10
+ cmpult $10, $17, $19
+ addq $9, $19, $9
+ mulq $8, $5, $18
+ umulh $8, $5, $17
+ addq $20, $18, $20
+ cmpult $20, $18, $19
+ addq $19, $17, $17
+ addq $10, $17, $10
+ cmpult $10, $17, $18
+ addq $9, $18, $9
+ mulq $23, $3, $19
+ umulh $23, $3, $17
+ addq $20, $19, $20
+ cmpult $20, $19, $18
+ addq $18, $17, $17
+ addq $10, $17, $10
+ cmpult $10, $17, $19
+ addq $9, $19, $9
+ mulq $25, $1, $18
+ umulh $25, $1, $17
+ addq $20, $18, $20
+ cmpult $20, $18, $19
+ addq $19, $17, $17
+ addq $10, $17, $10
+ cmpult $10, $17, $18
+ addq $9, $18, $9
+ stq $20, 48($16)
+ bis $31, $31, $19
+ mulq $0, $21, $17
+ umulh $0, $21, $18
+ addq $10, $17, $10
+ cmpult $10, $17, $20
+ addq $20, $18, $18
+ addq $9, $18, $9
+ cmpult $9, $18, $17
+ addq $19, $17, $19
+ mulq $2, $27, $20
+ umulh $2, $27, $18
+ addq $10, $20, $10
+ cmpult $10, $20, $17
+ addq $17, $18, $18
+ addq $9, $18, $9
+ cmpult $9, $18, $0
+ addq $19, $0, $19
+ mulq $4, $24, $20
+ umulh $4, $24, $17
+ addq $10, $20, $10
+ cmpult $10, $20, $18
+ addq $18, $17, $17
+ addq $9, $17, $9
+ cmpult $9, $17, $0
+ addq $19, $0, $19
+ mulq $6, $22, $20
+ umulh $6, $22, $18
+ addq $10, $20, $10
+ cmpult $10, $20, $17
+ addq $17, $18, $18
+ addq $9, $18, $9
+ cmpult $9, $18, $0
+ addq $19, $0, $19
+ mulq $8, $7, $20
+ umulh $8, $7, $17
+ addq $10, $20, $10
+ cmpult $10, $20, $18
+ addq $18, $17, $17
+ addq $9, $17, $9
+ cmpult $9, $17, $0
+ addq $19, $0, $19
+ mulq $23, $5, $20
+ umulh $23, $5, $18
+ addq $10, $20, $10
+ cmpult $10, $20, $17
+ addq $17, $18, $18
+ addq $9, $18, $9
+ cmpult $9, $18, $0
+ addq $19, $0, $19
+ mulq $25, $3, $20
+ umulh $25, $3, $17
+ addq $10, $20, $10
+ cmpult $10, $20, $18
+ addq $18, $17, $17
+ addq $9, $17, $9
+ cmpult $9, $17, $0
+ addq $19, $0, $19
+ mulq $28, $1, $20
+ umulh $28, $1, $18
+ addq $10, $20, $10
+ cmpult $10, $20, $17
+ addq $17, $18, $18
+ addq $9, $18, $9
+ cmpult $9, $18, $0
+ addq $19, $0, $19
+ stq $10, 56($16)
+ bis $31, $31, $20
+ mulq $2, $21, $17
+ umulh $2, $21, $18
+ addq $9, $17, $9
+ cmpult $9, $17, $0
+ addq $0, $18, $18
+ addq $19, $18, $19
+ cmpult $19, $18, $1
+ addq $20, $1, $20
+ mulq $4, $27, $10
+ umulh $4, $27, $17
+ addq $9, $10, $9
+ cmpult $9, $10, $0
+ addq $0, $17, $17
+ addq $19, $17, $19
+ cmpult $19, $17, $18
+ addq $20, $18, $20
+ mulq $6, $24, $1
+ umulh $6, $24, $2
+ addq $9, $1, $9
+ cmpult $9, $1, $10
+ addq $10, $2, $2
+ addq $19, $2, $19
+ cmpult $19, $2, $0
+ addq $20, $0, $20
+ mulq $8, $22, $17
+ umulh $8, $22, $18
+ addq $9, $17, $9
+ cmpult $9, $17, $1
+ addq $1, $18, $18
+ addq $19, $18, $19
+ cmpult $19, $18, $10
+ addq $20, $10, $20
+ mulq $23, $7, $2
+ umulh $23, $7, $0
+ addq $9, $2, $9
+ cmpult $9, $2, $17
+ addq $17, $0, $0
+ addq $19, $0, $19
+ cmpult $19, $0, $1
+ addq $20, $1, $20
+ mulq $25, $5, $18
+ umulh $25, $5, $10
+ addq $9, $18, $9
+ cmpult $9, $18, $2
+ addq $2, $10, $10
+ addq $19, $10, $19
+ cmpult $19, $10, $17
+ addq $20, $17, $20
+ mulq $28, $3, $0
+ umulh $28, $3, $1
+ addq $9, $0, $9
+ cmpult $9, $0, $18
+ addq $18, $1, $1
+ addq $19, $1, $19
+ cmpult $19, $1, $2
+ addq $20, $2, $20
+ stq $9, 64($16)
+ bis $31, $31, $10
+ mulq $4, $21, $17
+ umulh $4, $21, $0
+ addq $19, $17, $19
+ cmpult $19, $17, $18
+ addq $18, $0, $0
+ addq $20, $0, $20
+ cmpult $20, $0, $1
+ addq $10, $1, $10
+ mulq $6, $27, $2
+ umulh $6, $27, $3
+ addq $19, $2, $19
+ cmpult $19, $2, $9
+ addq $9, $3, $3
+ addq $20, $3, $20
+ cmpult $20, $3, $17
+ addq $10, $17, $10
+ mulq $8, $24, $18
+ umulh $8, $24, $0
+ addq $19, $18, $19
+ cmpult $19, $18, $1
+ addq $1, $0, $0
+ addq $20, $0, $20
+ cmpult $20, $0, $4
+ addq $10, $4, $10
+ mulq $23, $22, $2
+ umulh $23, $22, $9
+ addq $19, $2, $19
+ cmpult $19, $2, $3
+ addq $3, $9, $9
+ addq $20, $9, $20
+ cmpult $20, $9, $17
+ addq $10, $17, $10
+ mulq $25, $7, $18
+ umulh $25, $7, $1
+ addq $19, $18, $19
+ cmpult $19, $18, $0
+ addq $0, $1, $1
+ addq $20, $1, $20
+ cmpult $20, $1, $4
+ addq $10, $4, $10
+ mulq $28, $5, $2
+ umulh $28, $5, $3
+ addq $19, $2, $19
+ cmpult $19, $2, $9
+ addq $9, $3, $3
+ addq $20, $3, $20
+ cmpult $20, $3, $17
+ addq $10, $17, $10
+ stq $19, 72($16)
+ bis $31, $31, $18
+ mulq $6, $21, $0
+ umulh $6, $21, $1
+ addq $20, $0, $20
+ cmpult $20, $0, $4
+ addq $4, $1, $1
+ addq $10, $1, $10
+ cmpult $10, $1, $2
+ addq $18, $2, $18
+ mulq $8, $27, $9
+ umulh $8, $27, $3
+ addq $20, $9, $20
+ cmpult $20, $9, $17
+ addq $17, $3, $3
+ addq $10, $3, $10
+ cmpult $10, $3, $5
+ addq $18, $5, $18
+ mulq $23, $24, $19
+ umulh $23, $24, $0
+ addq $20, $19, $20
+ cmpult $20, $19, $4
+ addq $4, $0, $0
+ addq $10, $0, $10
+ cmpult $10, $0, $1
+ addq $18, $1, $18
+ mulq $25, $22, $2
+ umulh $25, $22, $6
+ addq $20, $2, $20
+ cmpult $20, $2, $9
+ addq $9, $6, $6
+ addq $10, $6, $10
+ cmpult $10, $6, $17
+ addq $18, $17, $18
+ mulq $28, $7, $3
+ umulh $28, $7, $5
+ addq $20, $3, $20
+ cmpult $20, $3, $19
+ addq $19, $5, $5
+ addq $10, $5, $10
+ cmpult $10, $5, $4
+ addq $18, $4, $18
+ stq $20, 80($16)
+ bis $31, $31, $0
+ mulq $8, $21, $1
+ umulh $8, $21, $2
+ addq $10, $1, $10
+ cmpult $10, $1, $9
+ addq $9, $2, $2
+ addq $18, $2, $18
+ cmpult $18, $2, $6
+ addq $0, $6, $0
+ mulq $23, $27, $17
+ umulh $23, $27, $3
+ addq $10, $17, $10
+ cmpult $10, $17, $19
+ addq $19, $3, $3
+ addq $18, $3, $18
+ cmpult $18, $3, $5
+ addq $0, $5, $0
+ mulq $25, $24, $4
+ umulh $25, $24, $7
+ addq $10, $4, $10
+ cmpult $10, $4, $20
+ addq $20, $7, $7
+ addq $18, $7, $18
+ cmpult $18, $7, $1
+ addq $0, $1, $0
+ mulq $28, $22, $9
+ umulh $28, $22, $2
+ addq $10, $9, $10
+ cmpult $10, $9, $6
+ addq $6, $2, $2
+ addq $18, $2, $18
+ cmpult $18, $2, $8
+ addq $0, $8, $0
+ stq $10, 88($16)
+ bis $31, $31, $17
+ mulq $23, $21, $19
+ umulh $23, $21, $3
+ addq $18, $19, $18
+ cmpult $18, $19, $5
+ addq $5, $3, $3
+ addq $0, $3, $0
+ cmpult $0, $3, $4
+ addq $17, $4, $17
+ mulq $25, $27, $20
+ umulh $25, $27, $7
+ addq $18, $20, $18
+ cmpult $18, $20, $1
+ addq $1, $7, $7
+ addq $0, $7, $0
+ cmpult $0, $7, $9
+ addq $17, $9, $17
+ mulq $28, $24, $6
+ umulh $28, $24, $2
+ addq $18, $6, $18
+ cmpult $18, $6, $8
+ addq $8, $2, $2
+ addq $0, $2, $0
+ cmpult $0, $2, $22
+ addq $17, $22, $17
+ stq $18, 96($16)
+ bis $31, $31, $10
+ mulq $25, $21, $19
+ umulh $25, $21, $5
+ addq $0, $19, $0
+ cmpult $0, $19, $3
+ addq $3, $5, $5
+ addq $17, $5, $17
+ cmpult $17, $5, $4
+ addq $10, $4, $10
+ mulq $28, $27, $23
+ umulh $28, $27, $20
+ addq $0, $23, $0
+ cmpult $0, $23, $1
+ addq $1, $20, $20
+ addq $17, $20, $17
+ cmpult $17, $20, $7
+ addq $10, $7, $10
+ stq $0, 104($16)
+ bis $31, $31, $9
+ mulq $28, $21, $6
+ umulh $28, $21, $8
+ addq $17, $6, $17
+ cmpult $17, $6, $2
+ addq $2, $8, $8
+ addq $10, $8, $10
+ cmpult $10, $8, $22
+ addq $9, $22, $9
+ stq $17, 112($16)
+ stq $10, 120($16)
+ ldq $9, 0($30)
+ ldq $10, 8($30)
+ addq $30, 16, $30
+ ret $31,($26),1
+ .end bn_mul_comba8
+ .text
+ .align 3
+ .globl bn_mul_comba4
+ .ent bn_mul_comba4
+bn_mul_comba4:
+bn_mul_comba4..ng:
+ .frame $30,0,$26,0
+ .prologue 0
+
+ ldq $0, 0($17)
+ ldq $1, 0($18)
+ ldq $2, 8($17)
+ ldq $3, 8($18)
+ mulq $0, $1, $4
+ ldq $5, 16($17)
+ ldq $6, 16($18)
+ umulh $0, $1, $7
+ ldq $8, 24($17)
+ ldq $22, 24($18)
+ mulq $0, $3, $23
+ stq $4, 0($16)
+ bis $31, $31, $24
+ mulq $2, $1, $28
+ bis $31, $31, $25
+ bis $31, $31,
+ addq $24, $7, $24
+ umulh $0, $3, $21
+ cmpult $24, $7, $20
+ addq $24, $23, $24
+ addq $25, $20, $25
+ umulh $2, $1, $19
+ cmpult $24, $23, $17
+ addq $24, $28, $24
+ addq $27, $17, $27
+ mulq $0, $6, $18
+ cmpult $24, $28, $4
+ addq $25, $4, $25
+ stq $24, 8($16)
+ addq $25, $27, $24
+ bis $31, $31, $25
+ addq $24, $21, $24
+ bis $31, $31, $27
+ mulq $2, $3, $7
+ cmpult $24, $21, $20
+ addq $24, $19, $24
+ addq $25, $20, $25
+ mulq $5, $1, $23
+ cmpult $24, $19, $17
+ addq $24, $7, $24
+ addq $27, $17, $27
+ umulh $0, $6, $28
+ cmpult $24, $18, $4
+ addq $24, $7, $24
+ addq $25, $4, $25
+ umulh $2, $3, $21
+ cmpult $24, $7, $20
+ addq $24, $23, $24
+ addq $27, $20, $27
+ umulh $5, $1, $19
+ cmpult $24, $23, $17
+ addq $25, $17, $25
+ stq $24, 16($16)
+ addq $25, $27, $24
+ bis $31, $31, $25
+ addq $24, $28, $24
+ bis $31, $31, $27
+ mulq $0, $22, $18
+ cmpult $24, $28, $4
+ addq $24, $21, $24
+ addq $25, $4, $25
+ mulq $2, $6, $7
+ cmpult $24, $21, $20
+ addq $24, $19, $24
+ addq $25, $20, $25
+ mulq $5, $3, $23
+ cmpult $24, $19, $17
+ addq $24, $18, $24
+ addq $25, $17, $25
+ mulq $8, $1, $28
+ cmpult $24, $18, $4
+ addq $24, $7, $24
+ addq $25, $4, $25
+ umulh $0, $22, $21
+ cmpult $24, $7, $20
+ addq $24, $23, $24
+ addq $25, $20, $25
+ umulh $2, $6, $19
+ cmpult $24, $23, $17
+ addq $24, $28, $24
+ addq $25, $17, $25
+ umulh $5, $3, $18
+ cmpult $24, $28, $4
+ addq $25, $4, $25
+ stq $24, 24($16)
+ addq $25, $27, $24
+ bis $31, $31, $25
+ addq $24, $21, $24
+ bis $31, $31, $27
+ umulh $8, $1, $7
+ cmpult $24, $21, $20
+ addq $24, $19, $24
+ addq $25, $20, $25
+ mulq $2, $22, $23
+ cmpult $24, $19, $17
+ addq $24, $18, $24
+ addq $25, $17, $25
+ mulq $5, $6, $28
+ cmpult $24, $18, $4
+ addq $24, $7, $24
+ addq $25, $4, $25
+ mulq $8, $3, $21
+ cmpult $24, $7, $20
+ addq $24, $23, $24
+ addq $25, $20, $25
+ umulh $2, $22, $19
+ cmpult $24, $23, $17
+ addq $24, $28, $24
+ addq $25, $17, $25
+ umulh $5, $6, $18
+ cmpult $24, $28, $4
+ addq $24, $21, $24
+ addq $25, $4, $25
+ umulh $8, $3, $7
+ cmpult $24, $21, $20
+ addq $25, $20, $25
+ stq $24, 32($16)
+ addq $25, $27, $24
+ bis $31, $31, $25
+ addq $24, $19, $24
+ bis $31, $31, $27
+ mulq $5, $22, $23
+ cmpult $24, $19, $17
+ addq $24, $18, $24
+ addq $25, $17, $25
+ mulq $8, $6, $28
+ cmpult $24, $18, $4
+ addq $24, $7, $24
+ addq $25, $4, $25
+ umulh $5, $22, $21
+ cmpult $24, $7, $20
+ addq $24, $23, $24
+ addq $25, $20, $25
+ umulh $8, $6, $19
+ cmpult $24, $23, $17
+ addq $24, $28, $24
+ addq $25, $17, $25
+ mulq $8, $22, $18
+ cmpult $24, $28, $4
+ addq $25, $4, $25
+ stq $24, 40($16)
+ addq $25, $27, $24
+ bis $31, $31, $25
+ addq $24, $21, $24
+ bis $31, $31, $27
+ umulh $8, $22, $7
+ cmpult $24, $21, $20
+ addq $24, $19, $24
+ addq $25, $20, $25
+ cmpult $24, $19, $23
+ addq $24, $18, $24
+ addq $25, $23, $25
+ cmpult $24, $18, $17
+ addq $25, $17, $25
+ stq $24, 48($16)
+ addq $25, $27, $24
+ addq $24, $7, $24
+ stq $24, 56($16)
+ ret $31,($26),1
+ .end bn_mul_comba4
+ .text
+ .align 3
+ .globl bn_sqr_comba4
+ .ent bn_sqr_comba4
+bn_sqr_comba4:
+bn_sqr_comba4..ng:
+ .frame $30,0,$26,0
+ .prologue 0
+
+ ldq $0, 0($17)
+ ldq $1, 8($17)
+ ldq $2, 16($17)
+ ldq $3, 24($17)
+ bis $31, $31, $6
+ mulq $0, $0, $4
+ umulh $0, $0, $5
+ stq $4, 0($16)
+ bis $31, $31, $4
+ mulq $0, $1, $7
+ umulh $0, $1, $8
+ cmplt $7, $31, $22
+ cmplt $8, $31, $23
+ addq $7, $7, $7
+ addq $8, $8, $8
+ addq $8, $22, $8
+ addq $4, $23, $4
+ addq $5, $7, $5
+ addq $6, $8, $6
+ cmpult $5, $7, $24
+ cmpult $6, $8, $25
+ addq $6, $24, $6
+ addq $4, $25, $4
+ stq $5, 8($16)
+ bis $31, $31, $5
+ mulq $1, $1, $27
+ umulh $1, $1, $28
+ addq $6, $27, $6
+ addq $4, $28, $4
+ cmpult $6, $27, $21
+ cmpult $4, $28, $20
+ addq $4, $21, $4
+ addq $5, $20, $5
+ mulq $2, $0, $19
+ umulh $2, $0, $18
+ cmplt $19, $31, $17
+ cmplt $18, $31, $22
+ addq $19, $19, $19
+ addq $18, $18, $18
+ addq $18, $17, $18
+ addq $5, $22, $5
+ addq $6, $19, $6
+ addq $4, $18, $4
+ cmpult $6, $19, $23
+ cmpult $4, $18, $7
+ addq $4, $23, $4
+ addq $5, $7, $5
+ stq $6, 16($16)
+ bis $31, $31, $6
+ mulq $3, $0, $8
+ umulh $3, $0, $24
+ cmplt $8, $31, $25
+ cmplt $24, $31, $27
+ addq $8, $8, $8
+ addq $24, $24, $24
+ addq $24, $25, $24
+ addq $6, $27, $6
+ addq $4, $8, $4
+ addq $5, $24, $5
+ cmpult $4, $8, $28
+ cmpult $5, $24, $21
+ addq $5, $28, $5
+ addq $6, $21, $6
+ mulq $2, $1, $20
+ umulh $2, $1, $17
+ cmplt $20, $31, $22
+ cmplt $17, $31, $19
+ addq $20, $20, $20
+ addq $17, $17, $17
+ addq $17, $22, $17
+ addq $6, $19, $6
+ addq $4, $20, $4
+ addq $5, $17, $5
+ cmpult $4, $20, $18
+ cmpult $5, $17, $23
+ addq $5, $18, $5
+ addq $6, $23, $6
+ stq $4, 24($16)
+ bis $31, $31, $4
+ mulq $2, $2, $7
+ umulh $2, $2, $25
+ addq $5, $7, $5
+ addq $6, $25, $6
+ cmpult $5, $7, $27
+ cmpult $6, $25, $8
+ addq $6, $27, $6
+ addq $4, $8, $4
+ mulq $3, $1, $24
+ umulh $3, $1, $28
+ cmplt $24, $31, $21
+ cmplt $28, $31, $22
+ addq $24, $24, $24
+ addq $28, $28, $28
+ addq $28, $21, $28
+ addq $4, $22, $4
+ addq $5, $24, $5
+ addq $6, $28, $6
+ cmpult $5, $24, $19
+ cmpult $6, $28, $20
+ addq $6, $19, $6
+ addq $4, $20, $4
+ stq $5, 32($16)
+ bis $31, $31, $5
+ mulq $3, $2, $17
+ umulh $3, $2, $18
+ cmplt $17, $31, $23
+ cmplt $18, $31, $7
+ addq $17, $17, $17
+ addq $18, $18, $18
+ addq $18, $23, $18
+ addq $5, $7, $5
+ addq $6, $17, $6
+ addq $4, $18, $4
+ cmpult $6, $17, $25
+ cmpult $4, $18, $27
+ addq $4, $25, $4
+ addq $5, $27, $5
+ stq $6, 40($16)
+ bis $31, $31, $6
+ mulq $3, $3, $8
+ umulh $3, $3, $21
+ addq $4, $8, $4
+ addq $5, $21, $5
+ cmpult $4, $8, $22
+ cmpult $5, $21, $24
+ addq $5, $22, $5
+ addq $6, $24, $6
+ stq $4, 48($16)
+ stq $5, 56($16)
+ ret $31,($26),1
+ .end bn_sqr_comba4
+ .text
+ .align 3
+ .globl bn_sqr_comba8
+ .ent bn_sqr_comba8
+bn_sqr_comba8:
+bn_sqr_comba8..ng:
+ .frame $30,0,$26,0
+ .prologue 0
+
+ ldq $0, 0($17)
+ ldq $1, 8($17)
+ ldq $2, 16($17)
+ ldq $3, 24($17)
+ ldq $4, 32($17)
+ ldq $5, 40($17)
+ ldq $6, 48($17)
+ ldq $7, 56($17)
+ bis $31, $31, $23
+ mulq $0, $0, $8
+ umulh $0, $0, $22
+ stq $8, 0($16)
+ bis $31, $31, $8
+ mulq $1, $0, $24
+ umulh $1, $0, $25
+ cmplt $24, $31, $27
+ cmplt $25, $31, $28
+ addq $24, $24, $24
+ addq $25, $25, $25
+ addq $25, $27, $25
+ addq $8, $28, $8
+ addq $22, $24, $22
+ addq $23, $25, $23
+ cmpult $22, $24, $21
+ cmpult $23, $25, $20
+ addq $23, $21, $23
+ addq $8, $20, $8
+ stq $22, 8($16)
+ bis $31, $31, $22
+ mulq $1, $1, $19
+ umulh $1, $1, $18
+ addq $23, $19, $23
+ addq $8, $18, $8
+ cmpult $23, $19, $17
+ cmpult $8, $18, $27
+ addq $8, $17, $8
+ addq $22, $27, $22
+ mulq $2, $0, $28
+ umulh $2, $0, $24
+ cmplt $28, $31, $25
+ cmplt $24, $31, $21
+ addq $28, $28, $28
+ addq $24, $24, $24
+ addq $24, $25, $24
+ addq $22, $21, $22
+ addq $23, $28, $23
+ addq $8, $24, $8
+ cmpult $23, $28, $20
+ cmpult $8, $24, $19
+ addq $8, $20, $8
+ addq $22, $19, $22
+ stq $23, 16($16)
+ bis $31, $31, $23
+ mulq $2, $1, $18
+ umulh $2, $1, $17
+ cmplt $18, $31, $27
+ cmplt $17, $31, $25
+ addq $18, $18, $18
+ addq $17, $17, $17
+ addq $17, $27, $17
+ addq $23, $25, $23
+ addq $8, $18, $8
+ addq $22, $17, $22
+ cmpult $8, $18, $21
+ cmpult $22, $17, $28
+ addq $22, $21, $22
+ addq $23, $28, $23
+ mulq $3, $0, $24
+ umulh $3, $0, $20
+ cmplt $24, $31, $19
+ cmplt $20, $31, $27
+ addq $24, $24, $24
+ addq $20, $20, $20
+ addq $20, $19, $20
+ addq $23, $27, $23
+ addq $8, $24, $8
+ addq $22, $20, $22
+ cmpult $8, $24, $25
+ cmpult $22, $20, $18
+ addq $22, $25, $22
+ addq $23, $18, $23
+ stq $8, 24($16)
+ bis $31, $31, $8
+ mulq $2, $2, $17
+ umulh $2, $2, $21
+ addq $22, $17, $22
+ addq $23, $21, $23
+ cmpult $22, $17, $28
+ cmpult $23, $21, $19
+ addq $23, $28, $23
+ addq $8, $19, $8
+ mulq $3, $1, $27
+ umulh $3, $1, $24
+ cmplt $27, $31, $20
+ cmplt $24, $31, $25
+ addq $27, $27, $27
+ addq $24, $24, $24
+ addq $24, $20, $24
+ addq $8, $25, $8
+ addq $22, $27, $22
+ addq $23, $24, $23
+ cmpult $22, $27, $18
+ cmpult $23, $24, $17
+ addq $23, $18, $23
+ addq $8, $17, $8
+ mulq $4, $0, $21
+ umulh $4, $0, $28
+ cmplt $21, $31, $19
+ cmplt $28, $31, $20
+ addq $21, $21, $21
+ addq $28, $28, $28
+ addq $28, $19, $28
+ addq $8, $20, $8
+ addq $22, $21, $22
+ addq $23, $28, $23
+ cmpult $22, $21, $25
+ cmpult $23, $28, $27
+ addq $23, $25, $23
+ addq $8, $27, $8
+ stq $22, 32($16)
+ bis $31, $31, $22
+ mulq $3, $2, $24
+ umulh $3, $2, $18
+ cmplt $24, $31, $17
+ cmplt $18, $31, $19
+ addq $24, $24, $24
+ addq $18, $18, $18
+ addq $18, $17, $18
+ addq $22, $19, $22
+ addq $23, $24, $23
+ addq $8, $18, $8
+ cmpult $23, $24, $20
+ cmpult $8, $18, $21
+ addq $8, $20, $8
+ addq $22, $21, $22
+ mulq $4, $1, $28
+ umulh $4, $1, $25
+ cmplt $28, $31, $27
+ cmplt $25, $31, $17
+ addq $28, $28, $28
+ addq $25, $25, $25
+ addq $25, $27, $25
+ addq $22, $17, $22
+ addq $23, $28, $23
+ addq $8, $25, $8
+ cmpult $23, $28, $19
+ cmpult $8, $25, $24
+ addq $8, $19, $8
+ addq $22, $24, $22
+ mulq $5, $0, $18
+ umulh $5, $0, $20
+ cmplt $18, $31, $21
+ cmplt $20, $31, $27
+ addq $18, $18, $18
+ addq $20, $20, $20
+ addq $20, $21, $20
+ addq $22, $27, $22
+ addq $23, $18, $23
+ addq $8, $20, $8
+ cmpult $23, $18, $17
+ cmpult $8, $20, $28
+ addq $8, $17, $8
+ addq $22, $28, $22
+ stq $23, 40($16)
+ bis $31, $31, $23
+ mulq $3, $3, $25
+ umulh $3, $3, $19
+ addq $8, $25, $8
+ addq $22, $19, $22
+ cmpult $8, $25, $24
+ cmpult $22, $19, $21
+ addq $22, $24, $22
+ addq $23, $21, $23
+ mulq $4, $2, $27
+ umulh $4, $2, $18
+ cmplt $27, $31, $20
+ cmplt $18, $31, $17
+ addq $27, $27, $27
+ addq $18, $18, $18
+ addq $18, $20, $18
+ addq $23, $17, $23
+ addq $8, $27, $8
+ addq $22, $18, $22
+ cmpult $8, $27, $28
+ cmpult $22, $18, $25
+ addq $22, $28, $22
+ addq $23, $25, $23
+ mulq $5, $1, $19
+ umulh $5, $1, $24
+ cmplt $19, $31, $21
+ cmplt $24, $31, $20
+ addq $19, $19, $19
+ addq $24, $24, $24
+ addq $24, $21, $24
+ addq $23, $20, $23
+ addq $8, $19, $8
+ addq $22, $24, $22
+ cmpult $8, $19, $17
+ cmpult $22, $24, $27
+ addq $22, $17, $22
+ addq $23, $27, $23
+ mulq $6, $0, $18
+ umulh $6, $0, $28
+ cmplt $18, $31, $25
+ cmplt $28, $31, $21
+ addq $18, $18, $18
+ addq $28, $28, $28
+ addq $28, $25, $28
+ addq $23, $21, $23
+ addq $8, $18, $8
+ addq $22, $28, $22
+ cmpult $8, $18, $20
+ cmpult $22, $28, $19
+ addq $22, $20, $22
+ addq $23, $19, $23
+ stq $8, 48($16)
+ bis $31, $31, $8
+ mulq $4, $3, $24
+ umulh $4, $3, $17
+ cmplt $24, $31, $27
+ cmplt $17, $31, $25
+ addq $24, $24, $24
+ addq $17, $17, $17
+ addq $17, $27, $17
+ addq $8, $25, $8
+ addq $22, $24, $22
+ addq $23, $17, $23
+ cmpult $22, $24, $21
+ cmpult $23, $17, $18
+ addq $23, $21, $23
+ addq $8, $18, $8
+ mulq $5, $2, $28
+ umulh $5, $2, $20
+ cmplt $28, $31, $19
+ cmplt $20, $31, $27
+ addq $28, $28, $28
+ addq $20, $20, $20
+ addq $20, $19, $20
+ addq $8, $27, $8
+ addq $22, $28, $22
+ addq $23, $20, $23
+ cmpult $22, $28, $25
+ cmpult $23, $20, $24
+ addq $23, $25, $23
+ addq $8, $24, $8
+ mulq $6, $1, $17
+ umulh $6, $1, $21
+ cmplt $17, $31, $18
+ cmplt $21, $31, $19
+ addq $17, $17, $17
+ addq $21, $21, $21
+ addq $21, $18, $21
+ addq $8, $19, $8
+ addq $22, $17, $22
+ addq $23, $21, $23
+ cmpult $22, $17, $27
+ cmpult $23, $21, $28
+ addq $23, $27, $23
+ addq $8, $28, $8
+ mulq $7, $0, $20
+ umulh $7, $0, $25
+ cmplt $20, $31, $24
+ cmplt $25, $31, $18
+ addq $20, $20, $20
+ addq $25, $25, $25
+ addq $25, $24, $25
+ addq $8, $18, $8
+ addq $22, $20, $22
+ addq $23, $25, $23
+ cmpult $22, $20, $19
+ cmpult $23, $25, $17
+ addq $23, $19, $23
+ addq $8, $17, $8
+ stq $22, 56($16)
+ bis $31, $31, $22
+ mulq $4, $4, $21
+ umulh $4, $4, $27
+ addq $23, $21, $23
+ addq $8, $27, $8
+ cmpult $23, $21, $28
+ cmpult $8, $27, $24
+ addq $8, $28, $8
+ addq $22, $24, $22
+ mulq $5, $3, $18
+ umulh $5, $3, $20
+ cmplt $18, $31, $25
+ cmplt $20, $31, $19
+ addq $18, $18, $18
+ addq $20, $20, $20
+ addq $20, $25, $20
+ addq $22, $19, $22
+ addq $23, $18, $23
+ addq $8, $20, $8
+ cmpult $23, $18, $17
+ cmpult $8, $20, $21
+ addq $8, $17, $8
+ addq $22, $21, $22
+ mulq $6, $2, $27
+ umulh $6, $2, $28
+ cmplt $27, $31, $24
+ cmplt $28, $31, $25
+ addq $27, $27, $27
+ addq $28, $28, $28
+ addq $28, $24, $28
+ addq $22, $25, $22
+ addq $23, $27, $23
+ addq $8, $28, $8
+ cmpult $23, $27, $19
+ cmpult $8, $28, $18
+ addq $8, $19, $8
+ addq $22, $18, $22
+ mulq $7, $1, $20
+ umulh $7, $1, $17
+ cmplt $20, $31, $21
+ cmplt $17, $31, $24
+ addq $20, $20, $20
+ addq $17, $17, $17
+ addq $17, $21, $17
+ addq $22, $24, $22
+ addq $23, $20, $23
+ addq $8, $17, $8
+ cmpult $23, $20, $25
+ cmpult $8, $17, $27
+ addq $8, $25, $8
+ addq $22, $27, $22
+ stq $23, 64($16)
+ bis $31, $31, $23
+ mulq $5, $4, $28
+ umulh $5, $4, $19
+ cmplt $28, $31, $18
+ cmplt $19, $31, $21
+ addq $28, $28, $28
+ addq $19, $19, $19
+ addq $19, $18, $19
+ addq $23, $21, $23
+ addq $8, $28, $8
+ addq $22, $19, $22
+ cmpult $8, $28, $24
+ cmpult $22, $19, $20
+ addq $22, $24, $22
+ addq $23, $20, $23
+ mulq $6, $3, $17
+ umulh $6, $3, $25
+ cmplt $17, $31, $27
+ cmplt $25, $31, $18
+ addq $17, $17, $17
+ addq $25, $25, $25
+ addq $25, $27, $25
+ addq $23, $18, $23
+ addq $8, $17, $8
+ addq $22, $25, $22
+ cmpult $8, $17, $21
+ cmpult $22, $25, $28
+ addq $22, $21, $22
+ addq $23, $28, $23
+ mulq $7, $2, $19
+ umulh $7, $2, $24
+ cmplt $19, $31, $20
+ cmplt $24, $31, $27
+ addq $19, $19, $19
+ addq $24, $24, $24
+ addq $24, $20, $24
+ addq $23, $27, $23
+ addq $8, $19, $8
+ addq $22, $24, $22
+ cmpult $8, $19, $18
+ cmpult $22, $24, $17
+ addq $22, $18, $22
+ addq $23, $17, $23
+ stq $8, 72($16)
+ bis $31, $31, $8
+ mulq $5, $5, $25
+ umulh $5, $5, $21
+ addq $22, $25, $22
+ addq $23, $21, $23
+ cmpult $22, $25, $28
+ cmpult $23, $21, $20
+ addq $23, $28, $23
+ addq $8, $20, $8
+ mulq $6, $4, $27
+ umulh $6, $4, $19
+ cmplt $27, $31, $24
+ cmplt $19, $31, $18
+ addq $27, $27, $27
+ addq $19, $19, $19
+ addq $19, $24, $19
+ addq $8, $18, $8
+ addq $22, $27, $22
+ addq $23, $19, $23
+ cmpult $22, $27, $17
+ cmpult $23, $19, $25
+ addq $23, $17, $23
+ addq $8, $25, $8
+ mulq $7, $3, $21
+ umulh $7, $3, $28
+ cmplt $21, $31, $20
+ cmplt $28, $31, $24
+ addq $21, $21, $21
+ addq $28, $28, $28
+ addq $28, $20, $28
+ addq $8, $24, $8
+ addq $22, $21, $22
+ addq $23, $28, $23
+ cmpult $22, $21, $18
+ cmpult $23, $28, $27
+ addq $23, $18, $23
+ addq $8, $27, $8
+ stq $22, 80($16)
+ bis $31, $31, $22
+ mulq $6, $5, $19
+ umulh $6, $5, $17
+ cmplt $19, $31, $25
+ cmplt $17, $31, $20
+ addq $19, $19, $19
+ addq $17, $17, $17
+ addq $17, $25, $17
+ addq $22, $20, $22
+ addq $23, $19, $23
+ addq $8, $17, $8
+ cmpult $23, $19, $24
+ cmpult $8, $17, $21
+ addq $8, $24, $8
+ addq $22, $21, $22
+ mulq $7, $4, $28
+ umulh $7, $4, $18
+ cmplt $28, $31, $27
+ cmplt $18, $31, $25
+ addq $28, $28, $28
+ addq $18, $18, $18
+ addq $18, $27, $18
+ addq $22, $25, $22
+ addq $23, $28, $23
+ addq $8, $18, $8
+ cmpult $23, $28, $20
+ cmpult $8, $18, $19
+ addq $8, $20, $8
+ addq $22, $19, $22
+ stq $23, 88($16)
+ bis $31, $31, $23
+ mulq $6, $6, $17
+ umulh $6, $6, $24
+ addq $8, $17, $8
+ addq $22, $24, $22
+ cmpult $8, $17, $21
+ cmpult $22, $24, $27
+ addq $22, $21, $22
+ addq $23, $27, $23
+ mulq $7, $5, $25
+ umulh $7, $5, $28
+ cmplt $25, $31, $18
+ cmplt $28, $31, $20
+ addq $25, $25, $25
+ addq $28, $28, $28
+ addq $28, $18, $28
+ addq $23, $20, $23
+ addq $8, $25, $8
+ addq $22, $28, $22
+ cmpult $8, $25, $19
+ cmpult $22, $28, $17
+ addq $22, $19, $22
+ addq $23, $17, $23
+ stq $8, 96($16)
+ bis $31, $31, $8
+ mulq $7, $6, $24
+ umulh $7, $6, $21
+ cmplt $24, $31, $27
+ cmplt $21, $31, $18
+ addq $24, $24, $24
+ addq $21, $21, $21
+ addq $21, $27, $21
+ addq $8, $18, $8
+ addq $22, $24, $22
+ addq $23, $21, $23
+ cmpult $22, $24, $20
+ cmpult $23, $21, $25
+ addq $23, $20, $23
+ addq $8, $25, $8
+ stq $22, 104($16)
+ bis $31, $31, $22
+ mulq $7, $7, $28
+ umulh $7, $7, $19
+ addq $23, $28, $23
+ addq $8, $19, $8
+ cmpult $23, $28, $17
+ cmpult $8, $19, $27
+ addq $8, $17, $8
+ addq $22, $27, $22
+ stq $23, 112($16)
+ stq $8, 120($16)
+ ret $31,($26),1
+ .end bn_sqr_comba8