diff options
Diffstat (limited to 'code/tools/lcc/sparc/solaris/tst/spill.sbk')
-rw-r--r-- | code/tools/lcc/sparc/solaris/tst/spill.sbk | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/code/tools/lcc/sparc/solaris/tst/spill.sbk b/code/tools/lcc/sparc/solaris/tst/spill.sbk new file mode 100644 index 0000000..8b3ff96 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/spill.sbk @@ -0,0 +1,207 @@ +.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 +ld2 [%l4],%f30 +set b,%l4 +add %l5,%l4,%l5 +ld2 [%l5],%f28 +set .L15,%l5 +ld2 [%l5],%f26 +faddd %f30,%f28,%f24 +fcmped %f24,%f26; nop; fbue .L13; nop +cmp %l6,0; be .L13; nop +fsubd %f30,%f28,%f30 +fcmped %f30,%f26; nop; fbue .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 +ld2 [%i1],%f30 +ld2 [%i3],%f28 +fmuld %f30,%f28,%f30 +ld2 [%i4],%f28 +ld2 [%i2],%f26 +fmuld %f28,%f26,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%i5] +ld2 [%i1],%f30 +ld2 [%i2],%f28 +fmuld %f30,%f28,%f30 +ld2 [%i4],%f28 +ld2 [%i3],%f26 +fmuld %f28,%f26,%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%i5] +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 |