aboutsummaryrefslogtreecommitdiffstats
path: root/lcc/sparc/solaris/tst/array.sbk
diff options
context:
space:
mode:
Diffstat (limited to 'lcc/sparc/solaris/tst/array.sbk')
-rwxr-xr-xlcc/sparc/solaris/tst/array.sbk172
1 files changed, 172 insertions, 0 deletions
diff --git a/lcc/sparc/solaris/tst/array.sbk b/lcc/sparc/solaris/tst/array.sbk
new file mode 100755
index 0000000..2dead90
--- /dev/null
+++ b/lcc/sparc/solaris/tst/array.sbk
@@ -0,0 +1,172 @@
+.global main
+.section ".text"
+.align 4
+main:
+save %sp,-144,%sp
+mov %g0,%i4
+.L2:
+mov %g0,%i5
+.L6:
+sll %i5,2,%i2
+sll %i4,4,%i1
+set x,%i0
+add %i1,%i0,%i1
+smul %i4,1000,%i0
+add %i0,%i5,%i0
+st %i0,[%i2+%i1]
+.L7:
+add %i5,1,%i5
+cmp %i5,4; bl .L6; nop
+sll %i4,2,%i2
+set y,%i1
+sll %i4,4,%i0
+set x,%l7
+add %i0,%l7,%i0
+st %i0,[%i2+%i1]
+.L3:
+add %i4,1,%i4
+cmp %i4,3; bl .L2; nop
+call f; nop
+mov %g0,%i4
+.L10:
+sll %i4,4,%i2
+add -48,%fp,%i1
+add %i2,%i1,%i2
+mov %i2,%i3
+sll %i4,2,%i1
+set y,%i0
+st %i2,[%i1+%i0]
+mov %g0,%i5
+.L14:
+sll %i5,2,%i2
+sll %i4,4,%i1
+set x,%i0
+add %i1,%i0,%i1
+ld [%i2+%i1],%i1
+st %i1,[%i2+%i3]
+.L15:
+add %i5,1,%i5
+cmp %i5,4; bl .L14; nop
+.L11:
+add %i4,1,%i4
+cmp %i4,3; bl .L10; nop
+add -48,%fp,%o0
+set y,%o1
+call g; nop
+mov %g0,%i0
+.L1:
+ret; restore
+.type main,#function
+.size main,.-main
+.global f
+.align 4
+f:
+save %sp,-96,%sp
+mov %g0,%i4
+.L19:
+mov %g0,%i5
+.L23:
+set .L27,%o0
+sll %i5,2,%i3
+sll %i4,4,%i2
+set x,%i1
+add %i2,%i1,%i2
+ld [%i3+%i2],%o1
+call printf; nop
+.L24:
+add %i5,1,%i5
+cmp %i5,4; bl .L23; nop
+.L20:
+add %i4,1,%i4
+cmp %i4,3; bl .L19; nop
+set .L28,%o0
+call printf; nop
+mov %g0,%i4
+.L29:
+mov %g0,%i5
+.L33:
+set .L27,%o0
+sll %i5,2,%i3
+sll %i4,2,%i2
+set y,%i1
+ld [%i2+%i1],%i2
+ld [%i3+%i2],%o1
+call printf; nop
+.L34:
+add %i5,1,%i5
+cmp %i5,4; bl .L33; nop
+.L30:
+add %i4,1,%i4
+cmp %i4,3; bl .L29; nop
+set .L28,%o0
+call printf; nop
+mov %g0,%i0
+.L18:
+ret; restore
+.type f,#function
+.size f,.-f
+.global g
+.align 4
+g:
+save %sp,-96,%sp
+mov %g0,%i4
+.L38:
+mov %g0,%i5
+.L42:
+set .L27,%o0
+sll %i5,2,%i3
+sll %i4,4,%i2
+add %i2,%i0,%i2
+ld [%i3+%i2],%o1
+call printf; nop
+.L43:
+add %i5,1,%i5
+cmp %i5,4; bl .L42; nop
+.L39:
+add %i4,1,%i4
+cmp %i4,3; bl .L38; nop
+set .L28,%o0
+call printf; nop
+mov %g0,%i4
+.L46:
+mov %g0,%i5
+.L50:
+set .L27,%o0
+sll %i5,2,%i3
+sll %i4,2,%i2
+ld [%i2+%i1],%i2
+ld [%i3+%i2],%o1
+call printf; nop
+.L51:
+add %i5,1,%i5
+cmp %i5,4; bl .L50; nop
+.L47:
+add %i4,1,%i4
+cmp %i4,3; bl .L46; nop
+set .L28,%o0
+call printf; nop
+mov %g0,%i0
+.L37:
+ret; restore
+.type g,#function
+.size g,.-g
+.section ".bss"
+.global y
+.type y,#object
+.size y,12
+.common y,12,4
+.global x
+.type x,#object
+.size x,48
+.common x,48,4
+.section ".rodata"
+.align 1
+.L28:
+.byte 10
+.byte 0
+.align 1
+.L27:
+.byte 32
+.byte 37
+.byte 100
+.byte 0