Assembler support for IA-64. See the source code commentary for further
[openssl.git] / crypto / bn / asm / alpha.s
index d56f715ecd66edaaa9614ce577a070ef35812f8a..555ff0b92d1c95f21f2b2367a2d331fb562a158f 100644 (file)
  # DEC Alpha assember
- # The bn_div64 is actually gcc output but the other parts are hand done.
+ # The bn_div_words is actually gcc output but the other parts are hand done.
  # Thanks to tzeruch@ceddec.com for sending me the gcc output for
- # bn_div64.
-       .file   1 "bn_mulw.c"
-       .version        "01.01"
+ # bn_div_words.
+ # I've gone back and re-done most of routines.
+ # The key thing to remeber for the 164 CPU is that while a
+ # multiply operation takes 8 cycles, another one can only be issued
+ # after 4 cycles have elapsed.  I've done modification to help
+ # improve this.  Also, normally, a ld instruction will not be available
+ # for about 3 cycles.
+       .file   1 "bn_asm.c"
        .set noat
 gcc2_compiled.:
 __gnu_compiled_c:
        .text
        .align 3
-       .globl bn_mul_add_word
-       .ent bn_mul_add_word
-bn_mul_add_word:
-bn_mul_add_word..ng:
+       .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,2,$25  # num=-2
-       bis $31,$31,$0
-       blt $25,$42
        .align 5
-$142:
-       subq $18,2,$18  # num-=2
-       subq $25,2,$25  # num-=2
+       subq    $18,4,$18
+       bis     $31,$31,$0
+       blt     $18,$43         # if we are -1, -2, -3 or -4 goto tail code
+       ldq     $20,0($17)      # 1 1
+       ldq     $1,0($16)       # 1 1
+       .align 3
+$42:
+       mulq    $20,$19,$5      # 1 2 1 ######
+       ldq     $21,8($17)      # 2 1
+       ldq     $2,8($16)       # 2 1
+       umulh   $20,$19,$20     # 1 2   ######
+       ldq     $27,16($17)     # 3 1
+       ldq     $3,16($16)      # 3 1
+       mulq    $21,$19,$6      # 2 2 1 ######
+        ldq    $28,24($17)     # 4 1
+       addq    $1,$5,$1        # 1 2 2
+        ldq    $4,24($16)      # 4 1
+       umulh   $21,$19,$21     # 2 2   ######
+        cmpult $1,$5,$22       # 1 2 3 1
+       addq    $20,$22,$20     # 1 3 1
+        addq   $1,$0,$1        # 1 2 3 1
+       mulq    $27,$19,$7      # 3 2 1 ######
+        cmpult $1,$0,$0        # 1 2 3 2
+       addq    $2,$6,$2        # 2 2 2
+        addq   $20,$0,$0       # 1 3 2 
+       cmpult  $2,$6,$23       # 2 2 3 1
+        addq   $21,$23,$21     # 2 3 1
+       umulh   $27,$19,$27     # 3 2   ######
+        addq   $2,$0,$2        # 2 2 3 1
+       cmpult  $2,$0,$0        # 2 2 3 2
+        subq   $18,4,$18
+       mulq    $28,$19,$8      # 4 2 1 ######
+        addq   $21,$0,$0       # 2 3 2 
+       addq    $3,$7,$3        # 3 2 2
+        addq   $16,32,$16
+       cmpult  $3,$7,$24       # 3 2 3 1
+        stq    $1,-32($16)     # 1 2 4
+       umulh   $28,$19,$28     # 4 2   ######
+        addq   $27,$24,$27     # 3 3 1
+       addq    $3,$0,$3        # 3 2 3 1
+        stq    $2,-24($16)     # 2 2 4
+       cmpult  $3,$0,$0        # 3 2 3 2
+        stq    $3,-16($16)     # 3 2 4
+       addq    $4,$8,$4        # 4 2 2
+        addq   $27,$0,$0       # 3 3 2 
+       cmpult  $4,$8,$25       # 4 2 3 1
+        addq   $17,32,$17
+       addq    $28,$25,$28     # 4 3 1
+        addq   $4,$0,$4        # 4 2 3 1
+       cmpult  $4,$0,$0        # 4 2 3 2
+        stq    $4,-8($16)      # 4 2 4
+       addq    $28,$0,$0       # 4 3 2 
+        blt    $18,$43
 
-       ldq $1,0($17)   # a[0]
-       ldq $2,8($17)   # a[1]
+       ldq     $20,0($17)      # 1 1
+       ldq     $1,0($16)       # 1 1
 
-       mulq $19,$1,$3  # a[0]*w low part       r3
-       umulh $19,$1,$1 # a[0]*w high part      r1
-       mulq $19,$2,$4  # a[1]*w low part       r4
-       umulh $19,$2,$2 # a[1]*w high part      r2
+       br      $42
 
-       ldq $22,0($16)  # r[0]                  r22
-       ldq $23,8($16)  # r[1]                  r23
+       .align 4
+$45:
+       ldq     $20,0($17)      # 4 1
+       ldq     $1,0($16)       # 4 1
+       mulq    $20,$19,$5      # 4 2 1
+       subq    $18,1,$18
+       addq    $16,8,$16
+       addq    $17,8,$17
+       umulh   $20,$19,$20     # 4 2
+       addq    $1,$5,$1        # 4 2 2
+       cmpult  $1,$5,$22       # 4 2 3 1
+       addq    $20,$22,$20     # 4 3 1
+       addq    $1,$0,$1        # 4 2 3 1
+       cmpult  $1,$0,$0        # 4 2 3 2
+       addq    $20,$0,$0       # 4 3 2 
+       stq     $1,-8($16)      # 4 2 4
+       bgt     $18,$45
+       ret     $31,($26),1     # else exit
 
