Albert Max Lai <[EMAIL PROTECTED]>:
> On Fri, 26 Mar 1999 [EMAIL PROTECTED] wrote:
>> [...]
> I've been having the same problems under sparc as you have. I've moved
> down to SSLeay-0.8.1b (since I can get it to compile), but would like to
> use openssl. I haven't gotten any responses as to why this is happening,
> or how fo fix this. If anyone has information on how I would do this, I
> would be happy to hear about it.
>
>> Undefined first referenced
>> symbol in file
>> bn_mul_comba4 ../libcrypto.a(bn_mul.o)
>> bn_mul_comba8 ../libcrypto.a(bn_mul.o)
>> bn_sqr_comba4 ../libcrypto.a(bn_sqr.o)
>> bn_sqr_comba8 ../libcrypto.a(bn_sqr.o)
>> bn_sub_words ../libcrypto.a(bn_mul.o)
>> bn_div_words ../libcrypto.a(bn_word.o)
>> ld: fatal: Symbol referencing errors. No output written to openssl
>>
>> Either asm/sparc.s needs to be fixed, or Configure needs to have all
>> references to it removed.
This problem does not occur if OpenSSL is configured for GCC
("./Configure solaris-sparc-gcc"), which explains why it wasn't
noticed by everyone. The file openssl-0.9.2b/crypto/bn/asm reveals
the cause of your problems:
All assember in this directory are just version of the file
crypto/bn/bn_mulw.c.
Quite a few of these files are just the assember output from gcc since on
quite a few machines they are 2 times faster than the system compiler.
sparc.s is one of those gcc-produced files (which is also why
solaris-sparc-gcc does not use it); but crypto/bn/bn_mulw.c is just an
old file (now deleted) now superseded by bn_asm.c. bn_asm.c has
additional functions that are missing in the old sparc.s. If you
want a gcc-compiled version instead of the cc-compiled version that
no_asm produces, but don't want to install gcc yourself, try the
attached file (and please report if it works for you).
What I don't understand though is the redifinition of BN_ASM in
openssl-0.9.2b/crypto/bn/Makefile:
BN_ASM= bn_asm.o
# or use
#BN_ASM= bn86-elf.o
The real definition is in openssl-0.9.2b/Makefile.ssl:
# Set BN_ASM to bn_asm.o if you want to use the C version
BN_ASM= asm/sparc.o
#BN_ASM= bn_asm.o
#BN_ASM= asm/bn86-elf.o # elf, linux-elf
#BN_ASM= asm/bn86-sol.o # solaris
#BN_ASM= asm/bn86-out.o # a.out, FreeBSD
#BN_ASM= asm/bn86bsdi.o # bsdi
#BN_ASM= asm/alpha.o # DEC Alpha
#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC
#BN_ASM= asm/r3000.o # SGI MIPS cpu
#BN_ASM= asm/sparc.o # Sun solaris/SunOS
#BN_ASM= asm/bn-win32.o # Windows 95/NT
#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS
#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1
What's this redefinition about, and why does the make procedure still
try to cope with asm/sparc.s? Or is it only
openssl-0.9.2b/shlib/solaris.sh that causes trouble (in that case I
wonder when any assembler version are used for libcrypto.a at all --
will the Configure script ever touch openssl-0.9.2b/crypto/bn/Makefile)?
.file "bn_asm.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,%o1
mov %i2,%g1
mov 0,%g2
cmp %g1,%g2
ble .LL4
mov %i3,%o2
add %o0,12,%g4
add %o1,12,%o7
.LL3:
ld [%o0],%i3
mov 0,%i2
mov %g2,%i1
mov %i2,%i0
ld [%o1],%g2
umul %o2,%g2,%g3
rd %y,%g2
addcc %g3,%i3,%g3
addx %g2,%i2,%g2
addcc %g3,%i1,%g3
addx %g2,%i0,%g2
st %g3,[%o0]
mov %g2,%i5
mov %i2,%i4
addcc %g1,-1,%g1
be .LL4
mov %i5,%g2
ld [%g4-8],%i3
mov 0,%i2
mov %i5,%i1
mov %i2,%i0
ld [%o7-8],%g2
umul %o2,%g2,%g3
rd %y,%g2
addcc %g3,%i3,%g3
addx %g2,%i2,%g2
addcc %g3,%i1,%g3
addx %g2,%i0,%g2
st %g3,[%g4-8]
mov %g2,%i5
mov %i2,%i4
addcc %g1,-1,%g1
be .LL4
mov %i5,%g2
ld [%g4-4],%i3
mov 0,%i2
mov %i5,%i1
mov %i2,%i0
ld [%o7-4],%g2
umul %o2,%g2,%g3
rd %y,%g2
addcc %g3,%i3,%g3
addx %g2,%i2,%g2
addcc %g3,%i1,%g3
addx %g2,%i0,%g2
st %g3,[%g4-4]
mov %g2,%i5
mov %i2,%i4
addcc %g1,-1,%g1
be .LL4
mov %i5,%g2
ld [%g4],%i3
mov 0,%i2
mov %i5,%i1
mov %i2,%i0
ld [%o7],%g2
umul %o2,%g2,%g3
rd %y,%g2
addcc %g3,%i3,%g3
addx %g2,%i2,%g2
addcc %g3,%i1,%g3
addx %g2,%i0,%g2
st %g3,[%g4]
mov %g2,%g3
mov %i2,%g2
addcc %g1,-1,%g1
be .LL4
mov %g3,%g2
add %o7,16,%o7
add %o1,16,%o1
add %g4,16,%g4
b .LL3
add %o0,16,%o0
.LL4:
ret
restore %g0,%g2,%o0
.LLfe1:
.size bn_mul_add_words,.LLfe1-bn_mul_add_words
.section ".rodata"
.align 8
.LLC0:
.asciz "Division would overflow (%d)\n"
.section ".text"
.align 4
.global bn_div_words
.type bn_div_words,#function
.proc 016
bn_div_words:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov 0,%l1
cmp %i2,%l1
bne .LL49
mov 2,%l0
b .LL66
mov -1,%i0
.LL49:
call BN_num_bits_word,0
mov %i2,%o0
mov %o0,%o2
cmp %o2,32
be .LL50
mov 1,%o0
sll %o0,%o2,%o0
cmp %i0,%o0
bleu .LL67
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
.LL50:
mov 32,%o0
.LL67:
cmp %i0,%i2
blu .LL51
sub %o0,%o2,%o2
sub %i0,%i2,%i0
.LL51:
cmp %o2,0
be .LL52
sll %i0,%o2,%o1
sll %i2,%o2,%i2
sub %o0,%o2,%o0
srl %i1,%o0,%o0
or %o1,%o0,%i0
sll %i1,%o2,%i1
.LL52:
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
.LL53:
srl %i0,16,%o0
cmp %o0,%g2
be .LL57
or %g4,%lo(65535),%o3
wr %g0,%g0,%y
nop
nop
nop
udiv %i0,%g2,%o3
.LL57:
and %i1,%o7,%o0
srl %o0,16,%o5
smul %o3,%g3,%o4
smul %o3,%g2,%o2
.LL58:
sub %i0,%o2,%o1
andcc %o1,%o7,%g0
bne .LL59
sll %o1,16,%o0
add %o0,%o5,%o0
cmp %o4,%o0
bleu .LL59
sub %o4,%g3,%o4
sub %o2,%g2,%o2
b .LL58
add %o3,-1,%o3
.LL59:
smul %o3,%g2,%o2
smul %o3,%g3,%o0
srl %o0,16,%o1
sll %o0,16,%o0
and %o0,%o7,%o0
cmp %i1,%o0
bgeu .LL63
add %o2,%o1,%o2
add %o2,1,%o2
.LL63:
cmp %i0,%o2
bgeu .LL64
sub %i1,%o0,%i1
add %i0,%i2,%i0
add %o3,-1,%o3
.LL64:
addcc %l0,-1,%l0
be .LL54
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 .LL53
sll %o0,16,%i1
.LL54:
or %l1,%o3,%i0
.LL66:
ret
restore
.LLfe2:
.size bn_div_words,.LLfe2-bn_div_words
.align 4
.global bn_mul_comba8
.type bn_mul_comba8,#function
.proc 020
bn_mul_comba8:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov %i0,%o7
mov %i1,%g4
ld [%g4],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i4,%i1
mov 0,%i0
st %i5,[%o7]
mov %i0,%g1
ld [%g4],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL119
mov %g3,%g2
add %g2,1,%g2
.LL119:
mov %g2,%i0
ld [%g4+4],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL121
mov %g3,%g2
add %g2,1,%g2
.LL121:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL122
add %g1,1,%g1
.LL122:
st %i1,[%o7+4]
mov 0,%i1
ld [%g4+8],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i1,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL123
mov %g3,%g2
add %g2,1,%g2
.LL123:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL124
mov 1,%i1
.LL124:
ld [%g4+4],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL125
mov %g3,%g2
add %g2,1,%g2
.LL125:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL126
add %i1,1,%i1
.LL126:
ld [%g4],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL127
mov %g3,%g2
add %g2,1,%g2
.LL127:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL128
add %i1,1,%i1
.LL128:
st %i0,[%o7+8]
mov 0,%i0
ld [%g4],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL129
mov %g3,%g2
add %g2,1,%g2
.LL129:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL130
mov 1,%i0
.LL130:
ld [%g4+4],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL131
mov %g3,%g2
add %g2,1,%g2
.LL131:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL132
add %i0,1,%i0
.LL132:
ld [%g4+8],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL133
mov %g3,%g2
add %g2,1,%g2
.LL133:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL134
add %i0,1,%i0
.LL134:
ld [%g4+12],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL135
mov %g3,%g2
add %g2,1,%g2
.LL135:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL136
add %i0,1,%i0
.LL136:
st %g1,[%o7+12]
mov 0,%g1
ld [%g4+16],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %g1,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL137
mov %g3,%g2
add %g2,1,%g2
.LL137:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL138
mov 1,%g1
.LL138:
ld [%g4+12],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL139
mov %g3,%g2
add %g2,1,%g2
.LL139:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL140
add %g1,1,%g1
.LL140:
ld [%g4+8],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL141
mov %g3,%g2
add %g2,1,%g2
.LL141:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL142
add %g1,1,%g1
.LL142:
ld [%g4+4],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL143
mov %g3,%g2
add %g2,1,%g2
.LL143:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL144
add %g1,1,%g1
.LL144:
ld [%g4],%g3
ld [%i2+16],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL145
mov %g3,%g2
add %g2,1,%g2
.LL145:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL146
add %g1,1,%g1
.LL146:
st %i1,[%o7+16]
mov 0,%i1
ld [%g4],%g3
ld [%i2+20],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i1,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL147
mov %g3,%g2
add %g2,1,%g2
.LL147:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL148
mov 1,%i1
.LL148:
ld [%g4+4],%g3
ld [%i2+16],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL149
mov %g3,%g2
add %g2,1,%g2
.LL149:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL150
add %i1,1,%i1
.LL150:
ld [%g4+8],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL151
mov %g3,%g2
add %g2,1,%g2
.LL151:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL152
add %i1,1,%i1
.LL152:
ld [%g4+12],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL153
mov %g3,%g2
add %g2,1,%g2
.LL153:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL154
add %i1,1,%i1
.LL154:
ld [%g4+16],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL155
mov %g3,%g2
add %g2,1,%g2
.LL155:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL156
add %i1,1,%i1
.LL156:
ld [%g4+20],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL157
mov %g3,%g2
add %g2,1,%g2
.LL157:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL158
add %i1,1,%i1
.LL158:
st %i0,[%o7+20]
mov 0,%i0
ld [%g4+24],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL159
mov %g3,%g2
add %g2,1,%g2
.LL159:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL160
mov 1,%i0
.LL160:
ld [%g4+20],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL161
mov %g3,%g2
add %g2,1,%g2
.LL161:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL162
add %i0,1,%i0
.LL162:
ld [%g4+16],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL163
mov %g3,%g2
add %g2,1,%g2
.LL163:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL164
add %i0,1,%i0
.LL164:
ld [%g4+12],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL165
mov %g3,%g2
add %g2,1,%g2
.LL165:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL166
add %i0,1,%i0
.LL166:
ld [%g4+8],%g3
ld [%i2+16],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL167
mov %g3,%g2
add %g2,1,%g2
.LL167:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL168
add %i0,1,%i0
.LL168:
ld [%g4+4],%g3
ld [%i2+20],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL169
mov %g3,%g2
add %g2,1,%g2
.LL169:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL170
add %i0,1,%i0
.LL170:
ld [%g4],%g3
ld [%i2+24],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL171
mov %g3,%g2
add %g2,1,%g2
.LL171:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL172
add %i0,1,%i0
.LL172:
st %g1,[%o7+24]
mov 0,%g1
ld [%g4],%g3
ld [%i2+28],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %g1,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL173
mov %g3,%g2
add %g2,1,%g2
.LL173:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL174
mov 1,%g1
.LL174:
ld [%g4+4],%g3
ld [%i2+24],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL175
mov %g3,%g2
add %g2,1,%g2
.LL175:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL176
add %g1,1,%g1
.LL176:
ld [%g4+8],%g3
ld [%i2+20],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL177
mov %g3,%g2
add %g2,1,%g2
.LL177:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL178
add %g1,1,%g1
.LL178:
ld [%g4+12],%g3
ld [%i2+16],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL179
mov %g3,%g2
add %g2,1,%g2
.LL179:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL180
add %g1,1,%g1
.LL180:
ld [%g4+16],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL181
mov %g3,%g2
add %g2,1,%g2
.LL181:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL182
add %g1,1,%g1
.LL182:
ld [%g4+20],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL183
mov %g3,%g2
add %g2,1,%g2
.LL183:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL184
add %g1,1,%g1
.LL184:
ld [%g4+24],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL185
mov %g3,%g2
add %g2,1,%g2
.LL185:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL186
add %g1,1,%g1
.LL186:
ld [%g4+28],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL187
mov %g3,%g2
add %g2,1,%g2
.LL187:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL188
add %g1,1,%g1
.LL188:
st %i1,[%o7+28]
mov 0,%i1
ld [%g4+28],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i1,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL189
mov %g3,%g2
add %g2,1,%g2
.LL189:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL190
mov 1,%i1
.LL190:
ld [%g4+24],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL191
mov %g3,%g2
add %g2,1,%g2
.LL191:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL192
add %i1,1,%i1
.LL192:
ld [%g4+20],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL193
mov %g3,%g2
add %g2,1,%g2
.LL193:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL194
add %i1,1,%i1
.LL194:
ld [%g4+16],%g3
ld [%i2+16],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL195
mov %g3,%g2
add %g2,1,%g2
.LL195:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL196
add %i1,1,%i1
.LL196:
ld [%g4+12],%g3
ld [%i2+20],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL197
mov %g3,%g2
add %g2,1,%g2
.LL197:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL198
add %i1,1,%i1
.LL198:
ld [%g4+8],%g3
ld [%i2+24],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL199
mov %g3,%g2
add %g2,1,%g2
.LL199:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL200
add %i1,1,%i1
.LL200:
ld [%g4+4],%g3
ld [%i2+28],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL201
mov %g3,%g2
add %g2,1,%g2
.LL201:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL202
add %i1,1,%i1
.LL202:
st %i0,[%o7+32]
mov 0,%i0
ld [%g4+8],%g3
ld [%i2+28],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL203
mov %g3,%g2
add %g2,1,%g2
.LL203:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL204
mov 1,%i0
.LL204:
ld [%g4+12],%g3
ld [%i2+24],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL205
mov %g3,%g2
add %g2,1,%g2
.LL205:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL206
add %i0,1,%i0
.LL206:
ld [%g4+16],%g3
ld [%i2+20],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL207
mov %g3,%g2
add %g2,1,%g2
.LL207:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL208
add %i0,1,%i0
.LL208:
ld [%g4+20],%g3
ld [%i2+16],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL209
mov %g3,%g2
add %g2,1,%g2
.LL209:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL210
add %i0,1,%i0
.LL210:
ld [%g4+24],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL211
mov %g3,%g2
add %g2,1,%g2
.LL211:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL212
add %i0,1,%i0
.LL212:
ld [%g4+28],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL213
mov %g3,%g2
add %g2,1,%g2
.LL213:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL214
add %i0,1,%i0
.LL214:
st %g1,[%o7+36]
mov 0,%g1
ld [%g4+28],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %g1,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL215
mov %g3,%g2
add %g2,1,%g2
.LL215:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL216
mov 1,%g1
.LL216:
ld [%g4+24],%g3
ld [%i2+16],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL217
mov %g3,%g2
add %g2,1,%g2
.LL217:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL218
add %g1,1,%g1
.LL218:
ld [%g4+20],%g3
ld [%i2+20],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL219
mov %g3,%g2
add %g2,1,%g2
.LL219:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL220
add %g1,1,%g1
.LL220:
ld [%g4+16],%g3
ld [%i2+24],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL221
mov %g3,%g2
add %g2,1,%g2
.LL221:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL222
add %g1,1,%g1
.LL222:
ld [%g4+12],%g3
ld [%i2+28],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL223
mov %g3,%g2
add %g2,1,%g2
.LL223:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL224
add %g1,1,%g1
.LL224:
st %i1,[%o7+40]
mov 0,%i1
ld [%g4+16],%g3
ld [%i2+28],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i1,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL225
mov %g3,%g2
add %g2,1,%g2
.LL225:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL226
mov 1,%i1
.LL226:
ld [%g4+20],%g3
ld [%i2+24],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL227
mov %g3,%g2
add %g2,1,%g2
.LL227:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL228
add %i1,1,%i1
.LL228:
ld [%g4+24],%g3
ld [%i2+20],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL229
mov %g3,%g2
add %g2,1,%g2
.LL229:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL230
add %i1,1,%i1
.LL230:
ld [%g4+28],%g3
ld [%i2+16],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL231
mov %g3,%g2
add %g2,1,%g2
.LL231:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL232
add %i1,1,%i1
.LL232:
st %i0,[%o7+44]
mov 0,%i0
ld [%g4+28],%g3
ld [%i2+20],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL233
mov %g3,%g2
add %g2,1,%g2
.LL233:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL234
mov 1,%i0
.LL234:
ld [%g4+24],%g3
ld [%i2+24],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL235
mov %g3,%g2
add %g2,1,%g2
.LL235:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL236
add %i0,1,%i0
.LL236:
ld [%g4+20],%g3
ld [%i2+28],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL237
mov %g3,%g2
add %g2,1,%g2
.LL237:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL238
add %i0,1,%i0
.LL238:
st %g1,[%o7+48]
mov 0,%g1
ld [%g4+24],%g3
ld [%i2+28],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %g1,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL239
mov %g3,%g2
add %g2,1,%g2
.LL239:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL240
mov 1,%g1
.LL240:
ld [%g4+28],%g3
ld [%i2+24],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL241
mov %g3,%g2
add %g2,1,%g2
.LL241:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL242
add %g1,1,%g1
.LL242:
st %i1,[%o7+52]
ld [%g4+28],%g3
ld [%i2+28],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL243
mov %g3,%g2
add %g2,1,%g2
.LL243:
add %g1,%g2,%g1
st %i0,[%o7+56]
st %g1,[%o7+60]
ret
restore
.LLfe3:
.size bn_mul_comba8,.LLfe3-bn_mul_comba8
.align 4
.global bn_mul_comba4
.type bn_mul_comba4,#function
.proc 020
bn_mul_comba4:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov %i0,%o7
mov %i1,%g4
ld [%g4],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i4,%i1
mov 0,%i0
st %i5,[%o7]
mov %i0,%g1
ld [%g4],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL248
mov %g3,%g2
add %g2,1,%g2
.LL248:
mov %g2,%i0
ld [%g4+4],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL250
mov %g3,%g2
add %g2,1,%g2
.LL250:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL251
add %g1,1,%g1
.LL251:
st %i1,[%o7+4]
mov 0,%i1
ld [%g4+8],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i1,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL252
mov %g3,%g2
add %g2,1,%g2
.LL252:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL253
mov 1,%i1
.LL253:
ld [%g4+4],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL254
mov %g3,%g2
add %g2,1,%g2
.LL254:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL255
add %i1,1,%i1
.LL255:
ld [%g4],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL256
mov %g3,%g2
add %g2,1,%g2
.LL256:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL257
add %i1,1,%i1
.LL257:
st %i0,[%o7+8]
mov 0,%i0
ld [%g4],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL258
mov %g3,%g2
add %g2,1,%g2
.LL258:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL259
mov 1,%i0
.LL259:
ld [%g4+4],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL260
mov %g3,%g2
add %g2,1,%g2
.LL260:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL261
add %i0,1,%i0
.LL261:
ld [%g4+8],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL262
mov %g3,%g2
add %g2,1,%g2
.LL262:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL263
add %i0,1,%i0
.LL263:
ld [%g4+12],%g3
ld [%i2],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL264
mov %g3,%g2
add %g2,1,%g2
.LL264:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL265
add %i0,1,%i0
.LL265:
st %g1,[%o7+12]
mov 0,%g1
ld [%g4+12],%g3
ld [%i2+4],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %g1,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL266
mov %g3,%g2
add %g2,1,%g2
.LL266:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL267
mov 1,%g1
.LL267:
ld [%g4+8],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL268
mov %g3,%g2
add %g2,1,%g2
.LL268:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL269
add %g1,1,%g1
.LL269:
ld [%g4+4],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i1,%i3,%i1
cmp %i1,%i3
bgeu .LL270
mov %g3,%g2
add %g2,1,%g2
.LL270:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL271
add %g1,1,%g1
.LL271:
st %i1,[%o7+16]
mov 0,%i1
ld [%g4+8],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov %i1,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL272
mov %g3,%g2
add %g2,1,%g2
.LL272:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL273
mov 1,%i1
.LL273:
ld [%g4+12],%g3
ld [%i2+8],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %i0,%i3,%i0
cmp %i0,%i3
bgeu .LL274
mov %g3,%g2
add %g2,1,%g2
.LL274:
add %g1,%g2,%g1
cmp %g1,%g2
blu,a .LL275
add %i1,1,%i1
.LL275:
st %i0,[%o7+20]
ld [%g4+12],%g3
ld [%i2+12],%g2
umul %g3,%g2,%i5
rd %y,%i4
mov %i5,%i3
mov %i4,%g3
mov 0,%g2
add %g1,%i3,%g1
cmp %g1,%i3
bgeu .LL276
mov %g3,%g2
add %g2,1,%g2
.LL276:
add %i1,%g2,%i1
st %g1,[%o7+24]
st %i1,[%o7+28]
ret
restore
.LLfe4:
.size bn_mul_comba4,.LLfe4-bn_mul_comba4
.align 4
.global bn_sqr_comba8
.type bn_sqr_comba8,#function
.proc 020
bn_sqr_comba8:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov %i0,%o0
mov %i1,%o7
mov 0,%i1
ld [%o7],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i2,%g3
mov %i1,%g2
mov %g3,%i0
st %i3,[%o0]
ld [%o7+4],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL282
mov %i1,%g4
bne .LL407
mov %i5,%g1
cmp %i3,%i5
bleu .LL408
mov %i4,%g3
.LL282:
add %g4,1,%g4
mov %i5,%g1
.LL407:
mov %i4,%g3
.LL408:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL283
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL283
add %g4,1,%g4
.LL283:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL284
add %g4,1,%g4
.LL284:
st %i0,[%o0+4]
mov 0,%i0
ld [%o7+4],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov %i0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL285
mov %g3,%g2
add %g2,1,%g2
.LL285:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL286
mov 1,%i0
.LL286:
ld [%o7+8],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL287
add %i0,1,%i0
bne .LL409
mov %i5,%g1
cmp %i3,%i5
bleu .LL410
mov %i4,%g3
add %i0,1,%i0
.LL287:
mov %i5,%g1
.LL409:
mov %i4,%g3
.LL410:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL289
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL289
add %i0,1,%i0
.LL289:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL290
add %i0,1,%i0
.LL290:
st %i1,[%o0+8]
ld [%o7+12],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL292
mov 0,%i1
bne .LL411
mov %i5,%g1
cmp %i3,%i5
bleu .LL412
mov %i4,%g3
.LL292:
add %i1,1,%i1
mov %i5,%g1
.LL411:
mov %i4,%g3
.LL412:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL293
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL293
add %i1,1,%i1
.LL293:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL294
add %i1,1,%i1
.LL294:
ld [%o7+8],%g3
ld [%o7+4],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL295
add %i1,1,%i1
bne .LL413
mov %i5,%g1
cmp %i3,%i5
bleu .LL414
mov %i4,%g3
add %i1,1,%i1
.LL295:
mov %i5,%g1
.LL413:
mov %i4,%g3
.LL414:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL297
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL297
add %i1,1,%i1
.LL297:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL298
add %i1,1,%i1
.LL298:
st %g4,[%o0+12]
mov 0,%g4
ld [%o7+8],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov %g4,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL299
mov %g3,%g2
add %g2,1,%g2
.LL299:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL300
mov 1,%g4
.LL300:
ld [%o7+12],%g3
ld [%o7+4],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL301
add %g4,1,%g4
bne .LL415
mov %i5,%g1
cmp %i3,%i5
bleu .LL416
mov %i4,%g3
add %g4,1,%g4
.LL301:
mov %i5,%g1
.LL415:
mov %i4,%g3
.LL416:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL303
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL303
add %g4,1,%g4
.LL303:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL304
add %g4,1,%g4
.LL304:
ld [%o7+16],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL305
add %g4,1,%g4
bne .LL417
mov %i5,%g1
cmp %i3,%i5
bleu .LL418
mov %i4,%g3
add %g4,1,%g4
.LL305:
mov %i5,%g1
.LL417:
mov %i4,%g3
.LL418:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL307
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL307
add %g4,1,%g4
.LL307:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL308
add %g4,1,%g4
.LL308:
st %i0,[%o0+16]
ld [%o7+20],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL310
mov 0,%i0
bne .LL419
mov %i5,%g1
cmp %i3,%i5
bleu .LL420
mov %i4,%g3
.LL310:
add %i0,1,%i0
mov %i5,%g1
.LL419:
mov %i4,%g3
.LL420:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL311
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL311
add %i0,1,%i0
.LL311:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL312
add %i0,1,%i0
.LL312:
ld [%o7+16],%g3
ld [%o7+4],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL313
add %i0,1,%i0
bne .LL421
mov %i5,%g1
cmp %i3,%i5
bleu .LL422
mov %i4,%g3
add %i0,1,%i0
.LL313:
mov %i5,%g1
.LL421:
mov %i4,%g3
.LL422:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL315
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL315
add %i0,1,%i0
.LL315:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL316
add %i0,1,%i0
.LL316:
ld [%o7+12],%g3
ld [%o7+8],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL317
add %i0,1,%i0
bne .LL423
mov %i5,%g1
cmp %i3,%i5
bleu .LL424
mov %i4,%g3
add %i0,1,%i0
.LL317:
mov %i5,%g1
.LL423:
mov %i4,%g3
.LL424:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL319
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL319
add %i0,1,%i0
.LL319:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL320
add %i0,1,%i0
.LL320:
st %i1,[%o0+20]
mov 0,%i1
ld [%o7+12],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov %i1,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL321
mov %g3,%g2
add %g2,1,%g2
.LL321:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL322
mov 1,%i1
.LL322:
ld [%o7+16],%g3
ld [%o7+8],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL323
add %i1,1,%i1
bne .LL425
mov %i5,%g1
cmp %i3,%i5
bleu .LL426
mov %i4,%g3
add %i1,1,%i1
.LL323:
mov %i5,%g1
.LL425:
mov %i4,%g3
.LL426:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL325
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL325
add %i1,1,%i1
.LL325:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL326
add %i1,1,%i1
.LL326:
ld [%o7+20],%g3
ld [%o7+4],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL327
add %i1,1,%i1
bne .LL427
mov %i5,%g1
cmp %i3,%i5
bleu .LL428
mov %i4,%g3
add %i1,1,%i1
.LL327:
mov %i5,%g1
.LL427:
mov %i4,%g3
.LL428:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL329
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL329
add %i1,1,%i1
.LL329:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL330
add %i1,1,%i1
.LL330:
ld [%o7+24],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL331
add %i1,1,%i1
bne .LL429
mov %i5,%g1
cmp %i3,%i5
bleu .LL430
mov %i4,%g3
add %i1,1,%i1
.LL331:
mov %i5,%g1
.LL429:
mov %i4,%g3
.LL430:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL333
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL333
add %i1,1,%i1
.LL333:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL334
add %i1,1,%i1
.LL334:
st %g4,[%o0+24]
ld [%o7+28],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL336
mov 0,%g4
bne .LL431
mov %i5,%g1
cmp %i3,%i5
bleu .LL432
mov %i4,%g3
.LL336:
add %g4,1,%g4
mov %i5,%g1
.LL431:
mov %i4,%g3
.LL432:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL337
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL337
add %g4,1,%g4
.LL337:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL338
add %g4,1,%g4
.LL338:
ld [%o7+24],%g3
ld [%o7+4],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL339
add %g4,1,%g4
bne .LL433
mov %i5,%g1
cmp %i3,%i5
bleu .LL434
mov %i4,%g3
add %g4,1,%g4
.LL339:
mov %i5,%g1
.LL433:
mov %i4,%g3
.LL434:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL341
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL341
add %g4,1,%g4
.LL341:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL342
add %g4,1,%g4
.LL342:
ld [%o7+20],%g3
ld [%o7+8],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL343
add %g4,1,%g4
bne .LL435
mov %i5,%g1
cmp %i3,%i5
bleu .LL436
mov %i4,%g3
add %g4,1,%g4
.LL343:
mov %i5,%g1
.LL435:
mov %i4,%g3
.LL436:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL345
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL345
add %g4,1,%g4
.LL345:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL346
add %g4,1,%g4
.LL346:
ld [%o7+16],%g3
ld [%o7+12],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL347
add %g4,1,%g4
bne .LL437
mov %i5,%g1
cmp %i3,%i5
bleu .LL438
mov %i4,%g3
add %g4,1,%g4
.LL347:
mov %i5,%g1
.LL437:
mov %i4,%g3
.LL438:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL349
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL349
add %g4,1,%g4
.LL349:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL350
add %g4,1,%g4
.LL350:
st %i0,[%o0+28]
mov 0,%i0
ld [%o7+16],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov %i0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL351
mov %g3,%g2
add %g2,1,%g2
.LL351:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL352
mov 1,%i0
.LL352:
ld [%o7+20],%g3
ld [%o7+12],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL353
add %i0,1,%i0
bne .LL439
mov %i5,%g1
cmp %i3,%i5
bleu .LL440
mov %i4,%g3
add %i0,1,%i0
.LL353:
mov %i5,%g1
.LL439:
mov %i4,%g3
.LL440:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL355
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL355
add %i0,1,%i0
.LL355:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL356
add %i0,1,%i0
.LL356:
ld [%o7+24],%g3
ld [%o7+8],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL357
add %i0,1,%i0
bne .LL441
mov %i5,%g1
cmp %i3,%i5
bleu .LL442
mov %i4,%g3
add %i0,1,%i0
.LL357:
mov %i5,%g1
.LL441:
mov %i4,%g3
.LL442:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL359
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL359
add %i0,1,%i0
.LL359:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL360
add %i0,1,%i0
.LL360:
ld [%o7+28],%g3
ld [%o7+4],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL361
add %i0,1,%i0
bne .LL443
mov %i5,%g1
cmp %i3,%i5
bleu .LL444
mov %i4,%g3
add %i0,1,%i0
.LL361:
mov %i5,%g1
.LL443:
mov %i4,%g3
.LL444:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL363
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL363
add %i0,1,%i0
.LL363:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL364
add %i0,1,%i0
.LL364:
st %i1,[%o0+32]
ld [%o7+28],%g3
ld [%o7+8],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL366
mov 0,%i1
bne .LL445
mov %i5,%g1
cmp %i3,%i5
bleu .LL446
mov %i4,%g3
.LL366:
add %i1,1,%i1
mov %i5,%g1
.LL445:
mov %i4,%g3
.LL446:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL367
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL367
add %i1,1,%i1
.LL367:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL368
add %i1,1,%i1
.LL368:
ld [%o7+24],%g3
ld [%o7+12],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL369
add %i1,1,%i1
bne .LL447
mov %i5,%g1
cmp %i3,%i5
bleu .LL448
mov %i4,%g3
add %i1,1,%i1
.LL369:
mov %i5,%g1
.LL447:
mov %i4,%g3
.LL448:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL371
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL371
add %i1,1,%i1
.LL371:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL372
add %i1,1,%i1
.LL372:
ld [%o7+20],%g3
ld [%o7+16],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL373
add %i1,1,%i1
bne .LL449
mov %i5,%g1
cmp %i3,%i5
bleu .LL450
mov %i4,%g3
add %i1,1,%i1
.LL373:
mov %i5,%g1
.LL449:
mov %i4,%g3
.LL450:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL375
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL375
add %i1,1,%i1
.LL375:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL376
add %i1,1,%i1
.LL376:
st %g4,[%o0+36]
mov 0,%g4
ld [%o7+20],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov %g4,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL377
mov %g3,%g2
add %g2,1,%g2
.LL377:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL378
mov 1,%g4
.LL378:
ld [%o7+24],%g3
ld [%o7+16],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL379
add %g4,1,%g4
bne .LL451
mov %i5,%g1
cmp %i3,%i5
bleu .LL452
mov %i4,%g3
add %g4,1,%g4
.LL379:
mov %i5,%g1
.LL451:
mov %i4,%g3
.LL452:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL381
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL381
add %g4,1,%g4
.LL381:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL382
add %g4,1,%g4
.LL382:
ld [%o7+28],%g3
ld [%o7+12],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL383
add %g4,1,%g4
bne .LL453
mov %i5,%g1
cmp %i3,%i5
bleu .LL454
mov %i4,%g3
add %g4,1,%g4
.LL383:
mov %i5,%g1
.LL453:
mov %i4,%g3
.LL454:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL385
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL385
add %g4,1,%g4
.LL385:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL386
add %g4,1,%g4
.LL386:
st %i0,[%o0+40]
ld [%o7+28],%g3
ld [%o7+16],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL388
mov 0,%i0
bne .LL455
mov %i5,%g1
cmp %i3,%i5
bleu .LL456
mov %i4,%g3
.LL388:
add %i0,1,%i0
mov %i5,%g1
.LL455:
mov %i4,%g3
.LL456:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL389
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL389
add %i0,1,%i0
.LL389:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL390
add %i0,1,%i0
.LL390:
ld [%o7+24],%g3
ld [%o7+20],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL391
add %i0,1,%i0
bne .LL457
mov %i5,%g1
cmp %i3,%i5
bleu .LL458
mov %i4,%g3
add %i0,1,%i0
.LL391:
mov %i5,%g1
.LL457:
mov %i4,%g3
.LL458:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL393
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL393
add %i0,1,%i0
.LL393:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL394
add %i0,1,%i0
.LL394:
st %i1,[%o0+44]
mov 0,%i1
ld [%o7+24],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov %i1,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL395
mov %g3,%g2
add %g2,1,%g2
.LL395:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL396
mov 1,%i1
.LL396:
ld [%o7+28],%g3
ld [%o7+20],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL397
add %i1,1,%i1
bne .LL459
mov %i5,%g1
cmp %i3,%i5
bleu .LL460
mov %i4,%g3
add %i1,1,%i1
.LL397:
mov %i5,%g1
.LL459:
mov %i4,%g3
.LL460:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL399
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL399
add %i1,1,%i1
.LL399:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL400
add %i1,1,%i1
.LL400:
st %g4,[%o0+48]
ld [%o7+28],%g3
ld [%o7+24],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL402
mov 0,%g4
bne .LL461
mov %i5,%g1
cmp %i3,%i5
bleu .LL462
mov %i4,%g3
.LL402:
add %g4,1,%g4
mov %i5,%g1
.LL461:
mov %i4,%g3
.LL462:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL403
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL403
add %g4,1,%g4
.LL403:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL404
add %g4,1,%g4
.LL404:
st %i0,[%o0+52]
ld [%o7+28],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL405
mov %g3,%g2
add %g2,1,%g2
.LL405:
add %g4,%g2,%g4
st %i1,[%o0+56]
st %g4,[%o0+60]
ret
restore
.LLfe5:
.size bn_sqr_comba8,.LLfe5-bn_sqr_comba8
.align 4
.global bn_sqr_comba4
.type bn_sqr_comba4,#function
.proc 020
bn_sqr_comba4:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov %i0,%o0
mov %i1,%o7
mov 0,%i0
ld [%o7],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i2,%g3
mov %i0,%g2
mov %g3,%g4
st %i3,[%o0]
ld [%o7+4],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL467
mov %i0,%i1
bne .LL496
mov %i5,%g1
cmp %i3,%i5
bleu .LL497
mov %i4,%g3
.LL467:
add %i1,1,%i1
mov %i5,%g1
.LL496:
mov %i4,%g3
.LL497:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL468
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL468
add %i1,1,%i1
.LL468:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL469
add %i1,1,%i1
.LL469:
st %g4,[%o0+4]
mov 0,%g4
ld [%o7+4],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov %g4,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL470
mov %g3,%g2
add %g2,1,%g2
.LL470:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL471
mov 1,%g4
.LL471:
ld [%o7+8],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL472
add %g4,1,%g4
bne .LL498
mov %i5,%g1
cmp %i3,%i5
bleu .LL499
mov %i4,%g3
add %g4,1,%g4
.LL472:
mov %i5,%g1
.LL498:
mov %i4,%g3
.LL499:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL474
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL474
add %g4,1,%g4
.LL474:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL475
add %g4,1,%g4
.LL475:
st %i0,[%o0+8]
ld [%o7+12],%g3
ld [%o7],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL477
mov 0,%i0
bne .LL500
mov %i5,%g1
cmp %i3,%i5
bleu .LL501
mov %i4,%g3
.LL477:
add %i0,1,%i0
mov %i5,%g1
.LL500:
mov %i4,%g3
.LL501:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL478
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL478
add %i0,1,%i0
.LL478:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL479
add %i0,1,%i0
.LL479:
ld [%o7+8],%g3
ld [%o7+4],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL480
add %i0,1,%i0
bne .LL502
mov %i5,%g1
cmp %i3,%i5
bleu .LL503
mov %i4,%g3
add %i0,1,%i0
.LL480:
mov %i5,%g1
.LL502:
mov %i4,%g3
.LL503:
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL482
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL482
add %i0,1,%i0
.LL482:
add %g4,%g2,%g4
cmp %g4,%g2
blu,a .LL483
add %i0,1,%i0
.LL483:
st %i1,[%o0+12]
mov 0,%i1
ld [%o7+8],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov %i1,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL484
mov %g3,%g2
add %g2,1,%g2
.LL484:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL485
mov 1,%i1
.LL485:
ld [%o7+12],%g3
ld [%o7+4],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu,a .LL486
add %i1,1,%i1
bne .LL504
mov %i5,%g1
cmp %i3,%i5
bleu .LL505
mov %i4,%g3
add %i1,1,%i1
.LL486:
mov %i5,%g1
.LL504:
mov %i4,%g3
.LL505:
mov 0,%g2
add %g4,%g1,%g4
cmp %g4,%g1
bgeu .LL488
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL488
add %i1,1,%i1
.LL488:
add %i0,%g2,%i0
cmp %i0,%g2
blu,a .LL489
add %i1,1,%i1
.LL489:
st %g4,[%o0+16]
ld [%o7+12],%g3
ld [%o7+8],%g2
umul %g3,%g2,%i3
rd %y,%i2
addcc %i3,%i3,%i5
addx %i2,%i2,%i4
cmp %i2,%i4
bgu .LL491
mov 0,%g4
bne .LL506
mov %i5,%g1
cmp %i3,%i5
bleu .LL507
mov %i4,%g3
.LL491:
add %g4,1,%g4
mov %i5,%g1
.LL506:
mov %i4,%g3
.LL507:
mov 0,%g2
add %i0,%g1,%i0
cmp %i0,%g1
bgeu .LL492
mov %g3,%g2
addcc %g2,1,%g2
be,a .LL492
add %g4,1,%g4
.LL492:
add %i1,%g2,%i1
cmp %i1,%g2
blu,a .LL493
add %g4,1,%g4
.LL493:
st %i0,[%o0+20]
ld [%o7+12],%g2
umul %g2,%g2,%i3
rd %y,%i2
mov %i3,%g1
mov %i2,%g3
mov 0,%g2
add %i1,%g1,%i1
cmp %i1,%g1
bgeu .LL494
mov %g3,%g2
add %g2,1,%g2
.LL494:
add %g4,%g2,%g4
st %i1,[%o0+24]
st %g4,[%o0+28]
ret
restore
.LLfe6:
.size bn_sqr_comba4,.LLfe6-bn_sqr_comba4
.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 0,%i0
cmp %i2,%i0
ble .LL508
mov %i1,%o0
add %o7,12,%g4
add %o0,12,%g1
.LL13:
mov %i0,%g3
mov 0,%g2
ld [%o0],%i0
umul %i3,%i0,%i1
rd %y,%i0
addcc %i1,%g3,%i1
addx %i0,%g2,%i0
st %i1,[%o7]
mov %i0,%i5
mov %g2,%i4
addcc %i2,-1,%i2
be .LL508
mov %i5,%i0
mov %i5,%g3
mov 0,%g2
ld [%g1-8],%i0
umul %i3,%i0,%i1
rd %y,%i0
addcc %i1,%g3,%i1
addx %i0,%g2,%i0
st %i1,[%g4-8]
mov %i0,%i5
mov %g2,%i4
addcc %i2,-1,%i2
be .LL508
mov %i5,%i0
mov %i5,%g3
mov 0,%g2
ld [%g1-4],%i0
umul %i3,%i0,%i1
rd %y,%i0
addcc %i1,%g3,%i1
addx %i0,%g2,%i0
st %i1,[%g4-4]
mov %i0,%g3
mov 0,%g2
addcc %i2,-1,%i2
be .LL508
mov %g3,%i0
mov %g3,%i1
mov %g2,%i0
ld [%g1],%g2
umul %i3,%g2,%g3
rd %y,%g2
addcc %g3,%i1,%g3
addx %g2,%i0,%g2
st %g3,[%g4]
mov %g2,%g3
mov 0,%g2
addcc %i2,-1,%i2
be .LL508
mov %g3,%i0
add %g1,16,%g1
add %o0,16,%o0
add %g4,16,%g4
b .LL13
add %o7,16,%o7
.LL508:
ret
restore
.LLfe7:
.size bn_mul_words,.LLfe7-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,%o3
cmp %o2,0
ble .LL30
mov %o1,%g1
add %o0,28,%o0
add %o1,12,%o1
.LL32:
ld [%g1],%g2
umul %g2,%g2,%o5
rd %y,%o4
st %o5,[%o3]
mov %o4,%g3
mov 0,%g2
addcc %o2,-1,%o2
be .LL30
st %g3,[%o0-24]
ld [%o1-8],%g2
umul %g2,%g2,%o5
rd %y,%o4
st %o5,[%o0-20]
mov %o4,%g3
mov 0,%g2
addcc %o2,-1,%o2
be .LL30
st %g3,[%o0-16]
ld [%o1-4],%g2
umul %g2,%g2,%o5
rd %y,%o4
st %o5,[%o0-12]
mov %o4,%g3
mov 0,%g2
addcc %o2,-1,%o2
be .LL30
st %g3,[%o0-8]
ld [%o1],%g2
umul %g2,%g2,%o5
rd %y,%o4
st %o5,[%o0-4]
mov %o4,%g3
mov 0,%g2
addcc %o2,-1,%o2
be .LL30
st %g3,[%o0]
add %o1,16,%o1
add %g1,16,%g1
add %o0,32,%o0
b .LL32
add %o3,32,%o3
.LL30:
retl
nop
.LLfe8:
.size bn_sqr_words,.LLfe8-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,%o7
mov %i1,%o0
mov 0,%i4
mov 0,%i5
cmp %i3,0
bg .LL69
mov %i2,%o1
b .LL509
mov 0,%i0
.LL69:
add %o7,12,%i2
add %o1,12,%g4
b .LL70
add %o0,12,%g1
.LL510:
ld [%g4-8],%i1
mov %g2,%i0
addcc %g3,%i1,%g3
addx %g2,%i0,%g2
addcc %i5,%g3,%i5
addx %i4,%g2,%i4
st %i5,[%i2-8]
mov %i4,%g3
mov 0,%g2
mov %g2,%i4
mov %g3,%i5
add %i3,-1,%i3
cmp %i3,%g2
ble .LL71
mov %g2,%i0
ld [%g1-4],%g3
ld [%g4-4],%i1
addcc %g3,%i1,%g3
addx %g2,%i0,%g2
addcc %i5,%g3,%i5
addx %i4,%g2,%i4
st %i5,[%i2-4]
mov %i4,%g3
mov 0,%g2
mov %g2,%i4
mov %g3,%i5
add %i3,-1,%i3
cmp %i3,%g2
ble .LL71
mov %g2,%i0
ld [%g1],%g3
ld [%g4],%i1
addcc %g3,%i1,%g3
addx %g2,%i0,%g2
addcc %i5,%g3,%i5
addx %i4,%g2,%i4
st %i5,[%i2]
mov %i4,%g3
mov 0,%g2
mov %g2,%i4
mov %g3,%i5
add %i3,-1,%i3
cmp %i3,%g2
ble .LL509
mov %i5,%i0
add %g1,16,%g1
add %o0,16,%o0
add %g4,16,%g4
add %o1,16,%o1
add %i2,16,%i2
add %o7,16,%o7
.LL70:
ld [%o0],%g3
mov 0,%g2
ld [%o1],%i1
mov %g2,%i0
addcc %g3,%i1,%g3
addx %g2,%i0,%g2
addcc %i5,%g3,%i5
addx %i4,%g2,%i4
st %i5,[%o7]
mov %i4,%g3
mov 0,%g2
mov %g2,%i4
mov %g3,%i5
add %i3,-1,%i3
cmp %i3,%g2
bg,a .LL510
ld [%g1-8],%g3
.LL71:
mov %i5,%i0
.LL509:
ret
restore
.LLfe9:
.size bn_add_words,.LLfe9-bn_add_words
.align 4
.global bn_sub_words
.type bn_sub_words,#function
.proc 016
bn_sub_words:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov %i0,%o7
mov 0,%i0
cmp %i3,%i0
ble .LL511
add %o7,12,%g4
add %i2,12,%g1
add %i1,12,%i5
.LL91:
ld [%i1],%i4
ld [%i2],%g3
sub %i4,%g3,%g2
sub %g2,%i0,%g2
cmp %i4,%g3
be .LL94
st %g2,[%o7]
addx %g0,0,%i0
.LL94:
add %i3,-1,%i3
cmp %i3,0
ble .LL511
nop
ld [%i5-8],%i4
ld [%g1-8],%g3
sub %i4,%g3,%g2
sub %g2,%i0,%g2
cmp %i4,%g3
be .LL96
st %g2,[%g4-8]
addx %g0,0,%i0
.LL96:
add %i3,-1,%i3
cmp %i3,0
ble .LL511
nop
ld [%i5-4],%i4
ld [%g1-4],%g3
sub %i4,%g3,%g2
sub %g2,%i0,%g2
cmp %i4,%g3
be .LL98
st %g2,[%g4-4]
addx %g0,0,%i0
.LL98:
add %i3,-1,%i3
cmp %i3,0
ble .LL511
nop
ld [%i5],%i4
ld [%g1],%g3
sub %i4,%g3,%g2
sub %g2,%i0,%g2
cmp %i4,%g3
be .LL100
st %g2,[%g4]
addx %g0,0,%i0
.LL100:
add %i3,-1,%i3
cmp %i3,0
ble .LL511
add %i5,16,%i5
add %i1,16,%i1
add %g1,16,%g1
add %i2,16,%i2
add %g4,16,%g4
b .LL91
add %o7,16,%o7
.LL511:
ret
restore
.LLfe10:
.size bn_sub_words,.LLfe10-bn_sub_words
.ident "GCC: (GNU) 2.8.1"