208 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			208 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
.global main
 | 
						|
.section ".text"
 | 
						|
.align 4
 | 
						|
main:
 | 
						|
mov %g0,%o0
 | 
						|
.L1:
 | 
						|
retl; nop
 | 
						|
.type main,#function
 | 
						|
.size main,.-main
 | 
						|
.global f
 | 
						|
.align 4
 | 
						|
f:
 | 
						|
save %sp,-96,%sp
 | 
						|
call f; nop
 | 
						|
mov %o0,%i5
 | 
						|
call f; nop
 | 
						|
add %i5,%o0,%i0
 | 
						|
mov %g0,%i0
 | 
						|
.L2:
 | 
						|
ret; restore
 | 
						|
.type f,#function
 | 
						|
.size f,.-f
 | 
						|
.global f2
 | 
						|
.align 4
 | 
						|
f2:
 | 
						|
save %sp,-96,%sp
 | 
						|
call f; nop
 | 
						|
mov %o0,%i4
 | 
						|
cmp %i0,0; be .L5; nop
 | 
						|
call f; nop
 | 
						|
mov %o0,%i3
 | 
						|
mov %i3,%i5
 | 
						|
ba .L6; nop
 | 
						|
.L5:
 | 
						|
set 1,%i5
 | 
						|
.L6:
 | 
						|
add %i4,%i5,%i0
 | 
						|
mov %g0,%i0
 | 
						|
.L3:
 | 
						|
ret; restore
 | 
						|
.type f2,#function
 | 
						|
.size f2,.-f2
 | 
						|
.global f3
 | 
						|
.align 4
 | 
						|
f3:
 | 
						|
save %sp,-104,%sp
 | 
						|
mov %g0,%i5
 | 
						|
mov %g0,%i4
 | 
						|
mov %g0,%i3
 | 
						|
mov %g0,%i2
 | 
						|
mov %g0,%l7
 | 
						|
mov %g0,%l6
 | 
						|
mov %g0,%l5
 | 
						|
mov %g0,%l4
 | 
						|
st %g0,[%fp+-4]
 | 
						|
st %g0,[%fp+-8]
 | 
						|
mov %i1,%l3
 | 
						|
add %l3,4,%i1
 | 
						|
cmp %i0,0; be .L9; nop
 | 
						|
call f; nop
 | 
						|
mov %o0,%l2
 | 
						|
st %l2,[%fp+-12]
 | 
						|
ba .L10; nop
 | 
						|
.L9:
 | 
						|
st %g0,[%fp+-12]
 | 
						|
.L10:
 | 
						|
ld [%fp+-12],%l2
 | 
						|
st %l2,[%l3]
 | 
						|
mov %g0,%i0
 | 
						|
.L7:
 | 
						|
ret; restore
 | 
						|
.type f3,#function
 | 
						|
.size f3,.-f3
 | 
						|
.global f4
 | 
						|
.align 4
 | 
						|
f4:
 | 
						|
save %sp,-96,%sp
 | 
						|
mov %g0,%i5
 | 
						|
mov %g0,%i4
 | 
						|
mov %g0,%i3
 | 
						|
mov %g0,%i2
 | 
						|
mov %g0,%i1
 | 
						|
mov %g0,%i0
 | 
						|
set i,%l6
 | 
						|
ld [%l6],%l6
 | 
						|
sll %l6,3,%l5
 | 
						|
set a,%l4
 | 
						|
add %l5,%l4,%l4
 | 
						|
ld [%l4],%f30; ld [%l4+4],%f31
 | 
						|
set b,%l4
 | 
						|
add %l5,%l4,%l5
 | 
						|
ld [%l5],%f28; ld [%l5+4],%f29
 | 
						|
set .L15,%l5
 | 
						|
ld [%l5],%f26; ld [%l5+4],%f27
 | 
						|
faddd %f30,%f28,%f24
 | 
						|
fcmpd %f24,%f26; nop; fbe .L13; nop
 | 
						|
cmp %l6,0; be .L13; nop
 | 
						|
fsubd %f30,%f28,%f30
 | 
						|
fcmpd %f30,%f26; nop; fbe .L13; nop
 | 
						|
set 1,%l7
 | 
						|
ba .L14; nop
 | 
						|
.L13:
 | 
						|
mov %g0,%l7
 | 
						|
.L14:
 | 
						|