-       addq $3,$22,$3  # a0 low part + r[0]    
-       addq $4,$23,$4  # a1 low part + r[1]    
-       cmpult $3,$22,$5 # overflow?
-       cmpult $4,$23,$6 # overflow?
-       addq $5,$1,$1   # high part + overflow 
-       addq $6,$2,$2   # high part + overflow 
+       .align 4
+$43:
+       addq    $18,4,$18
+       bgt     $18,$45         # goto tail code
+       ret     $31,($26),1     # else exit
 
-       addq $3,$0,$3   # add c
-       cmpult $3,$0,$5 # overflow?
-       stq $3,0($16)
-       addq $5,$1,$0   # c=high part + overflow 
+       .end bn_mul_add_words
+       .align 3
+       .globl bn_mul_words
+       .ent bn_mul_words
+bn_mul_words:
+bn_mul_words..ng:
+       .frame $30,0,$26,0
+       .prologue 0
+       .align 5
+       subq    $18,4,$18
+       bis     $31,$31,$0
+       blt     $18,$143        # if we are -1, -2, -3 or -4 goto tail code
+       ldq     $20,0($17)      # 1 1
+       .align 3
+$142:
 
-       addq $4,$0,$4   # add c
-       cmpult $4,$0,$5 # overflow?
-       stq $4,8($16)
-       addq $5,$2,$0   # c=high part + overflow 
+       mulq    $20,$19,$5      # 1 2 1 #####
+        ldq    $21,8($17)      # 2 1
+        ldq    $27,16($17)     # 3 1
+       umulh   $20,$19,$20     # 1 2   #####
+        ldq    $28,24($17)     # 4 1
+       mulq    $21,$19,$6      # 2 2 1 #####
+        addq   $5,$0,$5        # 1 2 3 1
+       subq    $18,4,$18
+        cmpult $5,$0,$0        # 1 2 3 2
+       umulh   $21,$19,$21     # 2 2   #####
+        addq   $20,$0,$0       # 1 3 2 
+       addq    $17,32,$17
+        addq   $6,$0,$6        # 2 2 3 1
+       mulq    $27,$19,$7      # 3 2 1 #####
+        cmpult $6,$0,$0        # 2 2 3 2
+       addq    $21,$0,$0       # 2 3 2 
+        addq   $16,32,$16
+       umulh   $27,$19,$27     # 3 2   #####
+        stq    $5,-32($16)     # 1 2 4
+       mulq    $28,$19,$8      # 4 2 1 #####
+        addq   $7,$0,$7        # 3 2 3 1
+       stq     $6,-24($16)     # 2 2 4
+        cmpult $7,$0,$0        # 3 2 3 2
+       umulh   $28,$19,$28     # 4 2   #####
+        addq   $27,$0,$0       # 3 3 2 
+       stq     $7,-16($16)     # 3 2 4
+        addq   $8,$0,$8        # 4 2 3 1
+       cmpult  $8,$0,$0        # 4 2 3 2
 
-       ble $18,$43
+       addq    $28,$0,$0       # 4 3 2 
 
-       addq $16,16,$16
-       addq $17,16,$17
-       blt $25,$42
+       stq     $8,-8($16)      # 4 2 4
 
-       br $31,$142
-$42:
-       ldq $1,0($17)   # a[0]
-       umulh $19,$1,$3 # a[0]*w high part
-       mulq $19,$1,$1  # a[0]*w low part
-       ldq $2,0($16)   # r[0]
-       addq $1,$2,$1   # low part + r[0]
-       cmpult $1,$2,$4 # overflow?
-       addq $4,$3,$3   # high part + overflow 
-       addq $1,$0,$1   # add c
-       cmpult $1,$0,$4 # overflow?
-       addq $4,$3,$0   # c=high part + overflow 
-       stq $1,0($16)
+       blt     $18,$143
+
+       ldq     $20,0($17)      # 1 1
+
+       br      $142
 
        .align 4
-$43:
-       ret $31,($26),1
-       .end bn_mul_add_word
-       .align 3
-       .globl bn_mul_word
-       .ent bn_mul_word
-bn_mul_word:
-bn_mul_word..ng:
-       .frame $30,0,$26,0
-       .prologue 0
-       subq $18,2,$25  # num=-2
-       bis $31,$31,$0
-       blt $25,$242
-       .align 5
-$342:
-       subq $18,2,$18  # num-=2
-       subq $25,2,$25  # num-=2
-
-       ldq $1,0($17)   # a[0]
-       ldq $2,8($17)   # a[1]
-
-       mulq $19,$1,$3  # a[0]*w low part       r3
-       umulh $19,$1,$1 # a[0]*w high part      r1
-       mulq $19,$2,$4  # a[1]*w low part       r4
-       umulh $19,$2,$2 # a[1]*w high part      r2
-
-       addq $3,$0,$3   # add c
-       cmpult $3,$0,$5 # overflow?
-       stq $3,0($16)
-       addq $5,$1,$0   # c=high part + overflow 
-
-       addq $4,$0,$4   # add c
-       cmpult $4,$0,$5 # overflow?
-       stq $4,8($16)
-       addq $5,$2,$0   # c=high part + overflow 
-
-       ble $18,$243
-
-       addq $16,16,$16
-       addq $17,16,$17
-       blt $25,$242
-
-       br $31,$342
-$242:
-       ldq $1,0($17)   # a[0]
-       umulh $19,$1,$3 # a[0]*w high part
-       mulq $19,$1,$1  # a[0]*w low part
-       addq $1,$0,$1   # add c
-       cmpult $1,$0,$4 # overflow?
-       addq $4,$3,$0   # c=high part + overflow 
-       stq $1,0($16)
-$243:
-       ret $31,($26),1
-       .end bn_mul_word
+$145:
+       ldq     $20,0($17)      # 4 1
+       mulq    $20,$19,$5      # 4 2 1
+       subq    $18,1,$18
+       umulh   $20,$19,$20     # 4 2
+       addq    $5,$0,$5        # 4 2 3 1
+        addq   $16,8,$16
+       cmpult  $5,$0,$0        # 4 2 3 2
+        addq   $17,8,$17
+       addq    $20,$0,$0       # 4 3 2 
+       stq     $5,-8($16)      # 4 2 4
+
+       bgt     $18,$145
+       ret     $31,($26),1     # else exit
+
+       .align 4
+$143:
+       addq    $18,4,$18
+       bgt     $18,$145        # goto tail code
+       ret     $31,($26),1     # else exit
+
+       .end bn_mul_words
        .align 3
        .globl bn_sqr_words
        .ent bn_sqr_words
