| .file "bn_mulw.c" |
| gcc2_compiled.: |
| .section ".text" |
| .align 4 |
| .global bn_mul_add_words |
| .type bn_mul_add_words,#function |
| .proc 016 |
| bn_mul_add_words: |
| !#PROLOGUE# 0 |
| save %sp,-112,%sp |
| !#PROLOGUE# 1 |
| mov %i0,%o0 |
| mov %i1,%o2 |
| mov %i2,%g1 |
| mov %i3,%o1 |
| mov 0,%i4 |
| add %o0,12,%g4 |
| add %o2,12,%o7 |
| .LL2: |
| mov %i4,%i3 |
| mov 0,%i2 |
| ld [%o0],%g2 |
| mov %g2,%i1 |
| ld [%o2],%g2 |
| mov 0,%i0 |
| umul %o1,%g2,%g3 |
| rd %y,%g2 |
| addcc %g3,%i1,%g3 |
| addx %g2,%i0,%g2 |
| addcc %g3,%i3,%g3 |
| addx %g2,%i2,%g2 |
| st %g3,[%o0] |
| mov %g2,%i5 |
| mov 0,%i4 |
| addcc %g1,-1,%g1 |
| be .LL3 |
| mov %i5,%i4 |
| mov %i4,%i3 |
| mov 0,%i2 |
| ld [%g4-8],%g2 |
| mov %g2,%i1 |
| ld [%o7-8],%g2 |
| mov 0,%i0 |
| umul %o1,%g2,%g3 |
| rd %y,%g2 |
| addcc %g3,%i1,%g3 |
| addx %g2,%i0,%g2 |
| addcc %g3,%i3,%g3 |
| addx %g2,%i2,%g2 |
| st %g3,[%g4-8] |
| mov %g2,%i5 |
| mov 0,%i4 |
| addcc %g1,-1,%g1 |
| be .LL3 |
| mov %i5,%i4 |
| mov %i4,%i3 |
| mov 0,%i2 |
| ld [%g4-4],%g2 |
| mov %g2,%i1 |
| ld [%o7-4],%g2 |
| mov 0,%i0 |
| umul %o1,%g2,%g3 |
| rd %y,%g2 |
| addcc %g3,%i1,%g3 |
| addx %g2,%i0,%g2 |
| addcc %g3,%i3,%g3 |
| addx %g2,%i2,%g2 |
| st %g3,[%g4-4] |
| mov %g2,%i5 |
| mov 0,%i4 |
| addcc %g1,-1,%g1 |
| be .LL3 |
| mov %i5,%i4 |
| mov %i4,%i3 |
| mov 0,%i2 |
| ld [%g4],%g2 |
| mov %g2,%i1 |
| ld [%o7],%g2 |
| mov 0,%i0 |
| umul %o1,%g2,%g3 |
| rd %y,%g2 |
| addcc %g3,%i1,%g3 |
| addx %g2,%i0,%g2 |
| addcc %g3,%i3,%g3 |
| addx %g2,%i2,%g2 |
| st %g3,[%g4] |
| mov %g2,%i5 |
| mov 0,%i4 |
| addcc %g1,-1,%g1 |
| be .LL3 |
| mov %i5,%i4 |
| add %o7,16,%o7 |
| add %o2,16,%o2 |
| add %g4,16,%g4 |
| b .LL2 |
| add %o0,16,%o0 |
| .LL3: |
| ret |
| restore %g0,%i4,%o0 |
| .LLfe1: |
| .size bn_mul_add_words,.LLfe1-bn_mul_add_words |
| .align 4 |
| .global bn_mul_words |
| .type bn_mul_words,#function |
| .proc 016 |
| bn_mul_words: |
| !#PROLOGUE# 0 |
| save %sp,-112,%sp |
| !#PROLOGUE# 1 |
| mov %i0,%o7 |
| mov %i1,%o0 |
| mov %i2,%i4 |
| mov %i3,%g4 |
| mov 0,%i0 |
| add %o7,12,%g1 |
| add %o0,12,%i5 |
| .LL18: |
| mov %i0,%g3 |
| mov 0,%g2 |
| ld [%o0],%i2 |
| umul %g4,%i2,%i3 |
| rd %y,%i2 |
| addcc %i3,%g3,%i3 |
| addx %i2,%g2,%i2 |
| st %i3,[%o7] |
| mov %i2,%i1 |
| mov 0,%i0 |
| addcc %i4,-1,%i4 |
| be .LL19 |
| mov %i1,%i0 |
| mov %i0,%g3 |
| mov 0,%g2 |
| ld [%i5-8],%i2 |
| umul %g4,%i2,%i3 |
| rd %y,%i2 |
| addcc %i3,%g3,%i3 |
| addx %i2,%g2,%i2 |
| st %i3,[%g1-8] |
| mov %i2,%i1 |
| mov 0,%i0 |
| addcc %i4,-1,%i4 |
| be .LL19 |
| mov %i1,%i0 |
| mov %i0,%g3 |
| mov 0,%g2 |
| ld [%i5-4],%i2 |
| umul %g4,%i2,%i3 |
| rd %y,%i2 |
| addcc %i3,%g3,%i3 |
| addx %i2,%g2,%i2 |
| st %i3,[%g1-4] |
| mov %i2,%i1 |
| mov 0,%i0 |
| addcc %i4,-1,%i4 |
| be .LL19 |
| mov %i1,%i0 |
| mov %i0,%g3 |
| mov 0,%g2 |
| ld [%i5],%i2 |
| umul %g4,%i2,%i3 |
| rd %y,%i2 |
| addcc %i3,%g3,%i3 |
| addx %i2,%g2,%i2 |
| st %i3,[%g1] |
| mov %i2,%i1 |
| mov 0,%i0 |
| addcc %i4,-1,%i4 |
| be .LL19 |
| mov %i1,%i0 |
| add %i5,16,%i5 |
| add %o0,16,%o0 |
| add %g1,16,%g1 |
| b .LL18 |
| add %o7,16,%o7 |
| .LL19: |
| ret |
| restore |
| .LLfe2: |
| .size bn_mul_words,.LLfe2-bn_mul_words |
| .align 4 |
| .global bn_sqr_words |
| .type bn_sqr_words,#function |
| .proc 020 |
| bn_sqr_words: |
| !#PROLOGUE# 0 |
| !#PROLOGUE# 1 |
| mov %o0,%g4 |
| add %g4,28,%o3 |
| add %o1,12,%g1 |
| .LL34: |
| ld [%o1],%o0 |
| addcc %o2,-1,%o2 |
| umul %o0,%o0,%o5 |
| rd %y,%o4 |
| st %o5,[%g4] |
| mov %o4,%g3 |
| mov 0,%g2 |
| be .LL35 |
| st %g3,[%o3-24] |
| ld [%g1-8],%o0 |
| addcc %o2,-1,%o2 |
| umul %o0,%o0,%o5 |
| rd %y,%o4 |
| st %o5,[%o3-20] |
| mov %o4,%g3 |
| mov 0,%g2 |
| be .LL35 |
| st %g3,[%o3-16] |
| ld [%g1-4],%o0 |
| addcc %o2,-1,%o2 |
| umul %o0,%o0,%o5 |
| rd %y,%o4 |
| st %o5,[%o3-12] |
| mov %o4,%g3 |
| mov 0,%g2 |
| be .LL35 |
| st %g3,[%o3-8] |
| ld [%g1],%o0 |
| addcc %o2,-1,%o2 |
| umul %o0,%o0,%o5 |
| rd %y,%o4 |
| st %o5,[%o3-4] |
| mov %o4,%g3 |
| mov 0,%g2 |
| be .LL35 |
| st %g3,[%o3] |
| add %g1,16,%g1 |
| add %o1,16,%o1 |
| add %o3,32,%o3 |
| b .LL34 |
| add %g4,32,%g4 |
| .LL35: |
| retl |
| nop |
| .LLfe3: |
| .size bn_sqr_words,.LLfe3-bn_sqr_words |
| .align 4 |
| .global bn_add_words |
| .type bn_add_words,#function |
| .proc 016 |
| bn_add_words: |
| !#PROLOGUE# 0 |
| save %sp,-112,%sp |
| !#PROLOGUE# 1 |
| mov %i0,%o2 |
| mov %i1,%o3 |
| mov %i2,%o4 |
| mov %i3,%i5 |
| mov 0,%o0 |
| mov 0,%o1 |
| add %o2,12,%o7 |
| add %o4,12,%g4 |
| b .LL42 |
| add %o3,12,%g1 |
| .LL45: |
| add %i5,-1,%i5 |
| mov %i4,%g3 |
| ld [%g4-8],%i4 |
| mov 0,%g2 |
| mov %i4,%i1 |
| mov 0,%i0 |
| addcc %g3,%i1,%g3 |
| addx %g2,%i0,%g2 |
| addcc %o1,%g3,%o1 |
| addx %o0,%g2,%o0 |
| st %o1,[%o7-8] |
| mov %o0,%i3 |
| mov 0,%i2 |
| mov %i2,%o0 |
| mov %i3,%o1 |
| cmp %i5,0 |
| ble .LL43 |
| add %i5,-1,%i5 |
| ld [%g1-4],%i4 |
| mov %i4,%g3 |
| ld [%g4-4],%i4 |
| mov 0,%g2 |
| mov %i4,%i1 |
| mov 0,%i0 |
| addcc %g3,%i1,%g3 |
| addx %g2,%i0,%g2 |
| addcc %o1,%g3,%o1 |
| addx %o0,%g2,%o0 |
| st %o1,[%o7-4] |
| mov %o0,%i3 |
| mov 0,%i2 |
| mov %i2,%o0 |
| mov %i3,%o1 |
| cmp %i5,0 |
| ble .LL43 |
| add %i5,-1,%i5 |
| ld [%g1],%i4 |
| mov %i4,%g3 |
| ld [%g4],%i4 |
| mov 0,%g2 |
| mov %i4,%i1 |
| mov 0,%i0 |
| addcc %g3,%i1,%g3 |
| addx %g2,%i0,%g2 |
| addcc %o1,%g3,%o1 |
| addx %o0,%g2,%o0 |
| st %o1,[%o7] |
| mov %o0,%i3 |
| mov 0,%i2 |
| mov %i2,%o0 |
| mov %i3,%o1 |
| cmp %i5,0 |
| ble .LL43 |
| add %g1,16,%g1 |
| add %o3,16,%o3 |
| add %g4,16,%g4 |
| add %o4,16,%o4 |
| add %o7,16,%o7 |
| add %o2,16,%o2 |
| .LL42: |
| ld [%o3],%i4 |
| add %i5,-1,%i5 |
| mov %i4,%g3 |
| ld [%o4],%i4 |
| mov 0,%g2 |
| mov %i4,%i1 |
| mov 0,%i0 |
| addcc %g3,%i1,%g3 |
| addx %g2,%i0,%g2 |
| addcc %o1,%g3,%o1 |
| addx %o0,%g2,%o0 |
| st %o1,[%o2] |
| mov %o0,%i3 |
| mov 0,%i2 |
| mov %i2,%o0 |
| mov %i3,%o1 |
| cmp %i5,0 |
| bg,a .LL45 |
| ld [%g1-8],%i4 |
| .LL43: |
| ret |
| restore %g0,%o1,%o0 |
| .LLfe4: |
| .size bn_add_words,.LLfe4-bn_add_words |
| .section ".rodata" |
| .align 8 |
| .LLC0: |
| .asciz "Division would overflow (%d)\n" |
| .section ".text" |
| .align 4 |
| .global bn_div64 |
| .type bn_div64,#function |
| .proc 016 |
| bn_div64: |
| !#PROLOGUE# 0 |
| save %sp,-112,%sp |
| !#PROLOGUE# 1 |
| mov 0,%l1 |
| cmp %i2,0 |
| bne .LL51 |
| mov 2,%l0 |
| b .LL68 |
| mov -1,%i0 |
| .LL51: |
| call BN_num_bits_word,0 |
| mov %i2,%o0 |
| mov %o0,%o2 |
| cmp %o2,32 |
| be .LL52 |
| mov 1,%o0 |
| sll %o0,%o2,%o0 |
| cmp %i0,%o0 |
| bleu .LL69 |
| mov 32,%o0 |
| sethi %hi(__iob+32),%o0 |
| or %o0,%lo(__iob+32),%o0 |
| sethi %hi(.LLC0),%o1 |
| call fprintf,0 |
| or %o1,%lo(.LLC0),%o1 |
| call abort,0 |
| nop |
| .LL52: |
| mov 32,%o0 |
| .LL69: |
| cmp %i0,%i2 |
| blu .LL53 |
| sub %o0,%o2,%o2 |
| sub %i0,%i2,%i0 |
| .LL53: |
| cmp %o2,0 |
| be .LL54 |
| sll %i0,%o2,%o1 |
| sll %i2,%o2,%i2 |
| sub %o0,%o2,%o0 |
| srl %i1,%o0,%o0 |
| or %o1,%o0,%i0 |
| sll %i1,%o2,%i1 |
| .LL54: |
| srl %i2,16,%g2 |
| sethi %hi(65535),%o0 |
| or %o0,%lo(65535),%o1 |
| and %i2,%o1,%g3 |
| mov %o0,%g4 |
| sethi %hi(-65536),%o7 |
| mov %o1,%g1 |
| .LL55: |
| srl %i0,16,%o0 |
| cmp %o0,%g2 |
| be .LL59 |
| or %g4,%lo(65535),%o3 |
| wr %g0,%g0,%y |
| nop |
| nop |
| nop |
| udiv %i0,%g2,%o3 |
| .LL59: |
| and %i1,%o7,%o0 |
| srl %o0,16,%o5 |
| smul %o3,%g3,%o4 |
| smul %o3,%g2,%o2 |
| .LL60: |
| sub %i0,%o2,%o1 |
| andcc %o1,%o7,%g0 |
| bne .LL61 |
| sll %o1,16,%o0 |
| add %o0,%o5,%o0 |
| cmp %o4,%o0 |
| bleu .LL61 |
| sub %o4,%g3,%o4 |
| sub %o2,%g2,%o2 |
| b .LL60 |
| add %o3,-1,%o3 |
| .LL61: |
| smul %o3,%g2,%o2 |
| smul %o3,%g3,%o0 |
| srl %o0,16,%o1 |
| sll %o0,16,%o0 |
| and %o0,%o7,%o0 |
| cmp %i1,%o0 |
| bgeu .LL65 |
| add %o2,%o1,%o2 |
| add %o2,1,%o2 |
| .LL65: |
| cmp %i0,%o2 |
| bgeu .LL66 |
| sub %i1,%o0,%i1 |
| add %i0,%i2,%i0 |
| add %o3,-1,%o3 |
| .LL66: |
| addcc %l0,-1,%l0 |
| be .LL56 |
| sub %i0,%o2,%i0 |
| sll %o3,16,%l1 |
| sll %i0,16,%o0 |
| srl %i1,16,%o1 |
| or %o0,%o1,%i0 |
| and %i1,%g1,%o0 |
| b .LL55 |
| sll %o0,16,%i1 |
| .LL56: |
| or %l1,%o3,%i0 |
| .LL68: |
| ret |
| restore |
| .LLfe5: |
| .size bn_div64,.LLfe5-bn_div64 |
| .ident "GCC: (GNU) 2.7.2.3" |