set i,%l6
 | 
						|
st %l7,[%l6]
 | 
						|
mov %g0,%i0
 | 
						|
.L11:
 | 
						|
ret; restore
 | 
						|
.type f4,#function
 | 
						|
.size f4,.-f4
 | 
						|
.global f5
 | 
						|
.align 4
 | 
						|
f5:
 | 
						|
save %sp,-96,%sp
 | 
						|
set x,%i5
 | 
						|
set k,%i4
 | 
						|
ld [%i4],%i4
 | 
						|
set m,%i3
 | 
						|
ld [%i3],%i3
 | 
						|
set A,%i2
 | 
						|
ld [%i2],%i2
 | 
						|
smul %i3,%i4,%i1
 | 
						|
sll %i1,3,%i1
 | 
						|
add %i1,%i2,%i1
 | 
						|
set j,%i0
 | 
						|
ld [%i0],%i0
 | 
						|
smul %i3,%i0,%i3
 | 
						|
sll %i3,3,%i3
 | 
						|
add %i3,%i2,%i3
 | 
						|
set n,%i2
 | 
						|
ld [%i2],%i2
 | 
						|
set B,%l7
 | 
						|
ld [%l7],%l7
 | 
						|
smul %i2,%i4,%i4
 | 
						|
sll %i4,3,%i4
 | 
						|
add %i4,%l7,%i4
 | 
						|
smul %i2,%i0,%i2
 | 
						|
sll %i2,3,%i2
 | 
						|
add %i2,%l7,%i2
 | 
						|
ld [%i1],%f30; ld [%i1+4],%f31
 | 
						|
ld [%i3],%f28; ld [%i3+4],%f29
 | 
						|
fmuld %f30,%f28,%f30
 | 
						|
ld [%i4],%f28; ld [%i4+4],%f29
 | 
						|
ld [%i2],%f26; ld [%i2+4],%f27
 | 
						|
fmuld %f28,%f26,%f28
 | 
						|
faddd %f30,%f28,%f30
 | 
						|
st %f30,[%i5]; st %f31,[%i5+4]
 | 
						|
ld [%i1],%f30; ld [%i1+4],%f31
 | 
						|
ld [%i2],%f28; ld [%i2+4],%f29
 | 
						|
fmuld %f30,%f28,%f30
 | 
						|
ld [%i4],%f28; ld [%i4+4],%f29
 | 
						|
ld [%i3],%f26; ld [%i3+4],%f27
 | 
						|
fmuld %f28,%f26,%f28
 | 
						|
fsubd %f30,%f28,%f30
 | 
						|
st %f30,[%i5]; st %f31,[%i5+4]
 | 
						|
mov %g0,%i0
 | 
						|
.L16:
 | 
						|
ret; restore
 | 
						|
.type f5,#function
 | 
						|
.size f5,.-f5
 | 
						|
.section ".bss"
 | 
						|
.global x
 | 
						|
.type x,#object
 | 
						|
.size x,8
 | 
						|
.common x,8,8
 | 
						|
.global B
 | 
						|
.type B,#object
 | 
						|
.size B,4
 | 
						|
.common B,4,4
 | 
						|
.global A
 | 
						|
.type A,#object
 | 
						|
.size A,4
 | 
						|
.common A,4,4
 | 
						|
.global n
 | 
						|
.type n,#object
 | 
						|
.size n,4
 | 
						|
.common n,4,4
 | 
						|
.global m
 | 
						|
.type m,#object
 | 
						|
.size m,4
 | 
						|
.common m,4,4
 | 
						|
.global k
 | 
						|
.type k,#object
 | 
						|
.size k,4
 | 
						|
.common k,4,4
 | 
						|
.global j
 | 
						|
.type j,#object
 | 
						|
.size j,4
 | 
						|
.common j,4,4
 | 
						|
.global i
 | 
						|
.type i,#object
 | 
						|
.size i,4
 | 
						|
.common i,4,4
 | 
						|
.global b
 | 
						|
.type b,#object
 | 
						|
.size b,80
 | 
						|
.common b,80,8
 | 
						|
.global a
 | 
						|
.type a,#object
 | 
						|
.size a,80
 | 
						|
.common a,80,8
 | 
						|
.section ".rodata"
 | 
						|
.align 8
 | 
						|
.L15:
 | 
						|
.word 0x0
 | 
						|
.word 0x0
 |