@@ -133,45 +190,137 @@ bn_sqr_words:
 bn_sqr_words..ng:
        .frame $30,0,$26,0
        .prologue 0
-       
-       subq $18,2,$25  # num=-2
-       blt $25,$442
-       .align 5
+
+       subq    $18,4,$18
+       blt     $18,$543        # if we are -1, -2, -3 or -4 goto tail code
+       ldq     $20,0($17)      # 1 1
+       .align 3
 $542:
-       subq $18,2,$18  # num-=2
-       subq $25,2,$25  # num-=2
+       mulq    $20,$20,$5              ######
+        ldq    $21,8($17)      # 1 1
+       subq    $18,4
+       umulh   $20,$20,$1              ######
+       ldq     $27,16($17)     # 1 1
+       mulq    $21,$21,$6              ######
+       ldq     $28,24($17)     # 1 1
+       stq     $5,0($16)       # r[0]
+       umulh   $21,$21,$2              ######
+       stq     $1,8($16)       # r[1]
+       mulq    $27,$27,$7              ######
+       stq     $6,16($16)      # r[0]
+       umulh   $27,$27,$3              ######
+       stq     $2,24($16)      # r[1]
+       mulq    $28,$28,$8              ######
+       stq     $7,32($16)      # r[0]
+       umulh   $28,$28,$4              ######
+       stq     $3,40($16)      # r[1]
 
-       ldq $1,0($17)   # a[0]
-       ldq $4,8($17)   # a[1]
+       addq    $16,64,$16
+       addq    $17,32,$17
+       stq     $8,-16($16)     # r[0]
+       stq     $4,-8($16)      # r[1]
 
-       mulq $1,$1,$2   # a[0]*w low part       r2
-       umulh $1,$1,$3 # a[0]*w high part       r3
-       mulq $4,$4,$5   # a[1]*w low part       r5
-       umulh $4,$4,$6 # a[1]*w high part       r6
+       blt     $18,$543
+       ldq     $20,0($17)      # 1 1
+       br      $542
 
-       stq $2,0($16)   # r[0]
-       stq $3,8($16)   # r[1]
-       stq $5,16($16)  # r[3]
-       stq $6,24($16)  # r[4]
+$442:
+       ldq     $20,0($17)   # a[0]
+       mulq    $20,$20,$5  # a[0]*w low part       r2
+       addq    $16,16,$16
+       addq    $17,8,$17
+       subq    $18,1,$18
+        umulh  $20,$20,$1  # a[0]*w high part       r3
+       stq     $5,-16($16)   # r[0]
+        stq    $1,-8($16)   # r[1]
 
-       ble $18,$443
+       bgt     $18,$442
+       ret     $31,($26),1     # else exit
 
-       addq $16,32,$16
-       addq $17,16,$17
-       blt $25,$442
-       br $31,$542
+       .align 4
+$543:
+       addq    $18,4,$18
+       bgt     $18,$442        # goto tail code
+       ret     $31,($26),1     # else exit
+       .end bn_sqr_words
 
-$442:
-       ldq $1,0($17)   # a[0]
-       mulq $1,$1,$2   # a[0]*w low part       r2
-        umulh $1,$1,$3  # a[0]*w high part       r3
-       stq $2,0($16)   # r[0]
-        stq $3,8($16)   # r[1]
+       .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      # carry = 0
+       blt     $19,$900
+       ldq     $5,0($17)       # a[0]
+       ldq     $1,0($18)       # b[1]
+       .align 3
+$901:
+       addq    $1,$5,$1        # r=a+b;
+        ldq    $6,8($17)       # a[1]
+       cmpult  $1,$5,$22       # did we overflow?
+        ldq    $2,8($18)       # b[1]
+       addq    $1,$0,$1        # c+= overflow
+        ldq    $7,16($17)      # a[2]
+       cmpult  $1,$0,$0        # overflow?
+        ldq    $3,16($18)      # b[2]
+       addq    $0,$22,$0
+        ldq    $8,24($17)      # a[3]
+       addq    $2,$6,$2        # r=a+b;
+        ldq    $4,24($18)      # b[3]
+       cmpult  $2,$6,$23       # did we overflow?
+        addq   $3,$7,$3        # r=a+b;
+       addq    $2,$0,$2        # c+= overflow
+        cmpult $3,$7,$24       # did we overflow?
+       cmpult  $2,$0,$0        # overflow?
+        addq   $4,$8,$4        # r=a+b;
+       addq    $0,$23,$0
+        cmpult $4,$8,$25       # did we overflow?
+       addq    $3,$0,$3        # c+= overflow
+        stq    $1,0($16)       # r[0]=c
+       cmpult  $3,$0,$0        # overflow?
+        stq    $2,8($16)       # r[1]=c
+       addq    $0,$24,$0
+        stq    $3,16($16)      # r[2]=c
+       addq    $4,$0,$4        # c+= overflow
+        subq   $19,4,$19       # loop--
+       cmpult  $4,$0,$0        # overflow?
+        addq   $17,32,$17      # a++
+       addq    $0,$25,$0
+        stq    $4,24($16)      # r[3]=c
+       addq    $18,32,$18      # b++
+        addq   $16,32,$16      # r++
 
