	.file	"bn_mulw.c"
.section	".text"
	.align 4
	.global bn_mul_add_word
	.type	 bn_mul_add_word,#function
	.proc	017
bn_mul_add_word:
	!#PROLOGUE# 0
	save %sp,-112,%sp
	!#PROLOGUE# 1
	mov %i0,%o0
	mov %i1,%o2
	mov %i2,%g1
	mov %i3,%o1
	mov 0,%i0
	add %o0,12,%g4
	add %o2,12,%o7
.LL2:
	mov %i0,%i5
	mov 0,%i4
	ld [%o0],%i3
	ld [%o2],%g2
	mov 0,%i2
	umul %o1,%g2,%g3
	rd %y,%g2
	addcc %g3,%i3,%g3
	addx %g2,%i2,%g2
	addcc %g3,%i5,%g3
	addx %g2,%i4,%g2
	st %g3,[%o0]
	mov %g2,%i1
	mov 0,%i0
	addcc %g1,-1,%g1
	be .LL3
	mov %i1,%i0
	mov %i0,%i5
	mov 0,%i4
	ld [%g4-8],%i3
	ld [%o7-8],%g2
	mov 0,%i2
	umul %o1,%g2,%g3
	rd %y,%g2
	addcc %g3,%i3,%g3
	addx %g2,%i2,%g2
	addcc %g3,%i5,%g3
	addx %g2,%i4,%g2
	st %g3,[%g4-8]
	mov %g2,%i1
	mov 0,%i0
	addcc %g1,-1,%g1
	be .LL3
	mov %i1,%i0
	mov %i0,%i5
	mov 0,%i4
	ld [%g4-4],%i3
	ld [%o7-4],%g2
	mov 0,%i2
	umul %o1,%g2,%g3
	rd %y,%g2
	addcc %g3,%i3,%g3
	addx %g2,%i2,%g2
	addcc %g3,%i5,%g3
	addx %g2,%i4,%g2
	st %g3,[%g4-4]
	mov %g2,%i1
	mov 0,%i0
	addcc %g1,-1,%g1
	be .LL3
	mov %i1,%i0
	mov %i0,%i5
	mov 0,%i4
	ld [%g4],%i3
	ld [%o7],%g2
	mov 0,%i2
	umul %o1,%g2,%g3
	rd %y,%g2
	addcc %g3,%i3,%g3
	addx %g2,%i2,%g2
	addcc %g3,%i5,%g3
	addx %g2,%i4,%g2
	st %g3,[%g4]
	mov %g2,%i1
	mov 0,%i0
	addcc %g1,-1,%g1
	be .LL3
	mov %i1,%i0
	add %o7,16,%o7
	add %o2,16,%o2
	add %g4,16,%g4
	b .LL2
	add %o0,16,%o0
.LL3:
	ret
	restore
.LLfe1:
	.size	 bn_mul_add_word,.LLfe1-bn_mul_add_word
	.align 4
	.global bn_mul_word
	.type	 bn_mul_word,#function
	.proc	017
bn_mul_word:
	!#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
.LL10:
	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 .LL11
	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 .LL11
	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 .LL11
	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 .LL11
	mov %i1,%i0
	add %i5,16,%i5
	add %o0,16,%o0
	add %g1,16,%g1
	b .LL10
	add %o7,16,%o7
.LL11:
	ret
	restore
.LLfe2:
	.size	 bn_mul_word,.LLfe2-bn_mul_word
	.align 4
	.global bn_sqr_words
	.type	 bn_sqr_words,#function
	.proc	020
bn_sqr_words:
	!#PROLOGUE# 0
	!#PROLOGUE# 1
	add %o0,28,%g1
	add %o1,12,%g4
.LL18:
	ld [%o1],%o3
	addcc %o2,-1,%o2
	umul %o3,%o3,%o5
	rd %y,%o4
	st %o5,[%o0]
	mov %o4,%g3
	mov 0,%g2
	be .LL19
	st %g3,[%g1-24]
	ld [%g4-8],%o3
	addcc %o2,-1,%o2
	umul %o3,%o3,%o5
	rd %y,%o4
	st %o5,[%g1-20]
	mov %o4,%g3
	mov 0,%g2
	be .LL19
	st %g3,[%g1-16]
	ld [%g4-4],%o3
	addcc %o2,-1,%o2
	umul %o3,%o3,%o5
	rd %y,%o4
	st %o5,[%g1-12]
	mov %o4,%g3
	mov 0,%g2
	be .LL19
	st %g3,[%g1-8]
	ld [%g4],%o3
	addcc %o2,-1,%o2
	umul %o3,%o3,%o5
	rd %y,%o4
	st %o5,[%g1-4]
	mov %o4,%g3
	mov 0,%g2
	be .LL19
	st %g3,[%g1]
	add %g4,16,%g4
	add %o1,16,%o1
	add %g1,32,%g1
	b .LL18
	add %o0,32,%o0
.LL19:
	retl
	nop
.LLfe3:
	.size	 bn_sqr_words,.LLfe3-bn_sqr_words
	.ident	"GCC: (GNU) 2.5.7"
