Quake-III-Arena

Quake III Arena GPL Source Release
Log | Files | Refs

sort.sbk (2927B)


      1 .section ".data"
      2 .global in
      3 .type in,#object
      4 .align 4
      5 in:
      6 .word 0xa
      7 .word 0x20
      8 .word 0xffffffff
      9 .word 0x237
     10 .word 0x3
     11 .word 0x12
     12 .word 0x1
     13 .word 0xffffffcd
     14 .word 0x315
     15 .word 0x0
     16 .size in,40
     17 .global main
     18 .section ".text"
     19 .align 4
     20 main:
     21 save %sp,-96,%sp
     22 set in,%o0
     23 set 10,%o1
     24 call sort; nop
     25 mov %g0,%i5
     26 ba .L5; nop
     27 .L2:
     28 sll %i5,2,%i4
     29 set in,%i3
     30 ld [%i4+%i3],%o0
     31 call putd; nop
     32 set 10,%o0
     33 call putchar; nop
     34 .L3:
     35 add %i5,1,%i5
     36 .L5:
     37 mov %i5,%i4
     38 set 10,%i3
     39 cmp %i4,%i3; blu .L2; nop
     40 mov %g0,%i0
     41 .L1:
     42 ret; restore
     43 .type main,#function
     44 .size main,.-main
     45 .global putd
     46 .align 4
     47 putd:
     48 save %sp,-96,%sp
     49 cmp %i0,0; bge .L7; nop
     50 set 45,%o0
     51 call putchar; nop
     52 neg %i0,%i0
     53 .L7:
     54 sra %i0,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i0,10,%i5
     55 cmp %i5,0; be .L9; nop
     56 sra %i0,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i0,10,%o0
     57 call putd; nop
     58 .L9:
     59 sra %i0,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i0,10,%g1
     60 ; smul %g1,10,%g1; sub %i0,%g1,%i5
     61 add %i5,48,%o0
     62 call putchar; nop
     63 mov %g0,%i0
     64 .L6:
     65 ret; restore
     66 .type putd,#function
     67 .size putd,.-putd
     68 .global sort
     69 .align 4
     70 sort:
     71 save %sp,-96,%sp
     72 set xx,%i5
     73 st %i0,[%i5]
     74 mov %i0,%o0
     75 mov %g0,%o1
     76 sub %i1,1,%i5
     77 mov %i5,%i1
     78 mov %i5,%o2
     79 call quick; nop
     80 mov %g0,%i0
     81 .L11:
     82 ret; restore
     83 .type sort,#function
     84 .size sort,.-sort
     85 .global quick
     86 .align 4
     87 quick:
     88 save %sp,-96,%sp
     89 cmp %i1,%i2; bl .L13; nop
     90 ba .L12; nop
     91 .L13:
     92 mov %i0,%o0
     93 mov %i1,%o1
     94 mov %i2,%o2
     95 call partition; nop
     96 mov %o0,%i5
     97 mov %i0,%o0
     98 mov %i1,%o1
     99 sub %i5,1,%o2
    100 call quick; nop
    101 mov %i0,%o0
    102 add %i5,1,%o1
    103 mov %i2,%o2
    104 call quick; nop
    105 mov %g0,%i0
    106 .L12:
    107 ret; restore
    108 .type quick,#function
    109 .size quick,.-quick
    110 .global partition
    111 .align 4
    112 partition:
    113 save %sp,-96,%sp
    114 add %i2,1,%i2
    115 mov %i1,%i4
    116 sll %i4,2,%i3
    117 ld [%i3+%i0],%i5
    118 ba .L17; nop
    119 .L16:
    120 add %i1,1,%i1
    121 ba .L20; nop
    122 .L19:
    123 add %i1,1,%i1
    124 .L20:
    125 sll %i1,2,%i3
    126 ld [%i3+%i0],%i3
    127 cmp %i3,%i5; bl .L19; nop
    128 sub %i2,1,%i2
    129 ba .L23; nop
    130 .L22:
    131 sub %i2,1,%i2
    132 .L23:
    133 sll %i2,2,%i3
    134 ld [%i3+%i0],%i3
    135 cmp %i3,%i5; bg .L22; nop
    136 cmp %i1,%i2; bge .L25; nop
    137 sll %i1,2,%i3
    138 add %i3,%i0,%o0
    139 sll %i2,2,%i3
    140 add %i3,%i0,%o1
    141 call exchange; nop
    142 .L25:
    143 .L17:
    144 cmp %i1,%i2; bl .L16; nop
    145 sll %i4,2,%i3
    146 add %i3,%i0,%o0
    147 sll %i2,2,%i3
    148 add %i3,%i0,%o1
    149 call exchange; nop
    150 mov %i2,%i0
    151 .L15:
    152 ret; restore
    153 .type partition,#function
    154 .size partition,.-partition
    155 .global exchange
    156 .align 4
    157 exchange:
    158 save %sp,-96,%sp
    159 set .L28,%o0
    160 set xx,%i4
    161 ld [%i4],%i4
    162 mov %i0,%i3
    163 sub %i3,%i4,%i3
    164 sra %i3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i3,4,%o1
    165 mov %i1,%i3
    166 sub %i3,%i4,%i4
    167 sra %i4,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i4,4,%o2
    168 call printf; nop
    169 ld [%i0],%i5
    170 ld [%i1],%i4
    171 st %i4,[%i0]
    172 st %i5,[%i1]
    173 mov %g0,%i0
    174 .L27:
    175 ret; restore
    176 .type exchange,#function
    177 .size exchange,.-exchange
    178 .section ".bss"
    179 .global xx
    180 .type xx,#object
    181 .size xx,4
    182 .common xx,4,4
    183 .section ".rodata"
    184 .align 1
    185 .L28:
    186 .byte 101
    187 .byte 120
    188 .byte 99
    189 .byte 104
    190 .byte 97
    191 .byte 110
    192 .byte 103
    193 .byte 101
    194 .byte 40
    195 .byte 37
    196 .byte 100
    197 .byte 44
    198 .byte 37
    199 .byte 100
    200 .byte 41
    201 .byte 10
    202 .byte 0