+       blt     $19,$900
+        ldq    $5,0($17)       # a[0]
+       ldq     $1,0($18)       # b[1]
+        br     $901
        .align 4
-$443:
-       ret $31,($26),1
-       .end bn_sqr_words
+$945:
+       ldq     $5,0($17)       # a[0]
+        ldq    $1,0($18)       # b[1]
+       addq    $1,$5,$1        # r=a+b;
+        subq   $19,1,$19       # loop--
+       addq    $1,$0,$1        # c+= overflow
+        addq   $17,8,$17       # a++
+       cmpult  $1,$5,$22       # did we overflow?
+        cmpult $1,$0,$0        # overflow?
+       addq    $18,8,$18       # b++
+        stq    $1,0($16)       # r[0]=c
+       addq    $0,$22,$0
+        addq   $16,8,$16       # r++
+
+       bgt     $19,$945
+       ret     $31,($26),1     # else exit
+
+$900:
+       addq    $19,4,$19
+       bgt     $19,$945        # goto tail code
+       ret     $31,($26),1     # else exit
+       .end bn_add_words
 
  #
  # What follows was taken directly from the C compiler with a few
@@ -179,11 +328,11 @@ $443:
  #
 .text
        .align 3
-       .globl bn_div64
-       .ent bn_div64
-bn_div64:
+       .globl bn_div_words
+       .ent bn_div_words
+bn_div_words:
        ldgp $29,0($27)
-bn_div64..ng:
+bn_div_words..ng:
        lda $30,-48($30)
        .frame $30,48,$26,0
        stq $26,0($30)
@@ -304,7 +453,2747 @@ $136:
        ldq $13,40($30)
        addq $30,48,$30
        ret $31,($26),1
-       .end bn_div64
-       .ident  "GCC: (GNU) 2.7.2.1"
+       .end bn_div_words
 
