root/sys/crypto/openssl/powerpc64le/ppc.S
/* Do not modify. This file is auto-generated from ppc.pl. */


















































































.globl  bn_sqr_comba4
.type   bn_sqr_comba4,@function
.globl  bn_sqr_comba8
.type   bn_sqr_comba8,@function
.globl  bn_mul_comba4
.type   bn_mul_comba4,@function
.globl  bn_mul_comba8
.type   bn_mul_comba8,@function
.globl  bn_sub_words
.type   bn_sub_words,@function
.globl  bn_add_words
.type   bn_add_words,@function
.globl  bn_div_words
.type   bn_div_words,@function
.globl  bn_sqr_words
.type   bn_sqr_words,@function
.globl  bn_mul_words
.type   bn_mul_words,@function
.globl  bn_mul_add_words
.type   bn_mul_add_words,@function



.machine        "any"
.abiversion     2
.text








.align  4
bn_sqr_comba4:
.localentry     bn_sqr_comba4,0
















        xor     0,0,0



        ld      5,0(4)
        mulld   9,5,5
        mulhdu  10,5,5




        std     9,0(3)

        ld      6,8(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    7,7,7
        adde    8,8,8
        addze   9,0


        addc    10,7,10
        addze   11,8
        addze   9,9

        std     10,8(3)

        mulld   7,6,6
        mulhdu  8,6,6
        addc    11,7,11
        adde    9,8,9
        addze   10,0

        ld      6,16(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    7,7,7
        adde    8,8,8
        addze   10,10

        addc    11,7,11
        adde    9,8,9
        addze   10,10
        std     11,16(3)

        ld      6,24(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    7,7,7
        adde    8,8,8
        addze   11,0

        addc    9,7,9
        adde    10,8,10
        addze   11,11

        ld      5,8(4)
        ld      6,16(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    7,7,7
        adde    8,8,8
        addze   11,11
        addc    9,7,9
        adde    10,8,10
        addze   11,11
        std     9,24(3)

        mulld   7,6,6
        mulhdu  8,6,6
        addc    10,7,10
        adde    11,8,11
        addze   9,0

        ld      6,24(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    7,7,7
        adde    8,8,8
        addze   9,9

        addc    10,7,10
        adde    11,8,11
        addze   9,9
        std     10,32(3)

        ld      5,16(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    7,7,7
        adde    8,8,8
        addze   10,0

        addc    11,7,11
        adde    9,8,9
        addze   10,10
        std     11,40(3)

        mulld   7,6,6
        mulhdu  8,6,6
        addc    9,7,9
        adde    10,8,10

        std     9,48(3)
        std     10,56(3)
        blr     
.long   0
.byte   0,12,0x14,0,0,0,2,0
.long   0
.size   bn_sqr_comba4,.-bn_sqr_comba4








.align  4
bn_sqr_comba8:
.localentry     bn_sqr_comba8,0




















        xor     0,0,0



        ld      5,0(4)
        mulld   9,5,5
        mulhdu  10,5,5
        std     9,0(3)

        ld      6,8(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    10,7,10
        adde    11,8,0
        addze   9,0

        addc    10,7,10
        adde    11,8,11
        addze   9,9

        std     10,8(3)


        mulld   7,6,6
        mulhdu  8,6,6
        addc    11,7,11
        adde    9,8,9
        addze   10,0

        ld      6,16(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    11,7,11
        adde    9,8,9
        addze   10,10

        addc    11,7,11
        adde    9,8,9
        addze   10,10

        std     11,16(3)

        ld      6,24(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    9,7,9
        adde    10,8,10
        addze   11,0

        addc    9,7,9
        adde    10,8,10
        addze   11,11

        ld      5,8(4)
        ld      6,16(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    9,7,9
        adde    10,8,10
        addze   11,11

        addc    9,7,9
        adde    10,8,10
        addze   11,11

        std     9,24(3)

        mulld   7,6,6
        mulhdu  8,6,6

        addc    10,7,10
        adde    11,8,11
        addze   9,0

        ld      6,24(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    10,7,10
        adde    11,8,11
        addze   9,9

        addc    10,7,10
        adde    11,8,11
        addze   9,9

        ld      5,0(4)
        ld      6,32(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    10,7,10
        adde    11,8,11
        addze   9,9

        addc    10,7,10
        adde    11,8,11
        addze   9,9
        std     10,32(3)

        ld      6,40(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    11,7,11
        adde    9,8,9
        addze   10,0

        addc    11,7,11
        adde    9,8,9
        addze   10,10

        ld      5,8(4)
        ld      6,32(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    11,7,11
        adde    9,8,9
        addze   10,10

        addc    11,7,11
        adde    9,8,9
        addze   10,10

        ld      5,16(4)
        ld      6,24(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    11,7,11
        adde    9,8,9
        addze   10,10

        addc    11,7,11
        adde    9,8,9
        addze   10,10
        std     11,40(3)

        mulld   7,6,6
        mulhdu  8,6,6
        addc    9,7,9
        adde    10,8,10
        addze   11,0

        ld      6,32(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    9,7,9
        adde    10,8,10
        addze   11,11

        addc    9,7,9
        adde    10,8,10
        addze   11,11

        ld      5,8(4)
        ld      6,40(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    9,7,9
        adde    10,8,10
        addze   11,11

        addc    9,7,9
        adde    10,8,10
        addze   11,11

        ld      5,0(4)
        ld      6,48(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    9,7,9
        adde    10,8,10
        addze   11,11
        addc    9,7,9
        adde    10,8,10
        addze   11,11
        std     9,48(3)

        ld      6,56(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    10,7,10
        adde    11,8,11
        addze   9,0
        addc    10,7,10
        adde    11,8,11
        addze   9,9

        ld      5,8(4)
        ld      6,48(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    10,7,10
        adde    11,8,11
        addze   9,9
        addc    10,7,10
        adde    11,8,11
        addze   9,9

        ld      5,16(4)
        ld      6,40(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    10,7,10
        adde    11,8,11
        addze   9,9
        addc    10,7,10
        adde    11,8,11
        addze   9,9

        ld      5,24(4)
        ld      6,32(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    10,7,10
        adde    11,8,11
        addze   9,9
        addc    10,7,10
        adde    11,8,11
        addze   9,9
        std     10,56(3)

        mulld   7,6,6
        mulhdu  8,6,6
        addc    11,7,11
        adde    9,8,9
        addze   10,0

        ld      6,40(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    11,7,11
        adde    9,8,9
        addze   10,10
        addc    11,7,11
        adde    9,8,9
        addze   10,10

        ld      5,16(4)
        ld      6,48(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    11,7,11
        adde    9,8,9
        addze   10,10

        addc    11,7,11
        adde    9,8,9
        addze   10,10

        ld      5,8(4)
        ld      6,56(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    11,7,11
        adde    9,8,9
        addze   10,10
        addc    11,7,11
        adde    9,8,9
        addze   10,10
        std     11,64(3)

        ld      5,16(4)
        mulld   7,5,6
        mulhdu  8,5,6

        addc    9,7,9
        adde    10,8,10
        addze   11,0
        addc    9,7,9
        adde    10,8,10
        addze   11,11

        ld      5,24(4)
        ld      6,48(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    9,7,9
        adde    10,8,10
        addze   11,11
        addc    9,7,9
        adde    10,8,10
        addze   11,11

        ld      5,32(4)
        ld      6,40(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    9,7,9
        adde    10,8,10
        addze   11,11
        addc    9,7,9
        adde    10,8,10
        addze   11,11
        std     9,72(3)

        mulld   7,6,6
        mulhdu  8,6,6
        addc    10,7,10
        adde    11,8,11
        addze   9,0

        ld      6,48(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    10,7,10
        adde    11,8,11
        addze   9,9
        addc    10,7,10
        adde    11,8,11
        addze   9,9

        ld      5,24(4)
        ld      6,56(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    10,7,10
        adde    11,8,11
        addze   9,9
        addc    10,7,10
        adde    11,8,11
        addze   9,9
        std     10,80(3)

        ld      5,32(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    11,7,11
        adde    9,8,9
        addze   10,0
        addc    11,7,11
        adde    9,8,9
        addze   10,10

        ld      5,40(4)
        ld      6,48(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    11,7,11
        adde    9,8,9
        addze   10,10
        addc    11,7,11
        adde    9,8,9
        addze   10,10
        std     11,88(3)

        mulld   7,6,6
        mulhdu  8,6,6
        addc    9,7,9
        adde    10,8,10
        addze   11,0

        ld      6,56(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    9,7,9
        adde    10,8,10
        addze   11,11
        addc    9,7,9
        adde    10,8,10
        addze   11,11
        std     9,96(3)


        ld      5,48(4)
        mulld   7,5,6
        mulhdu  8,5,6
        addc    10,7,10
        adde    11,8,11
        addze   9,0
        addc    10,7,10
        adde    11,8,11
        addze   9,9
        std     10,104(3)

        mulld   7,6,6
        mulhdu  8,6,6
        addc    11,7,11
        adde    9,8,9
        std     11,112(3)
        std     9, 120(3)


        blr     
.long   0
.byte   0,12,0x14,0,0,0,2,0
.long   0
.size   bn_sqr_comba8,.-bn_sqr_comba8








.align  4
bn_mul_comba4:
.localentry     bn_mul_comba4,0












        xor     0,0,0

        ld      6,0(4)
        ld      7,0(5)
        mulld   10,6,7
        mulhdu  11,6,7
        std     10,0(3)

        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,8,11
        adde    12,9,0
        addze   10,0

        ld      6, 8(4)
        ld      7, 0(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,8,11
        adde    12,9,12
        addze   10,10
        std     11,8(3)

        ld      6,16(4)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,8,12
        adde    10,9,10
        addze   11,0

        ld      6,8(4)
        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,8,12
        adde    10,9,10
        addze   11,11

        ld      6,0(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,8,12
        adde    10,9,10
        addze   11,11
        std     12,16(3)

        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,8,10
        adde    11,9,11
        addze   12,0

        ld      6,8(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,8,10
        adde    11,9,11
        addze   12,12

        ld      6,16(4)
        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,8,10
        adde    11,9,11
        addze   12,12

        ld      6,24(4)
        ld      7,0(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,8,10
        adde    11,9,11
        addze   12,12
        std     10,24(3)

        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,8,11
        adde    12,9,12
        addze   10,0

        ld      6,16(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,8,11
        adde    12,9,12
        addze   10,10

        ld      6,8(4)
        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,8,11
        adde    12,9,12
        addze   10,10
        std     11,32(3)

        ld      6,16(4)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,8,12
        adde    10,9,10
        addze   11,0

        ld      6,24(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,8,12
        adde    10,9,10
        addze   11,11
        std     12,40(3)

        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,8,10
        adde    11,9,11

        std     10,48(3)
        std     11,56(3)
        blr     
.long   0
.byte   0,12,0x14,0,0,0,3,0
.long   0
.size   bn_mul_comba4,.-bn_mul_comba4








.align  4
bn_mul_comba8:
.localentry     bn_mul_comba8,0












        xor     0,0,0


        ld      6,0(4)
        ld      7,0(5)
        mulld   10,6,7
        mulhdu  11,6,7
        std     10,0(3)

        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        addze   12,9
        addze   10,0

        ld      6,8(4)
        ld      7,0(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10
        std     11,8(3)

        ld      6,16(4)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,0

        ld      6,8(4)
        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,0(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11
        std     12,16(3)

        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,0

        ld      6,8(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12


        ld      6,16(4)
        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,24(4)
        ld      7,0(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12
        std     10,24(3)

        ld      6,32(4)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,0

        ld      6,24(4)
        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,16(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,8(4)
        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,0(4)
        ld      7,32(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10
        std     11,32(3)

        ld      7,40(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,0

        ld      6,8(4)
        ld      7,32(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,16(4)
        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,24(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,32(4)
        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,40(4)
        ld      7,0(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11
        std     12,40(3)

        ld      6,48(4)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,0

        ld      6,40(4)
        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,32(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,24(4)
        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,16(4)
        ld      7,32(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,8(4)
        ld      7,40(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,0(4)
        ld      7,48(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12
        std     10,48(3)

        ld      7,56(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,0

        ld      6,8(4)
        ld      7,48(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,16(4)
        ld      7,40(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,24(4)
        ld      7,32(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,32(4)
        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,40(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,48(4)
        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,56(4)
        ld      7,0(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10
        std     11,56(3)

        ld      7,8(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,0

        ld      6,48(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,40(4)
        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,32(4)
        ld      7,32(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,24(4)
        ld      7,40(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,16(4)
        ld      7,48(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,8(4)
        ld      7,56(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11
        std     12,64(3)

        ld      6,16(4)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,0

        ld      6,24(4)
        ld      7,48(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,32(4)
        ld      7,40(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,40(4)
        ld      7,32(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,48(4)
        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,56(4)
        ld      7,16(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12
        std     10,72(3)

        ld      7,24(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,0

        ld      6,48(4)
        ld      7,32(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,40(4)
        ld      7,40(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,32(4)
        ld      7,48(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10

        ld      6,24(4)
        ld      7,56(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10
        std     11,80(3)

        ld      6,32(4)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,0

        ld      6,40(4)
        ld      7,48(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,48(4)
        ld      7,40(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11

        ld      6,56(4)
        ld      7,32(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        addze   11,11
        std     12,88(3)

        ld      7,40(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,0

        ld      6,48(4)
        ld      7,48(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12

        ld      6,40(4)
        ld      7,56(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    10,10,8
        adde    11,11,9
        addze   12,12
        std     10,96(3)

        ld      6,48(4)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,0

        ld      6,56(4)
        ld      7,48(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    11,11,8
        adde    12,12,9
        addze   10,10
        std     11,104(3)

        ld      7,56(5)
        mulld   8,6,7
        mulhdu  9,6,7
        addc    12,12,8
        adde    10,10,9
        std     12,112(3)
        std     10,120(3)
        blr     
.long   0
.byte   0,12,0x14,0,0,0,3,0
.long   0
.size   bn_mul_comba8,.-bn_mul_comba8








.align  4
bn_sub_words:
.localentry     bn_sub_words,0














        xor     0,0,0



        subfc.  7,0,6


        beq     .Lppcasm_sub_adios
        addi    4,4,-8
        addi    3,3,-8
        addi    5,5,-8
        mtctr   6
.Lppcasm_sub_mainloop:
        ldu     7,8(4)
        ldu     8,8(5)
        subfe   6,8,7


        stdu    6,8(3)
        bdnz    .Lppcasm_sub_mainloop
.Lppcasm_sub_adios:
        subfze  3,0
        andi.   3,3,1
        blr     
.long   0
.byte   0,12,0x14,0,0,0,4,0
.long   0
.size   bn_sub_words,.-bn_sub_words








.align  4
bn_add_words:
.localentry     bn_add_words,0














        xor     0,0,0



        addic.  6,6,0
        beq     .Lppcasm_add_adios
        addi    4,4,-8
        addi    3,3,-8
        addi    5,5,-8
        mtctr   6
.Lppcasm_add_mainloop:
        ldu     7,8(4)
        ldu     8,8(5)
        adde    8,7,8
        stdu    8,8(3)
        bdnz    .Lppcasm_add_mainloop
.Lppcasm_add_adios:
        addze   3,0
        blr     
.long   0
.byte   0,12,0x14,0,0,0,4,0
.long   0
.size   bn_add_words,.-bn_add_words








.align  4
bn_div_words:
.localentry     bn_div_words,0












        cmpldi  0,5,0
        bne     .Lppcasm_div1
        li      3,-1
        blr     
.Lppcasm_div1:
        xor     0,0,0
        li      8,64
        cntlzd. 7,5
        beq     .Lppcasm_div2
        subf    8,7,8
        srd.    9,3,8
        td      16,9,0
.Lppcasm_div2:
        cmpld   0,3,5
        blt     .Lppcasm_div3
        subf    3,5,3
.Lppcasm_div3:
        cmpi    0,0,7,0
        beq     .Lppcasm_div4
        sld     3,3,7
        srd     8,4,8
        sld     5,5,7
        or      3,3,8
        sld     4,4,7
.Lppcasm_div4:
        srdi    9,5,32


        li      6,2
        mtctr   6
.Lppcasm_divouterloop:
        srdi    8,3,32
        srdi    11,4,32

        cmpld   0,8,9
        bne     .Lppcasm_div5

        li      8,-1
        clrldi  8,8,32
        b       .Lppcasm_div6
.Lppcasm_div5:
        divdu   8,3,9
.Lppcasm_div6:
        mulld   12,9,8
        clrldi  10,5,32
        mulld   6,8,10

.Lppcasm_divinnerloop:
        subf    10,12,3
        srdi    7,10,32
        addic.  7,7,0



        sldi    7,10,32
        or      7,7,11
        cmpld   1,6,7
        bne     .Lppcasm_divinnerexit
        ble     1,.Lppcasm_divinnerexit
        addi    8,8,-1
        subf    12,9,12
        clrldi  10,5,32
        subf    6,10,6
        b       .Lppcasm_divinnerloop
.Lppcasm_divinnerexit:
        srdi    10,6,32
        sldi    11,6,32
        cmpld   1,4,11
        add     12,12,10
        bge     1,.Lppcasm_div7
        addi    12,12,1
.Lppcasm_div7:
        subf    11,11,4
        cmpld   1,3,12
        bge     1,.Lppcasm_div8
        addi    8,8,-1
        add     3,5,3
.Lppcasm_div8:
        subf    12,12,3
        sldi    4,11,32



        insrdi  11,12,32,32
        rotldi  3,11,32
        bdz     .Lppcasm_div9
        sldi    0,8,32
        b       .Lppcasm_divouterloop
.Lppcasm_div9:
        or      3,8,0
        blr     
.long   0
.byte   0,12,0x14,0,0,0,3,0
.long   0
.size   bn_div_words,.-bn_div_words







.align  4
bn_sqr_words:
.localentry     bn_sqr_words,0















        addic.  5,5,0
        beq     .Lppcasm_sqr_adios
        addi    4,4,-8
        addi    3,3,-8
        mtctr   5
.Lppcasm_sqr_mainloop:

        ldu     6,8(4)
        mulld   7,6,6
        mulhdu  8,6,6
        stdu    7,8(3)
        stdu    8,8(3)
        bdnz    .Lppcasm_sqr_mainloop
.Lppcasm_sqr_adios:
        blr     
.long   0
.byte   0,12,0x14,0,0,0,3,0
.long   0
.size   bn_sqr_words,.-bn_sqr_words








.align  4
bn_mul_words:
.localentry     bn_mul_words,0








        xor     0,0,0
        xor     12,12,12
        rlwinm. 7,5,30,2,31
        beq     .Lppcasm_mw_REM
        mtctr   7
.Lppcasm_mw_LOOP:

        ld      8,0(4)
        mulld   9,6,8
        mulhdu  10,6,8
        addc    9,9,12




        std     9,0(3)

        ld      8,8(4)
        mulld   11,6,8
        mulhdu  12,6,8
        adde    11,11,10

        std     11,8(3)

        ld      8,16(4)
        mulld   9,6,8
        mulhdu  10,6,8
        adde    9,9,12

        std     9,16(3)

        ld      8,24(4)
        mulld   11,6,8
        mulhdu  12,6,8
        adde    11,11,10
        addze   12,12

        std     11,24(3)

        addi    3,3,32
        addi    4,4,32
        bdnz    .Lppcasm_mw_LOOP

.Lppcasm_mw_REM:
        andi.   5,5,0x3
        beq     .Lppcasm_mw_OVER

        ld      8,0(4)
        mulld   9,6,8
        mulhdu  10,6,8
        addc    9,9,12
        addze   10,10
        std     9,0(3)
        addi    12,10,0

        addi    5,5,-1
        cmpli   0,0,5,0
        beq     .Lppcasm_mw_OVER



        ld      8,8(4)
        mulld   9,6,8
        mulhdu  10,6,8
        addc    9,9,12
        addze   10,10
        std     9,8(3)
        addi    12,10,0

        addi    5,5,-1
        cmpli   0,0,5,0
        beq     .Lppcasm_mw_OVER


        ld      8,16(4)
        mulld   9,6,8
        mulhdu  10,6,8
        addc    9,9,12
        addze   10,10
        std     9,16(3)
        addi    12,10,0

.Lppcasm_mw_OVER:
        addi    3,12,0
        blr     
.long   0
.byte   0,12,0x14,0,0,0,4,0
.long   0
.size   bn_mul_words,.-bn_mul_words








.align  4
bn_mul_add_words:
.localentry     bn_mul_add_words,0











        xor     0,0,0
        xor     12,12,12
        rlwinm. 7,5,30,2,31
        beq     .Lppcasm_maw_leftover
        mtctr   7
.Lppcasm_maw_mainloop:

        ld      8,0(4)
        ld      11,0(3)
        mulld   9,6,8
        mulhdu  10,6,8
        addc    9,9,12
        addze   10,10
        addc    9,9,11






        std     9,0(3)


        ld      8,8(4)
        ld      9,8(3)
        mulld   11,6,8
        mulhdu  12,6,8
        adde    11,11,10
        addze   12,12
        addc    11,11,9

        std     11,8(3)


        ld      8,16(4)
        mulld   9,6,8
        ld      11,16(3)
        mulhdu  10,6,8
        adde    9,9,12
        addze   10,10
        addc    9,9,11

        std     9,16(3)


        ld      8,24(4)
        mulld   11,6,8
        ld      9,24(3)
        mulhdu  12,6,8
        adde    11,11,10
        addze   12,12
        addc    11,11,9
        addze   12,12
        std     11,24(3)
        addi    3,3,32
        addi    4,4,32
        bdnz    .Lppcasm_maw_mainloop

.Lppcasm_maw_leftover:
        andi.   5,5,0x3
        beq     .Lppcasm_maw_adios
        addi    3,3,-8
        addi    4,4,-8

        mtctr   5
        ldu     8,8(4)
        mulld   9,6,8
        mulhdu  10,6,8
        ldu     11,8(3)
        addc    9,9,11
        addze   10,10
        addc    9,9,12
        addze   12,10
        std     9,0(3)

        bdz     .Lppcasm_maw_adios

        ldu     8,8(4)
        mulld   9,6,8
        mulhdu  10,6,8
        ldu     11,8(3)
        addc    9,9,11
        addze   10,10
        addc    9,9,12
        addze   12,10
        std     9,0(3)

        bdz     .Lppcasm_maw_adios

        ldu     8,8(4)
        mulld   9,6,8
        mulhdu  10,6,8
        ldu     11,8(3)
        addc    9,9,11
        addze   10,10
        addc    9,9,12
        addze   12,10
        std     9,0(3)

.Lppcasm_maw_adios:
        addi    3,12,0
        blr     
.long   0
.byte   0,12,0x14,0,0,0,4,0
.long   0
.size   bn_mul_add_words,.-bn_mul_add_words
.align  4