diff options
Diffstat (limited to 'lcc/sparc/solaris/tst/sort.sbk')
-rw-r--r-- | lcc/sparc/solaris/tst/sort.sbk | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/lcc/sparc/solaris/tst/sort.sbk b/lcc/sparc/solaris/tst/sort.sbk deleted file mode 100644 index 709dd46..0000000 --- a/lcc/sparc/solaris/tst/sort.sbk +++ /dev/null @@ -1,202 +0,0 @@ -.section ".data" -.global in -.type in,#object -.align 4 -in: -.word 0xa -.word 0x20 -.word 0xffffffff -.word 0x237 -.word 0x3 -.word 0x12 -.word 0x1 -.word 0xffffffcd -.word 0x315 -.word 0x0 -.size in,40 -.global main -.section ".text" -.align 4 -main: -save %sp,-96,%sp -set in,%o0 -set 10,%o1 -call sort; nop -mov %g0,%i5 -ba .L5; nop -.L2: -sll %i5,2,%i4 -set in,%i3 -ld [%i4+%i3],%o0 -call putd; nop -set 10,%o0 -call putchar; nop -.L3: -add %i5,1,%i5 -.L5: -mov %i5,%i4 -set 10,%i3 -cmp %i4,%i3; blu .L2; nop -mov %g0,%i0 -.L1: -ret; restore -.type main,#function -.size main,.-main -.global putd -.align 4 -putd: -save %sp,-96,%sp -cmp %i0,0; bge .L7; nop -set 45,%o0 -call putchar; nop -neg %i0,%i0 -.L7: -sra %i0,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i0,10,%i5 -cmp %i5,0; be .L9; nop -sra %i0,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i0,10,%o0 -call putd; nop -.L9: -sra %i0,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i0,10,%g1 -; smul %g1,10,%g1; sub %i0,%g1,%i5 -add %i5,48,%o0 -call putchar; nop -mov %g0,%i0 -.L6: -ret; restore -.type putd,#function -.size putd,.-putd -.global sort -.align 4 -sort: -save %sp,-96,%sp -set xx,%i5 -st %i0,[%i5] -mov %i0,%o0 -mov %g0,%o1 -sub %i1,1,%i5 -mov %i5,%i1 -mov %i5,%o2 -call quick; nop -mov %g0,%i0 -.L11: -ret; restore -.type sort,#function -.size sort,.-sort -.global quick -.align 4 -quick: -save %sp,-96,%sp -cmp %i1,%i2; bl .L13; nop -ba .L12; nop -.L13: -mov %i0,%o0 -mov %i1,%o1 -mov %i2,%o2 -call partition; nop -mov %o0,%i5 -mov %i0,%o0 -mov %i1,%o1 -sub %i5,1,%o2 -call quick; nop -mov %i0,%o0 -add %i5,1,%o1 -mov %i2,%o2 -call quick; nop -mov %g0,%i0 -.L12: -ret; restore -.type quick,#function -.size quick,.-quick -.global partition -.align 4 -partition: -save %sp,-96,%sp -add %i2,1,%i2 -mov %i1,%i4 -sll %i4,2,%i3 -ld [%i3+%i0],%i5 -ba .L17; nop -.L16: -add %i1,1,%i1 -ba .L20; nop -.L19: -add %i1,1,%i1 -.L20: -sll %i1,2,%i3 -ld [%i3+%i0],%i3 -cmp %i3,%i5; bl .L19; nop -sub %i2,1,%i2 -ba .L23; nop -.L22: -sub %i2,1,%i2 -.L23: -sll %i2,2,%i3 -ld [%i3+%i0],%i3 -cmp %i3,%i5; bg .L22; nop -cmp %i1,%i2; bge .L25; nop -sll %i1,2,%i3 -add %i3,%i0,%o0 -sll %i2,2,%i3 -add %i3,%i0,%o1 -call exchange; nop -.L25: -.L17: -cmp %i1,%i2; bl .L16; nop -sll %i4,2,%i3 -add %i3,%i0,%o0 -sll %i2,2,%i3 -add %i3,%i0,%o1 -call exchange; nop -mov %i2,%i0 -.L15: -ret; restore -.type partition,#function -.size partition,.-partition -.global exchange -.align 4 -exchange: -save %sp,-96,%sp -set .L28,%o0 -set xx,%i4 -ld [%i4],%i4 -mov %i0,%i3 -sub %i3,%i4,%i3 -sra %i3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i3,4,%o1 -mov %i1,%i3 -sub %i3,%i4,%i4 -sra %i4,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i4,4,%o2 -call printf; nop -ld [%i0],%i5 -ld [%i1],%i4 -st %i4,[%i0] -st %i5,[%i1] -mov %g0,%i0 -.L27: -ret; restore -.type exchange,#function -.size exchange,.-exchange -.section ".bss" -.global xx -.type xx,#object -.size xx,4 -.common xx,4,4 -.section ".rodata" -.align 1 -.L28: -.byte 101 -.byte 120 -.byte 99 -.byte 104 -.byte 97 -.byte 110 -.byte 103 -.byte 101 -.byte 40 -.byte 37 -.byte 100 -.byte 44 -.byte 37 -.byte 100 -.byte 41 -.byte 10 -.byte 0 |