+       .set noat
+       .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,    $100
+       ldq     $1,     0($17)
+       ldq     $2,     0($18)
+$101:
+       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,    $100
+       ldq     $1,     0($17)
+       ldq     $2,     0($18)
+       br      $101
+$102:
+       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,    $102
+       ret     $31,($26),1
+$100:
+       addq    $19,    4,      $19
+       bgt     $19,    $102
+$103:
+       ret     $31,($26),1
+       .end bn_sub_words
+       .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)
+       ldq     $4,     16($17)
+       ldq     $5,     16($18)
+       ldq     $6,     24($17)
+       ldq     $7,     24($18)
+       bis     $31,    $31,    $23
+       mulq    $0,     $1,     $8
+       umulh   $0,     $1,     $22
+       stq     $8,     0($16)
+       bis     $31,    $31,    $8
+       mulq    $0,     $3,     $24
+       umulh   $0,     $3,     $25
+       addq    $22,    $24,    $22
+       cmpult  $22,    $24,    $27
+       addq    $27,    $25,    $25
+       addq    $23,    $25,    $23
+       cmpult  $23,    $25,    $28
+       addq    $8,     $28,    $8
+       mulq    $2,     $1,     $21
+       umulh   $2,     $1,     $20
+       addq    $22,    $21,    $22
+       cmpult  $22,    $21,    $19
+       addq    $19,    $20,    $20
+       addq    $23,    $20,    $23
+       cmpult  $23,    $20,    $17
+       addq    $8,     $17,    $8
+       stq     $22,    8($16)
+       bis     $31,    $31,    $22
+       mulq    $2,     $3,     $18
+       umulh   $2,     $3,     $24
+       addq    $23,    $18,    $23
+       cmpult  $23,    $18,    $27
+       addq    $27,    $24,    $24
+       addq    $8,     $24,    $8
+       cmpult  $8,     $24,    $25
+       addq    $22,    $25,    $22
+       mulq    $0,     $5,     $28
+       umulh   $0,     $5,     $21
+       addq    $23,    $28,    $23
+       cmpult  $23,    $28,    $19
+       addq    $19,    $21,    $21
+       addq    $8,     $21,    $8
+       cmpult  $8,     $21,    $20
+       addq    $22,    $20,    $22
+       mulq    $4,     $1,     $17
+       umulh   $4,     $1,     $18
+       addq    $23,    $17,    $23
+       cmpult  $23,    $17,    $27
+       addq    $27,    $18,    $18
+       addq    $8,     $18,    $8
+       cmpult  $8,     $18,    $24
+       addq    $22,    $24,    $22
+       stq     $23,    16($16)
+       bis     $31,    $31,    $23
+       mulq    $0,     $7,     $25
+       umulh   $0,     $7,     $28
+       addq    $8,     $25,    $8
+       cmpult  $8,     $25,    $19
+       addq    $19,    $28,    $28
+       addq    $22,    $28,    $22
+       cmpult  $22,    $28,    $21
+       addq    $23,    $21,    $23
+       mulq    $2,     $5,     $20
+       umulh   $2,     $5,     $17
+       addq    $8,     $20,    $8
+       cmpult  $8,     $20,    $27
+       addq    $27,    $17,    $17
+       addq    $22,    $17,    $22
+       cmpult  $22,    $17,    $18
+       addq    $23,    $18,    $23
+       mulq    $4,     $3,     $24
+       umulh   $4,     $3,     $25
+       addq    $8,     $24,    $8
+       cmpult  $8,     $24,    $19
+       addq    $19,    $25,    $25
+       addq    $22,    $25,    $22
+       cmpult  $22,    $25,    $28
+       addq    $23,    $28,    $23
+       mulq    $6,     $1,     $21
+       umulh   $6,     $1,     $0
+       addq    $8,     $21,    $8
+       cmpult  $8,     $21,    $20
+       addq    $20,    $0,     $0
+       addq    $22,    $0,     $22
+       cmpult  $22,    $0,     $27
+       addq    $23,    $27,    $23
+       stq     $8,     24($16)
+       bis     $31,    $31,    $8
+       mulq    $2,     $7,     $17
+       umulh   $2,     $7,     $18
+       addq    $22,    $17,    $22
+       cmpult  $22,    $17,    $24
+       addq    $24,    $18,    $18
+       addq    $23,    $18,    $23
+       cmpult  $23,    $18,    $19
+       addq    $8,     $19,    $8
+       mulq    $4,     $5,     $25
+       umulh   $4,     $5,     $28
+       addq    $22,    $25,    $22
+       cmpult  $22,    $25,    $21
+       addq    $21,    $28,    $28
+       addq    $23,    $28,    $23
+       cmpult  $23,    $28,    $20
+       addq    $8,     $20,    $8
+       mulq    $6,     $3,     $0
+       umulh   $6,     $3,     $27
+       addq    $22,    $0,     $22
+       cmpult  $22,    $0,     $1
+       addq    $1,     $27,    $27
+       addq    $23,    $27,    $23
+       cmpult  $23,    $27,    $17
+       addq    $8,     $17,    $8
+       stq     $22,    32($16)
+       bis     $31,    $31,    $22
+       mulq    $4,     $7,     $24
+       umulh   $4,     $7,     $18
+       addq    $23,    $24,    $23
+       cmpult  $23,    $24,    $19
+       addq    $19,    $18,    $18
+       addq    $8,     $18,    $8
+       cmpult  $8,     $18,    $2
+       addq    $22,    $2,     $22
+       mulq    $6,     $5,     $25
+       umulh   $6,     $5,     $21
+       addq    $23,    $25,    $23
+       cmpult  $23,    $25,    $28
+       addq    $28,    $21,    $21
+       addq    $8,     $21,    $8
+       cmpult  $8,     $21,    $20
+       addq    $22,    $20,    $22
+       stq     $23,    40($16)
+       bis     $31,    $31,    $23
+       mulq    $6,     $7,     $0
+       umulh   $6,     $7,     $1
+       addq    $8,     $0,     $8
+       cmpult  $8,     $0,     $27
+       addq    $27,    $1,     $1
+       addq    $22,    $1,     $22
+       cmpult  $22,    $1,     $17
+       addq    $23,    $17,    $23
+       stq     $8,     48($16)
+       stq     $22,    56($16)
+       ret     $31,($26),1
+       .end bn_mul_comba4
+       .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
+       ldq     $1,     0($17)
+       ldq     $2,     0($18)
+       zapnot  $1,     15,     $7
+       srl     $2,     32,     $8
+       mulq    $8,     $7,     $22
+       srl     $1,     32,     $6
+       zapnot  $2,     15,     $5
+       mulq    $5,     $6,     $4
+       mulq    $7,     $5,     $24
+       addq    $22,    $4,     $22
+       cmpult  $22,    $4,     $1
+       mulq    $6,     $8,     $3
+       beq     $1,     $173
+       bis     $31,    1,      $1
+       sll     $1,     32,     $1
+       addq    $3,     $1,     $3
+$173:
+       sll     $22,    32,     $4
+       addq    $24,    $4,     $24
+       stq     $24,    0($16)
+       ldq     $2,     0($17)
+       ldq     $1,     8($18)
+       zapnot  $2,     15,     $7
+       srl     $1,     32,     $8
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $0
+       srl     $2,     32,     $6
+       mulq    $5,     $6,     $23
+       mulq    $6,     $8,     $6
+       srl     $22,    32,     $1
+       cmpult  $24,    $4,     $2
+       addq    $3,     $1,     $3
+       addq    $2,     $3,     $22
+       addq    $25,    $23,    $25
+       cmpult  $25,    $23,    $1
+       bis     $31,    1,      $2
+       beq     $1,     $177
+       sll     $2,     32,     $1
+       addq    $6,     $1,     $6
+$177:
+       sll     $25,    32,     $23
+       ldq     $1,     0($18)
+       addq    $0,     $23,    $0
+       bis     $0,     $0,     $7
+       ldq     $3,     8($17)
+       addq    $22,    $7,     $22
+       srl     $1,     32,     $8
+       cmpult  $22,    $7,     $4
+       zapnot  $3,     15,     $7
+       mulq    $8,     $7,     $28
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $21
+       srl     $25,    32,     $1
+       cmpult  $0,     $23,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $4,     $6,     $24
+       srl     $3,     32,     $6
+       mulq    $5,     $6,     $2
+       mulq    $6,     $8,     $6
+       addq    $28,    $2,     $28
+       cmpult  $28,    $2,     $1
+       bis     $31,    1,      $2
+       beq     $1,     $181
+       sll     $2,     32,     $1
+       addq    $6,     $1,     $6
+$181:
+       sll     $28,    32,     $2
+       addq    $21,    $2,     $21
+       bis     $21,    $21,    $7
+       addq    $22,    $7,     $22
+       stq     $22,    8($16)
+       ldq     $3,     16($17)
+       ldq     $1,     0($18)
+       cmpult  $22,    $7,     $4
+       zapnot  $3,     15,     $7
+       srl     $1,     32,     $8
+       mulq    $8,     $7,     $22
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $20
+       srl     $28,    32,     $1
+       cmpult  $21,    $2,     $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $4,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $23
+       srl     $3,     32,     $6
+       mulq    $5,     $6,     $2
+       mulq    $6,     $8,     $6
+       addq    $22,    $2,     $22
+       cmpult  $22,    $2,     $1
+       bis     $31,    1,      $2
+       beq     $1,     $185
+       sll     $2,     32,     $1
+       addq    $6,     $1,     $6
+$185:
+       sll     $22,    32,     $2
+       ldq     $1,     8($18)
+       addq    $20,    $2,     $20
+       bis     $20,    $20,    $7
+       ldq     $4,     8($17)
+       addq    $24,    $7,     $24
+       srl     $1,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $0
+       srl     $22,    32,     $1
+       cmpult  $20,    $2,     $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $22
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $21
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $189
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$189:
+       sll     $25,    32,     $5
+       ldq     $2,     16($18)
+       addq    $0,     $5,     $0
+       bis     $0,     $0,     $7
+       ldq     $4,     0($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $0,     $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $22,    $22
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $193
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$193:
+       sll     $28,    32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $24,    $7,     $24
+       stq     $24,    16($16)
+       ldq     $4,     0($17)
+       ldq     $5,     24($18)
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $24
+       mulq    $7,     $5,     $2
+       addq    $1,     $22,    $22
+       addq    $0,     $24,    $0
+       cmpult  $0,     $24,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $197
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$197:
+       sll     $0,     32,     $24
+       ldq     $1,     16($18)
+       addq    $2,     $24,    $2
+       bis     $2,     $2,     $7
+       ldq     $4,     8($17)
+       addq    $23,    $7,     $23
+       srl     $1,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $21
+       srl     $0,     32,     $1
+       cmpult  $2,     $24,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $24
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $20
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $201
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$201:
+       sll     $25,    32,     $5
+       ldq     $2,     8($18)
+       addq    $21,    $5,     $21
+       bis     $21,    $21,    $7
+       ldq     $4,     16($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $21,    $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $24,    $24
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $205
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$205:
+       sll     $28,    32,     $25
+       ldq     $2,     0($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     24($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $24,    $24
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $209
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$209:
+       sll     $0,     32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $23,    $7,     $23
+       stq     $23,    24($16)
+       ldq     $4,     32($17)
+       ldq     $5,     0($18)
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $23
+       mulq    $7,     $5,     $2
+       addq    $1,     $24,    $24
+       addq    $28,    $23,    $28
+       cmpult  $28,    $23,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $213
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$213:
+       sll     $28,    32,     $23
+       ldq     $1,     8($18)
+       addq    $2,     $23,    $2
+       bis     $2,     $2,     $7
+       ldq     $4,     24($17)
+       addq    $22,    $7,     $22
+       srl     $1,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $0
+       srl     $28,    32,     $1
+       cmpult  $2,     $23,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $23
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $21
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $217
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$217:
+       sll     $25,    32,     $5
+       ldq     $2,     16($18)
+       addq    $0,     $5,     $0
+       bis     $0,     $0,     $7
+       ldq     $4,     16($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $0,     $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $23,    $23
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $221
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$221:
+       sll     $28,    32,     $25
+       ldq     $2,     24($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     8($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $23,    $23
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $225
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$225:
+       sll     $0,     32,     $25
+       ldq     $2,     32($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     0($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $23,    $23
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $229
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$229:
+       sll     $28,    32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $22,    $7,     $22
+       stq     $22,    32($16)
+       ldq     $4,     0($17)
+       ldq     $5,     40($18)
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $22
+       mulq    $7,     $5,     $2
+       addq    $1,     $23,    $23
+       addq    $0,     $22,    $0
+       cmpult  $0,     $22,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $233
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$233:
+       sll     $0,     32,     $22
+       ldq     $1,     32($18)
+       addq    $2,     $22,    $2
+       bis     $2,     $2,     $7
+       ldq     $4,     8($17)
+       addq    $24,    $7,     $24
+       srl     $1,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $21
+       srl     $0,     32,     $1
+       cmpult  $2,     $22,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $22
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $20
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $237
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$237:
+       sll     $25,    32,     $5
+       ldq     $2,     24($18)
+       addq    $21,    $5,     $21
+       bis     $21,    $21,    $7
+       ldq     $4,     16($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $21,    $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $22,    $22
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $241
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$241:
+       sll     $28,    32,     $25
+       ldq     $2,     16($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     24($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $22,    $22
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $245
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$245:
+       sll     $0,     32,     $25
+       ldq     $2,     8($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     32($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $22,    $22
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $249
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$249:
+       sll     $28,    32,     $25
+       ldq     $2,     0($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     40($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $22,    $22
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $253
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$253:
+       sll     $0,     32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $24,    $7,     $24
+       stq     $24,    40($16)
+       ldq     $4,     48($17)
+       ldq     $5,     0($18)
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $24
+       mulq    $7,     $5,     $2
+       addq    $1,     $22,    $22
+       addq    $28,    $24,    $28
+       cmpult  $28,    $24,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $257
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$257:
+       sll     $28,    32,     $24
+       ldq     $1,     8($18)
+       addq    $2,     $24,    $2
+       bis     $2,     $2,     $7
+       ldq     $4,     40($17)
+       addq    $23,    $7,     $23
+       srl     $1,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $0
+       srl     $28,    32,     $1
+       cmpult  $2,     $24,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $24
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $21
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $261
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$261:
+       sll     $25,    32,     $5
+       ldq     $2,     16($18)
+       addq    $0,     $5,     $0
+       bis     $0,     $0,     $7
+       ldq     $4,     32($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $0,     $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $24,    $24
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $265
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$265:
+       sll     $28,    32,     $25
+       ldq     $2,     24($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     24($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $24,    $24
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $269
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$269:
+       sll     $0,     32,     $25
+       ldq     $2,     32($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     16($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $24,    $24
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $273
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$273:
+       sll     $28,    32,     $25
+       ldq     $2,     40($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     8($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $24,    $24
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $277
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$277:
+       sll     $0,     32,     $25
+       ldq     $2,     48($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     0($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $24,    $24
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $281
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$281:
+       sll     $28,    32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $23,    $7,     $23
+       stq     $23,    48($16)
+       ldq     $4,     0($17)
+       ldq     $5,     56($18)
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $23
+       mulq    $7,     $5,     $2
+       addq    $1,     $24,    $24
+       addq    $0,     $23,    $0
+       cmpult  $0,     $23,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $285
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$285:
+       sll     $0,     32,     $23
+       ldq     $1,     48($18)
+       addq    $2,     $23,    $2
+       bis     $2,     $2,     $7
+       ldq     $4,     8($17)
+       addq    $22,    $7,     $22
+       srl     $1,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $21
+       srl     $0,     32,     $1
+       cmpult  $2,     $23,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $23
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $20
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $289
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$289:
+       sll     $25,    32,     $5
+       ldq     $2,     40($18)
+       addq    $21,    $5,     $21
+       bis     $21,    $21,    $7
+       ldq     $4,     16($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $21,    $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $23,    $23
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $293
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$293:
+       sll     $28,    32,     $25
+       ldq     $2,     32($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     24($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $23,    $23
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $297
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$297:
+       sll     $0,     32,     $25
+       ldq     $2,     24($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     32($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $23,    $23
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $301
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$301:
+       sll     $28,    32,     $25
+       ldq     $2,     16($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     40($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $23,    $23
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $305
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$305:
+       sll     $0,     32,     $25
+       ldq     $2,     8($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     48($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $23,    $23
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $309
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$309:
+       sll     $28,    32,     $25
+       ldq     $2,     0($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     56($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $23,    $23
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $313
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$313:
+       sll     $0,     32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $22,    $7,     $22
+       stq     $22,    56($16)
+       ldq     $4,     56($17)
+       ldq     $5,     8($18)
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $22
+       mulq    $7,     $5,     $2
+       addq    $1,     $23,    $23
+       addq    $28,    $22,    $28
+       cmpult  $28,    $22,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $317
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$317:
+       sll     $28,    32,     $22
+       ldq     $1,     16($18)
+       addq    $2,     $22,    $2
+       bis     $2,     $2,     $7
+       ldq     $4,     48($17)
+       addq    $24,    $7,     $24
+       srl     $1,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $0
+       srl     $28,    32,     $1
+       cmpult  $2,     $22,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $22
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $21
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $321
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$321:
+       sll     $25,    32,     $5
+       ldq     $2,     24($18)
+       addq    $0,     $5,     $0
+       bis     $0,     $0,     $7
+       ldq     $4,     40($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $0,     $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $22,    $22
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $325
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$325:
+       sll     $28,    32,     $25
+       ldq     $2,     32($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     32($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $22,    $22
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $329
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$329:
+       sll     $0,     32,     $25
+       ldq     $2,     40($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     24($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $22,    $22
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $333
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$333:
+       sll     $28,    32,     $25
+       ldq     $2,     48($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     16($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $22,    $22
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $337
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$337:
+       sll     $0,     32,     $25
+       ldq     $2,     56($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     8($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $22,    $22
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $341
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$341:
+       sll     $28,    32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $24,    $7,     $24
+       stq     $24,    64($16)
+       ldq     $4,     16($17)
+       ldq     $5,     56($18)
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $24
+       mulq    $7,     $5,     $2
+       addq    $1,     $22,    $22
+       addq    $0,     $24,    $0
+       cmpult  $0,     $24,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $345
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$345:
+       sll     $0,     32,     $24
+       ldq     $1,     48($18)
+       addq    $2,     $24,    $2
+       bis     $2,     $2,     $7
+       ldq     $4,     24($17)
+       addq    $23,    $7,     $23
+       srl     $1,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $21
+       srl     $0,     32,     $1
+       cmpult  $2,     $24,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $24
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $20
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $349
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$349:
+       sll     $25,    32,     $5
+       ldq     $2,     40($18)
+       addq    $21,    $5,     $21
+       bis     $21,    $21,    $7
+       ldq     $4,     32($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $21,    $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $24,    $24
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $353
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$353:
+       sll     $28,    32,     $25
+       ldq     $2,     32($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     40($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $24,    $24
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $357
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$357:
+       sll     $0,     32,     $25
+       ldq     $2,     24($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     48($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $24,    $24
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $361
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$361:
+       sll     $28,    32,     $25
+       ldq     $2,     16($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     56($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $24,    $24
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $365
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$365:
+       sll     $0,     32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $23,    $7,     $23
+       stq     $23,    72($16)
+       ldq     $4,     56($17)
+       ldq     $5,     24($18)
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $23
+       mulq    $7,     $5,     $2
+       addq    $1,     $24,    $24
+       addq    $28,    $23,    $28
+       cmpult  $28,    $23,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $369
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$369:
+       sll     $28,    32,     $23
+       ldq     $1,     32($18)
+       addq    $2,     $23,    $2
+       bis     $2,     $2,     $7
+       ldq     $4,     48($17)
+       addq    $22,    $7,     $22
+       srl     $1,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $0
+       srl     $28,    32,     $1
+       cmpult  $2,     $23,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $23
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $21
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $373
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$373:
+       sll     $25,    32,     $5
+       ldq     $2,     40($18)
+       addq    $0,     $5,     $0
+       bis     $0,     $0,     $7
+       ldq     $4,     40($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $0,     $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $23,    $23
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $377
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$377:
+       sll     $28,    32,     $25
+       ldq     $2,     48($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     32($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $23,    $23
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $381
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$381:
+       sll     $0,     32,     $25
+       ldq     $2,     56($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     24($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $23,    $23
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $385
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$385:
+       sll     $28,    32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $22,    $7,     $22
+       stq     $22,    80($16)
+       ldq     $4,     32($17)
+       ldq     $5,     56($18)
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $22
+       mulq    $7,     $5,     $2
+       addq    $1,     $23,    $23
+       addq    $0,     $22,    $0
+       cmpult  $0,     $22,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $389
+       sll     $21,    32,     $1
+       addq    $6,     $1,     $6
+$389:
+       sll     $0,     32,     $22
+       ldq     $1,     48($18)
+       addq    $2,     $22,    $2
+       bis     $2,     $2,     $7
+       ldq     $4,     40($17)
+       addq    $24,    $7,     $24
+       srl     $1,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $25
+       zapnot  $1,     15,     $5
+       mulq    $7,     $5,     $21
+       srl     $0,     32,     $1
+       cmpult  $2,     $22,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $22
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $5
+       bis     $31,    1,      $20
+       addq    $25,    $5,     $25
+       cmpult  $25,    $5,     $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $393
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$393:
+       sll     $25,    32,     $5
+       ldq     $2,     40($18)
+       addq    $21,    $5,     $21
+       bis     $21,    $21,    $7
+       ldq     $4,     48($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $25,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $21,    $5,     $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $1,     $22,    $22
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $397
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$397:
+       sll     $28,    32,     $25
+       ldq     $2,     32($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     56($17)
+       addq    $24,    $7,     $24
+       srl     $2,     32,     $8
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $21
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $22,    $22
+       addq    $21,    $25,    $21
+       cmpult  $21,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $401
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$401:
+       sll     $21,    32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $24,    $7,     $24
+       stq     $24,    88($16)
+       ldq     $4,     56($17)
+       ldq     $5,     40($18)
+       cmpult  $24,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $0
+       srl     $21,    32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $23,    $6,     $23
+       cmpult  $23,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $24
+       mulq    $7,     $5,     $5
+       addq    $1,     $22,    $22
+       addq    $0,     $24,    $0
+       cmpult  $0,     $24,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $405
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$405:
+       sll     $0,     32,     $24
+       ldq     $2,     48($18)
+       addq    $5,     $24,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     48($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $24,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $24
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $5
+       addq    $28,    $25,    $28
+       cmpult  $28,    $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $409
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$409:
+       sll     $28,    32,     $25
+       ldq     $2,     56($18)
+       addq    $5,     $25,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     40($17)
+       addq    $23,    $7,     $23
+       srl     $2,     32,     $8
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $25,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $1,     $24,    $24
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $413
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$413:
+       sll     $0,     32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $23,    $7,     $23
+       stq     $23,    96($16)
+       ldq     $4,     48($17)
+       ldq     $5,     56($18)
+       cmpult  $23,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $22,    $6,     $22
+       cmpult  $22,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $23
+       mulq    $7,     $5,     $5
+       addq    $1,     $24,    $24
+       addq    $28,    $23,    $28
+       cmpult  $28,    $23,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $417
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$417:
+       sll     $28,    32,     $23
+       ldq     $2,     48($18)
+       addq    $5,     $23,    $5
+       bis     $5,     $5,     $7
+       ldq     $4,     56($17)
+       addq    $22,    $7,     $22
+       srl     $2,     32,     $8
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       mulq    $8,     $7,     $0
+       srl     $28,    32,     $1
+       addq    $6,     $1,     $6
+       cmpult  $5,     $23,    $1
+       zapnot  $2,     15,     $5
+       addq    $1,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $23
+       srl     $4,     32,     $6
+       mulq    $5,     $6,     $25
+       mulq    $7,     $5,     $2
+       addq    $0,     $25,    $0
+       cmpult  $0,     $25,    $1
+       mulq    $6,     $8,     $6
+       beq     $1,     $421
+       sll     $20,    32,     $1
+       addq    $6,     $1,     $6
+$421:
+       sll     $0,     32,     $25
+       addq    $2,     $25,    $2
+       bis     $2,     $2,     $7
+       addq    $22,    $7,     $22
+       stq     $22,    104($16)
+       ldq     $4,     56($17)
+       ldq     $5,     56($18)
+       cmpult  $22,    $7,     $3
+       zapnot  $4,     15,     $7
+       srl     $5,     32,     $8
+       mulq    $8,     $7,     $28
+       srl     $0,     32,     $1
+       cmpult  $2,     $25,    $2
+       addq    $6,     $1,     $6
+       addq    $2,     $6,     $6
+       addq    $3,     $6,     $6
+       addq    $24,    $6,     $24
+       cmpult  $24,    $6,     $1
+       srl     $4,     32,     $6
+       zapnot  $5,     15,     $5
+       mulq    $5,     $6,     $22
+       mulq    $7,     $5,     $2
+       addq    $1,     $23,    $23
+       addq    $28,    $22,    $28
+       cmpult  $28,    $22,    $1
+       mulq    $6,     $8,     $3
+       beq     $1,     $425
+       sll     $20,    32,     $1
+       addq    $3,     $1,     $3
+$425:
+       sll     $28,    32,     $22
+       srl     $28,    32,     $1
+       addq    $2,     $22,    $2
+       addq    $3,     $1,     $3
+       bis     $2,     $2,     $7
+       addq    $24,    $7,     $24
+       cmpult  $7,     $22,    $1
+       cmpult  $24,    $7,     $2
+       addq    $1,     $3,     $6
+       addq    $2,     $6,     $6
+       stq     $24,    112($16)
+       addq    $23,    $6,     $23
+       stq     $23,    120($16)
+       ret     $31,    ($26),  1
+       .end bn_mul_comba8
+       .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