blob: e84f9c925b9e16b8677d30ba8963fef3de5d53f6 [file] [log] [blame]
.section ".data"
.global words
.type words,#object
.align 4
words:
.word 0x1
.word 0x2
.word 0x3
.byte 105
.byte 102
.byte 0
.skip 3
.skip 2
.word 0x4
.word 0x5
.skip 4
.byte 102
.byte 111
.byte 114
.skip 3
.skip 2
.word 0x6
.word 0x7
.word 0x8
.byte 101
.byte 108
.byte 115
.byte 101
.byte 0
.skip 1
.skip 2
.word 0x9
.word 0xa
.word 0xb
.byte 119
.byte 104
.byte 105
.byte 108
.byte 101
.skip 1
.skip 2
.word 0x0
.skip 8
.skip 8
.size words,100
.global wordlist
.type wordlist,#object
.size wordlist,4
.align 4
wordlist:
.word words
.global x
.type x,#object
.align 4
x:
.word 0x1
.word 0x2
.word 0x3
.word 0x4
.word 0x0
.word 0x5
.word 0x6
.skip 12
.word 0x7
.skip 16
.size x,60
.global y
.type y,#object
.align 4
y:
.word x
.word x+20
.word x+40
.word 0x0
.size y,16
.global main
.section ".text"
.align 4
main:
save %sp,-96,%sp
mov %g0,%i4
ba .L8; nop
.L5:
mov %g0,%i5
ba .L12; nop
.L9:
set .L13,%o0
sll %i5,2,%i3
sll %i4,2,%i2
set y,%i1
ld [%i2+%i1],%i2
ld [%i3+%i2],%o1
call printf; nop
.L10:
add %i5,1,%i5
.L12:
sll %i5,2,%i3
sll %i4,2,%i2
set y,%i1
ld [%i2+%i1],%i2
ld [%i3+%i2],%i3
cmp %i3,0; bne .L9; nop
set .L14,%o0
call printf; nop
.L6:
add %i4,1,%i4
.L8:
sll %i4,2,%i3
set y,%i2
ld [%i3+%i2],%i3
cmp %i3,%g0; bne .L5; nop
call f; nop
set wordlist,%i3
ld [%i3],%o0
call g; nop
mov %g0,%i0
.L4:
ret; restore
.type main,#function
.size main,.-main
.section ".data"
.type .16,#object
.align 4
.16:
.word .L17
.word .L18
.word .L19
.word .L20
.word 0x0
.size .16,20
.global f
.section ".text"
.align 4
f:
save %sp,-96,%sp
set .16,%i5
ba .L24; nop
.L21:
set .L25,%o0
ld [%i5],%o1
call printf; nop
.L22:
add %i5,4,%i5
.L24:
ld [%i5],%i4
cmp %i4,%g0; bne .L21; nop
mov %g0,%i0
.L15:
ret; restore
.type f,#function
.size f,.-f
.global g
.align 4
g:
save %sp,-96,%sp
ba .L30; nop
.L27:
mov %g0,%i5
ba .L34; nop
.L31:
set .L35,%o0
sll %i5,2,%i4
ld [%i4+%i0],%o1
call printf; nop
.L32:
add %i5,1,%i5
.L34:
mov %i5,%i4
set 3,%i3
cmp %i4,%i3; blu .L31; nop
set .L25,%o0
add %i0,12,%o1
call printf; nop
.L28:
add %i0,20,%i0
.L30:
ld [%i0],%i4
cmp %i4,0; bne .L27; nop
call h; nop
mov %g0,%i0
.L26:
ret; restore
.type g,#function
.size g,.-g
.global h
.align 4
h:
save %sp,-96,%sp
mov %g0,%i5
ba .L40; nop
.L37:
set .L41,%o0
smul %i5,20,%i4
set words,%i3
ld [%i4+%i3],%o1
set words+4,%i3
ld [%i4+%i3],%o2
set words+8,%i3
ld [%i4+%i3],%o3
set words+12,%i3
add %i4,%i3,%o4
call printf; nop
.L38:
add %i5,1,%i5
.L40:
mov %i5,%i4
set 5,%i3
cmp %i4,%i3; blu .L37; nop
mov %g0,%i0
.L36:
ret; restore
.type h,#function
.size h,.-h
.section ".rodata"
.align 1
.L41:
.byte 37
.byte 100
.byte 32
.byte 37
.byte 100
.byte 32
.byte 37
.byte 100
.byte 32
.byte 37
.byte 115
.byte 10
.byte 0
.align 1
.L35:
.byte 37
.byte 100
.byte 32
.byte 0
.align 1
.L25:
.byte 37
.byte 115
.byte 10
.byte 0
.align 1
.L20:
.byte 119
.byte 104
.byte 105
.byte 108
.byte 101
.byte 0
.align 1
.L19:
.byte 101
.byte 108
.byte 115
.byte 101
.byte 0
.align 1
.L18:
.byte 102
.byte 111
.byte 114
.byte 0
.align 1
.L17:
.byte 105
.byte 102
.byte 0
.align 1
.L14:
.byte 10
.byte 0
.align 1
.L13:
.byte 32
.byte 37
.byte 100
.byte 0