Quake-III-Arena

Quake III Arena GPL Source Release
Log | Files | Refs

wf1.sbk (4125B)


      1 .global main
      2 .section ".text"
      3 .align 4
      4 main:
      5 save %sp,-120,%sp
      6 st %g0,[%fp+-24]
      7 set next,%i5
      8 st %g0,[%i5]
      9 ba .L3; nop
     10 .L2:
     11 add -20,%fp,%o0
     12 add -24,%fp,%o1
     13 call lookup; nop
     14 ld [%o0],%i4
     15 add %i4,1,%i4
     16 st %i4,[%o0]
     17 .L3:
     18 add -20,%fp,%o0
     19 call getword; nop
     20 cmp %o0,0; bne .L2; nop
     21 ld [%fp+-24],%o0
     22 call tprint; nop
     23 mov %g0,%i0
     24 .L1:
     25 ret; restore
     26 .type main,#function
     27 .size main,.-main
     28 .global err
     29 .align 4
     30 err:
     31 save %sp,-96,%sp
     32 set .L6,%o0
     33 mov %i0,%o1
     34 call printf; nop
     35 set 1,%o0
     36 call exit; nop
     37 mov %g0,%i0
     38 .L5:
     39 ret; restore
     40 .type err,#function
     41 .size err,.-err
     42 .global getword
     43 .align 4
     44 getword:
     45 save %sp,-96,%sp
     46 .L8:
     47 .L9:
     48 call getchar; nop
     49 mov %o0,%i3
     50 mov %i3,%i5
     51 cmp %i3,-1; be .L11; nop
     52 mov %i5,%o0
     53 call isletter; nop
     54 cmp %o0,0; be .L8; nop
     55 .L11:
     56 mov %i0,%i4
     57 ba .L15; nop
     58 .L12:
     59 mov %i4,%i3
     60 add %i3,1,%i4
     61 mov %i5,%i2
     62 stb %i2,[%i3]
     63 .L13:
     64 call getchar; nop
     65 mov %o0,%i5
     66 .L15:
     67 mov %i5,%o0
     68 call isletter; nop
     69 mov %o0,%i5
     70 cmp %o0,0; bne .L12; nop
     71 stb %g0,[%i4]
     72 mov %i4,%i3
     73 mov %i0,%i2
     74 cmp %i3,%i2; bleu .L16; nop
     75 set 1,%i0
     76 ba .L7; nop
     77 .L16:
     78 mov %g0,%i0
     79 .L7:
     80 ret; restore
     81 .type getword,#function
     82 .size getword,.-getword
     83 .global isletter
     84 .align 4
     85 isletter:
     86 cmp %o0,65; bl .L19; nop
     87 cmp %o0,90; bg .L19; nop
     88 add %o0,32,%o0
     89 .L19:
     90 cmp %o0,97; bl .L21; nop
     91 cmp %o0,122; bg .L21; nop
     92 ba .L18; nop
     93 .L21:
     94 mov %g0,%o0
     95 .L18:
     96 retl; nop
     97 .type isletter,#function
     98 .size isletter,.-isletter
     99 .global lookup
    100 .align 4
    101 lookup:
    102 save %sp,-96,%sp
    103 ld [%i1],%i4
    104 cmp %i4,%g0; be .L24; nop
    105 mov %i0,%o0
    106 ld [%i1],%i4
    107 ld [%i4+12],%o1
    108 call strcmp; nop
    109 mov %o0,%i5
    110 cmp %i5,0; bge .L26; nop
    111 mov %i0,%o0
    112 ld [%i1],%i4
    113 add %i4,4,%o1
    114 call lookup; nop
    115 mov %o0,%i0
    116 ba .L23; nop
    117 .L26:
    118 cmp %i5,0; ble .L28; nop
    119 mov %i0,%o0
    120 ld [%i1],%i4
    121 add %i4,8,%o1
    122 call lookup; nop
    123 mov %o0,%i0
    124 ba .L23; nop
    125 .L28:
    126 ld [%i1],%i0
    127 ba .L23; nop
    128 .L24:
    129 set next,%i4
    130 ld [%i4],%i4
    131 cmp %i4,2000; bl .L30; nop
    132 set .L32,%o0
    133 call err; nop
    134 .L30:
    135 set next,%i4
    136 ld [%i4],%i4
    137 sll %i4,4,%i4
    138 set words,%i3
    139 st %g0,[%i4+%i3]
    140 set next,%i4
    141 ld [%i4],%i4
    142 sll %i4,4,%i4
    143 set words+8,%i2
    144 st %g0,[%i4+%i2]
    145 set words+4,%i2
    146 st %g0,[%i4+%i2]
    147 mov %i0,%o0
    148 call strlen; nop
    149 mov %o0,%i4
    150 add %i4,1,%o0
    151 call malloc; nop
    152 set next,%i3
    153 ld [%i3],%i3
    154 sll %i3,4,%i3
    155 set words+12,%i2
    156 st %o0,[%i3+%i2]
    157 set next,%i4
    158 ld [%i4],%i4
    159 sll %i4,4,%i4
    160 set words+12,%i3
    161 ld [%i4+%i3],%i4
    162 cmp %i4,%g0; bne .L36; nop
    163 set .L39,%o0
    164 call err; nop
    165 .L36:
    166 set next,%i4
    167 ld [%i4],%i4
    168 sll %i4,4,%i4
    169 set words+12,%i3
    170 ld [%i4+%i3],%o0
    171 mov %i0,%o1
    172 call strcpy; nop
    173 set next,%i4
    174 ld [%i4],%i3
    175 add %i3,1,%i2
    176 st %i2,[%i4]
    177 sll %i3,4,%i4
    178 set words,%i3
    179 add %i4,%i3,%i4
    180 st %i4,[%i1]
    181 mov %i4,%i0
    182 .L23:
    183 ret; restore
    184 .type lookup,#function
    185 .size lookup,.-lookup
    186 .global tprint
    187 .align 4
    188 tprint:
    189 save %sp,-96,%sp
    190 mov %i0,%i5
    191 cmp %i5,%g0; be .L42; nop
    192 ld [%i0+4],%o0
    193 call tprint; nop
    194 set .L44,%o0
    195 ld [%i0],%o1
    196 ld [%i0+12],%o2
    197 call printf; nop
    198 ld [%i0+8],%o0
    199 call tprint; nop
    200 .L42:
    201 mov %g0,%i0
    202 .L41:
    203 ret; restore
    204 .type tprint,#function
    205 .size tprint,.-tprint
    206 .global strcmp
    207 .align 4
    208 strcmp:
    209 save %sp,-96,%sp
    210 ba .L47; nop
    211 .L46:
    212 mov %i0,%i5
    213 add %i5,1,%i0
    214 ldsb [%i5],%i5
    215 cmp %i5,0; bne .L49; nop
    216 mov %g0,%i0
    217 ba .L45; nop
    218 .L49:
    219 add %i1,1,%i1
    220 .L47:
    221 ldsb [%i0],%i5
    222 ldsb [%i1],%i4
    223 cmp %i5,%i4; be .L46; nop
    224 ldsb [%i0],%i5
    225 cmp %i5,0; bne .L51; nop
    226 set -1,%i0
    227 ba .L45; nop
    228 .L51:
    229 ldsb [%i1],%i5
    230 cmp %i5,0; bne .L53; nop
    231 set 1,%i0
    232 ba .L45; nop
    233 .L53:
    234 ldsb [%i0],%i5
    235 ldsb [%i1],%i4
    236 sub %i5,%i4,%i0
    237 .L45:
    238 ret; restore
    239 .type strcmp,#function
    240 .size strcmp,.-strcmp
    241 .section ".bss"
    242 .global next
    243 .type next,#object
    244 .size next,4
    245 .common next,4,4
    246 .global words
    247 .type words,#object
    248 .size words,32000
    249 .common words,32000,4
    250 .section ".rodata"
    251 .align 1
    252 .L44:
    253 .byte 37
    254 .byte 100
    255 .byte 9
    256 .byte 37
    257 .byte 115
    258 .byte 10
    259 .byte 0
    260 .align 1
    261 .L39:
    262 .byte 111
    263 .byte 117
    264 .byte 116
    265 .byte 32
    266 .byte 111
    267 .byte 102
    268 .byte 32
    269 .byte 119
    270 .byte 111
    271 .byte 114
    272 .byte 100
    273 .byte 32
    274 .byte 115
    275 .byte 116
    276 .byte 111
    277 .byte 114
    278 .byte 97
    279 .byte 103
    280 .byte 101
    281 .byte 0
    282 .align 1
    283 .L32:
    284 .byte 111
    285 .byte 117
    286 .byte 116
    287 .byte 32
    288 .byte 111
    289 .byte 102
    290 .byte 32
    291 .byte 110
    292 .byte 111
    293 .byte 100
    294 .byte 101
    295 .byte 32
    296 .byte 115
    297 .byte 116
    298 .byte 111
    299 .byte 114
    300 .byte 97
    301 .byte 103
    302 .byte 101
    303 .byte 0
    304 .align 1
    305 .L6:
    306 .byte 63
    307 .byte 32
    308 .byte 37
    309 .byte 115
    310 .byte 10
    311 .byte 0