OpenCores
URL https://opencores.org/ocsvn/yacc/yacc/trunk

Subversion Repositories yacc

[/] [yacc/] [trunk/] [syn/] [c_src/] [reed solomon/] [rs_tak.s] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tak.sugawa
        .file   1 "rs_tak.c"
2
 
3
 # -G value = 8, Cpu = 3000, ISA = 1
4
 # GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release) (sde) [AL 1.1, MM 40] Algorithmics SDE-MIPS v4.0.5 compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
5
 # options passed:  -O2 -O -Wall
6
 # options enabled:  -fdefer-pop -fomit-frame-pointer -fthread-jumps
7
 # -fpeephole -finline -fkeep-static-consts -fpcc-struct-return
8
 # -fdelayed-branch -fcommon -fverbose-asm -fgnu-linker -falias-check
9
 # -fargument-alias -msplit-addresses -mgas -mrnames -mgpOPT -mgpopt
10
 # -membedded-data -meb -mmad -marg32 -mdebugh -mdebugi -mmadd -mno-gpconst
11
 # -mcpu=3000
12
 
13
gcc2_compiled.:
14
        .sdata
15
        .align  0
16
        .align  2
17
lfsr_state:
18
        .size   lfsr_state,4
19
        .word   1
20
        .globl  Pp
21
        .data
22
        .align  0
23
        .align  2
24
Pp:
25
        .size   Pp,36
26
        .word   1
27
        .word   0
28
        .word   1
29
        .word   1
30
        .word   1
31
        .word   0
32
        .word   0
33
        .word   0
34
        .word   1
35
        .rdata
36
        .align  0
37
        .align  2
38
.LC0:
39
        .ascii  "It takes very long time for RTL Simulation.\000"
40
        .align  2
41
.LC1:
42
        .ascii  "Reed-Solomon code is \000"
43
        .align  2
44
.LC2:
45
        .ascii  " \000"
46
        .align  2
47
.LC3:
48
        .ascii  "over GF(\000"
49
        .align  2
50
.LC4:
51
        .ascii  ")\n\000"
52
        .align  2
53
.LC5:
54
        .ascii  "i=\000"
55
        .align  2
56
.LC6:
57
        .ascii  "\n\000"
58
        .align  2
59
.LC7:
60
        .ascii  "test erasures: \000"
61
        .align  2
62
.LC8:
63
        .ascii  "errors \000"
64
        .align  2
65
.LC9:
66
        .ascii  "Warning: \000"
67
        .align  2
68
.LC10:
69
        .ascii  "errors and \000"
70
        .align  2
71
.LC11:
72
        .ascii  "erasures exceeds the correction ability of the code\n\000"
73
        .align  2
74
.LC12:
75
        .ascii  "Init_RS Done\000"
76
        .align  2
77
.LC13:
78
        .ascii  "\n"
79
        .ascii  " Trial \000"
80
        .align  2
81
.LC14:
82
        .ascii  " erasing:\000"
83
        .align  2
84
.LC15:
85
        .ascii  " erroring:\000"
86
        .align  2
87
.LC16:
88
        .ascii  "errs + erasures corrected: \000"
89
        .align  2
90
.LC17:
91
        .ascii  "RS decoder detected failure\n\000"
92
        .align  2
93
.LC18:
94
        .ascii  " Undetected decoding failure!\n\000"
95
        .align  2
96
.LC19:
97
        .ascii  "Compare Done. Passed.\n\000"
98
        .align  2
99
.LC20:
100
        .ascii  "\n\n\n"
101
        .ascii  " Total Trials: \000"
102
        .align  2
103
.LC21:
104
        .ascii  " decoding failures: \000"
105
        .align  2
106
.LC22:
107
        .ascii  " not detected by decoder: \000"
108
        .align  2
109
.LC23:
110
        .ascii  "$finish\000"
111
 
112
        .comm   Alpha_to,1024
113
 
114
        .comm   Index_of,1024
115
 
116
        .comm   Gg,132
117
 
118
        .comm   data,255
119
 
120
        .comm   tdata,255
121
 
122
        .comm   ddata,255
123
 
124
        .comm   eras_pos,1020
125
 
126
        .text
127
        .text
128
        .align  2
129
        .globl  print_uart
130
        .ent    print_uart
131
print_uart:
132
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
133
        .mask   0x00000000,0
134
        .fmask  0x00000000,0
135
        lbu     $v0,0($a0)
136
        beq     $v0,$zero,.L3
137
        li      $v1,16380                       # 0x00003ffc
138
.L5:
139
        #.set   volatile
140
        lw      $v0,0($v1)
141
        #.set   novolatile
142
        andi    $v0,$v0,0x0100
143
        bne     $v0,$zero,.L5
144
        lbu     $v0,0($a0)
145
        #.set   volatile
146
        sb      $v0,0($v1)
147
        #.set   novolatile
148
        addu    $a0,$a0,1
149
        lbu     $v0,0($a0)
150
        bne     $v0,$zero,.L5
151
.L3:
152
        j       $ra
153
        .end    print_uart
154
        .size   print_uart,.-print_uart
155
        .align  2
156
        .globl  putc_uart
157
        .ent    putc_uart
158
putc_uart:
159
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
160
        .mask   0x00000000,0
161
        .fmask  0x00000000,0
162
        andi    $a0,$a0,0x00ff
163
        li      $v1,16380                       # 0x00003ffc
164
.L11:
165
        #.set   volatile
166
        lw      $v0,0($v1)
167
        #.set   novolatile
168
        andi    $v0,$v0,0x0100
169
        .set    noreorder
170
        .set    nomacro
171
        bne     $v0,$zero,.L11
172
        li      $v0,16380                       # 0x00003ffc
173
        .set    macro
174
        .set    reorder
175
 
176
        #.set   volatile
177
        sb      $a0,0($v0)
178
        #.set   novolatile
179
        j       $ra
180
        .end    putc_uart
181
        .size   putc_uart,.-putc_uart
182
        .align  2
183
        .globl  read_uart
184
        .ent    read_uart
185
read_uart:
186
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
187
        .mask   0x00000000,0
188
        .fmask  0x00000000,0
189
        li      $v0,16380                       # 0x00003ffc
190
        #.set   volatile
191
        lw      $v0,0($v0)
192
        #.set   novolatile
193
        .set    noreorder
194
        .set    nomacro
195
        j       $ra
196
        andi    $v0,$v0,0x00ff
197
        .set    macro
198
        .set    reorder
199
 
200
        .end    read_uart
201
        .size   read_uart,.-read_uart
202
        .align  2
203
        .globl  print
204
        .ent    print
205
print:
206
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
207
        .mask   0x00000000,0
208
        .fmask  0x00000000,0
209
        lbu     $v0,0($a0)
210
        .set    noreorder
211
        .set    nomacro
212
        beq     $v0,$zero,.L18
213
        move    $v1,$v0
214
        .set    macro
215
        .set    reorder
216
 
217
        li      $a1,16368                       # 0x00003ff0
218
        move    $v0,$v1
219
.L21:
220
        #.set   volatile
221
        sb      $v0,0($a1)
222
        #.set   novolatile
223
        addu    $a0,$a0,1
224
        lbu     $v1,0($a0)
225
        .set    noreorder
226
        .set    nomacro
227
        bne     $v1,$zero,.L21
228
        move    $v0,$v1
229
        .set    macro
230
        .set    reorder
231
 
232
.L18:
233
        li      $v0,16368                       # 0x00003ff0
234
        #.set   volatile
235
        sb      $zero,0($v0)
236
        #.set   novolatile
237
        j       $ra
238
        .end    print
239
        .size   print,.-print
240
        .align  2
241
        .globl  print_char
242
        .ent    print_char
243
print_char:
244
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
245
        .mask   0x00000000,0
246
        .fmask  0x00000000,0
247
        andi    $a0,$a0,0x00ff
248
        li      $v0,16368                       # 0x00003ff0
249
        #.set   volatile
250
        sb      $a0,0($v0)
251
        #.set   novolatile
252
        j       $ra
253
        .end    print_char
254
        .size   print_char,.-print_char
255
        .align  2
256
        .globl  print_uchar
257
        .ent    print_uchar
258
print_uchar:
259
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
260
        .mask   0x00000000,0
261
        .fmask  0x00000000,0
262
        andi    $a0,$a0,0x00ff
263
        li      $v0,16369                       # 0x00003ff1
264
        #.set   volatile
265
        sb      $a0,0($v0)
266
        #.set   novolatile
267
        j       $ra
268
        .end    print_uchar
269
        .size   print_uchar,.-print_uchar
270
        .text
271
        .align  2
272
        .globl  random
273
        .ent    random
274
random:
275
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
276
        .mask   0x00000000,0
277
        .fmask  0x00000000,0
278
        lw      $v1,lfsr_state
279
        andi    $v0,$v1,0x0001
280
        .set    noreorder
281
        .set    nomacro
282
        beq     $v0,$zero,.L25
283
        srl     $v0,$v1,1
284
        .set    macro
285
        .set    reorder
286
 
287
        li      $v1,-2147483648                 # 0x80000000
288
        ori     $v1,$v1,0x0057
289
        .set    noreorder
290
        .set    nomacro
291
        b       .L27
292
        xor     $v0,$v0,$v1
293
        .set    macro
294
        .set    reorder
295
 
296
.L25:
297
        lw      $v0,lfsr_state
298
        srl     $v0,$v0,1
299
.L27:
300
        sw      $v0,lfsr_state
301
        lw      $v0,lfsr_state
302
        j       $ra
303
        .end    random
304
        .size   random,.-random
305
        .align  2
306
        .globl  print_num
307
        .ent    print_num
308
print_num:
309
        .frame  $sp,40,$ra              # vars= 0, regs= 5/0, args= 16, extra= 0
310
        .mask   0x800f0000,-8
311
        .fmask  0x00000000,0
312
        subu    $sp,$sp,40
313
        sw      $ra,32($sp)
314
        sw      $s3,28($sp)
315
        sw      $s2,24($sp)
316
        sw      $s1,20($sp)
317
        sw      $s0,16($sp)
318
        move    $s2,$a0
319
        li      $s1,1000                        # 0x000003e8
320
        li      $s3,-858993459                  # 0xcccccccd
321
.L32:
322
        divu    $s0,$s2,$s1
323
        addu    $a0,$s0,48
324
        .set    noreorder
325
        .set    nomacro
326
        jal     putc_uart
327
        andi    $a0,$a0,0x00ff
328
        .set    macro
329
        .set    reorder
330
 
331
        mult    $s0,$s1
332
        mflo    $v0
333
        subu    $s2,$s2,$v0
334
        multu   $s1,$s3
335
        mfhi    $v0
336
        srl     $s1,$v0,3
337
        bne     $s1,$zero,.L32
338
        lw      $ra,32($sp)
339
        lw      $s3,28($sp)
340
        lw      $s2,24($sp)
341
        lw      $s1,20($sp)
342
        lw      $s0,16($sp)
343
        .set    noreorder
344
        .set    nomacro
345
        j       $ra
346
        addu    $sp,$sp,40
347
        .set    macro
348
        .set    reorder
349
 
350
        .end    print_num
351
        .size   print_num,.-print_num
352
        .align  2
353
        .globl  memcpy
354
        .ent    memcpy
355
memcpy:
356
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
357
        .mask   0x00000000,0
358
        .fmask  0x00000000,0
359
        .set    noreorder
360
        .set    nomacro
361
        beq     $a2,$zero,.L36
362
        move    $v1,$zero
363
        .set    macro
364
        .set    reorder
365
 
366
.L38:
367
        lbu     $v0,0($a1)
368
        sb      $v0,0($a0)
369
        addu    $a1,$a1,1
370
        addu    $v1,$v1,1
371
        sltu    $v0,$v1,$a2
372
        .set    noreorder
373
        .set    nomacro
374
        bne     $v0,$zero,.L38
375
        addu    $a0,$a0,1
376
        .set    macro
377
        .set    reorder
378
 
379
.L36:
380
        j       $ra
381
        .end    memcpy
382
        .size   memcpy,.-memcpy
383
        .align  2
384
        .globl  memcmp
385
        .ent    memcmp
386
memcmp:
387
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
388
        .mask   0x00000000,0
389
        .fmask  0x00000000,0
390
        .set    noreorder
391
        .set    nomacro
392
        beq     $a2,$zero,.L42
393
        move    $a3,$zero
394
        .set    macro
395
        .set    reorder
396
 
397
.L44:
398
        lbu     $v1,0($a0)
399
        lbu     $v0,0($a1)
400
        addu    $a1,$a1,1
401
        .set    noreorder
402
        .set    nomacro
403
        beq     $v1,$v0,.L43
404
        addu    $a0,$a0,1
405
        .set    macro
406
        .set    reorder
407
 
408
        .set    noreorder
409
        .set    nomacro
410
        b       .L47
411
        li      $v0,1                   # 0x00000001
412
        .set    macro
413
        .set    reorder
414
 
415
.L43:
416
        addu    $a3,$a3,1
417
        sltu    $v0,$a3,$a2
418
        bne     $v0,$zero,.L44
419
.L42:
420
        move    $v0,$zero
421
.L47:
422
        j       $ra
423
        .end    memcmp
424
        .size   memcmp,.-memcmp
425
        .text
426
        .align  2
427
        .globl  init_rs
428
        .ent    init_rs
429
init_rs:
430
        .frame  $sp,24,$ra              # vars= 0, regs= 1/0, args= 16, extra= 0
431
        .mask   0x80000000,-8
432
        .fmask  0x00000000,0
433
        subu    $sp,$sp,24
434
        sw      $ra,16($sp)
435
        jal     generate_gf
436
        jal     gen_poly
437
        lw      $ra,16($sp)
438
        .set    noreorder
439
        .set    nomacro
440
        j       $ra
441
        addu    $sp,$sp,24
442
        .set    macro
443
        .set    reorder
444
 
445
        .end    init_rs
446
        .size   init_rs,.-init_rs
447
        .align  2
448
        .globl  generate_gf
449
        .ent    generate_gf
450
generate_gf:
451
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
452
        .mask   0x00000000,0
453
        .fmask  0x00000000,0
454
        li      $a2,1                   # 0x00000001
455
        lui     $v0,%hi(Alpha_to+32) # high
456
        sw      $zero,%lo(Alpha_to+32)($v0)
457
        move    $a1,$zero
458
        lui     $v0,%hi(Alpha_to) # high
459
        addiu   $a0,$v0,%lo(Alpha_to) # low
460
        lui     $v0,%hi(Index_of) # high
461
        addiu   $t0,$v0,%lo(Index_of) # low
462
        lui     $v0,%hi(Pp) # high
463
        addiu   $a3,$v0,%lo(Pp) # low
464
.L63:
465
        sll     $v1,$a1,2
466
        addu    $v0,$v1,$a0
467
        sw      $a2,0($v0)
468
        sll     $v0,$a2,2
469
        addu    $v0,$v0,$t0
470
        sw      $a1,0($v0)
471
        addu    $v1,$v1,$a3
472
        lw      $v0,0($v1)
473
        beq     $v0,$zero,.L64
474
        lw      $v0,32($a0)
475
        xor     $v0,$a2,$v0
476
        sw      $v0,32($a0)
477
.L64:
478
        addu    $a1,$a1,1
479
        slt     $v0,$a1,8
480
        .set    noreorder
481
        .set    nomacro
482
        bne     $v0,$zero,.L63
483
        sll     $a2,$a2,1
484
        .set    macro
485
        .set    reorder
486
 
487
        lui     $v1,%hi(Index_of) # high
488
        addiu   $v1,$v1,%lo(Index_of) # low
489
        lui     $v0,%hi(Alpha_to+32) # high
490
        lw      $v0,%lo(Alpha_to+32)($v0)
491
        sll     $v0,$v0,2
492
        addu    $v0,$v0,$v1
493
        li      $v1,8                   # 0x00000008
494
        sw      $v1,0($v0)
495
        sra     $a2,$a2,1
496
        li      $a1,9                   # 0x00000009
497
        lui     $v0,%hi(Alpha_to) # high
498
        addiu   $a3,$v0,%lo(Alpha_to) # low
499
        lui     $v0,%hi(Index_of) # high
500
        addiu   $t0,$v0,%lo(Index_of) # low
501
        addu    $v0,$a1,-1
502
.L74:
503
        sll     $v0,$v0,2
504
        addu    $v0,$v0,$a3
505
        lw      $v1,0($v0)
506
        slt     $v0,$v1,$a2
507
        .set    noreorder
508
        .set    nomacro
509
        bne     $v0,$zero,.L70
510
        sll     $v0,$a1,2
511
        .set    macro
512
        .set    reorder
513
 
514
        addu    $v0,$v0,$a3
515
        xor     $v1,$a2,$v1
516
        sll     $v1,$v1,1
517
        lw      $a0,32($a3)
518
        .set    noreorder
519
        .set    nomacro
520
        b       .L73
521
        xor     $v1,$v1,$a0
522
        .set    macro
523
        .set    reorder
524
 
525
.L70:
526
        addu    $v0,$v0,$a3
527
        addu    $v1,$a1,-1
528
        sll     $v1,$v1,2
529
        addu    $v1,$v1,$a3
530
        lw      $v1,0($v1)
531
        sll     $v1,$v1,1
532
.L73:
533
        sw      $v1,0($v0)
534
        sll     $v0,$a1,2
535
        addu    $v0,$v0,$a3
536
        lw      $v0,0($v0)
537
        sll     $v0,$v0,2
538
        addu    $v0,$v0,$t0
539
        sw      $a1,0($v0)
540
        addu    $a1,$a1,1
541
        slt     $v0,$a1,255
542
        .set    noreorder
543
        .set    nomacro
544
        bne     $v0,$zero,.L74
545
        addu    $v0,$a1,-1
546
        .set    macro
547
        .set    reorder
548
 
549
        lui     $v0,%hi(Index_of) # high
550
        li      $v1,255                 # 0x000000ff
551
        sw      $v1,%lo(Index_of)($v0)
552
        lui     $v0,%hi(Alpha_to+1020) # high
553
        .set    noreorder
554
        .set    nomacro
555
        j       $ra
556
        sw      $zero,%lo(Alpha_to+1020)($v0)
557
        .set    macro
558
        .set    reorder
559
 
560
        .end    generate_gf
561
        .size   generate_gf,.-generate_gf
562
        .align  2
563
        .globl  gen_poly
564
        .ent    gen_poly
565
gen_poly:
566
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
567
        .mask   0x00000000,0
568
        .fmask  0x00000000,0
569
        lui     $v1,%hi(Gg) # high
570
        addiu   $a0,$v1,%lo(Gg) # low
571
        lui     $v0,%hi(Alpha_to+4) # high
572
        lw      $v0,%lo(Alpha_to+4)($v0)
573
        sw      $v0,%lo(Gg)($v1)
574
        li      $v0,1                   # 0x00000001
575
        sw      $v0,4($a0)
576
        li      $a2,2                   # 0x00000002
577
        move    $t2,$v1
578
        move    $v0,$v1
579
        addiu   $a3,$v0,%lo(Gg) # low
580
        li      $t3,1                   # 0x00000001
581
        lui     $v0,%hi(Index_of) # high
582
        addiu   $t1,$v0,%lo(Index_of) # low
583
        lui     $v0,%hi(Alpha_to) # high
584
        addiu   $t0,$v0,%lo(Alpha_to) # low
585
        sll     $v0,$a2,2
586
.L108:
587
        addu    $v0,$v0,$a3
588
        addu    $a1,$a2,-1
589
        .set    noreorder
590
        .set    nomacro
591
        blez    $a1,.L81
592
        sw      $t3,0($v0)
593
        .set    macro
594
        .set    reorder
595
 
596
        sll     $v0,$a1,2
597
.L105:
598
        addu    $v0,$v0,$a3
599
        lw      $v0,0($v0)
600
        .set    noreorder
601
        .set    nomacro
602
        beq     $v0,$zero,.L84
603
        sll     $v0,$v0,2
604
        .set    macro
605
        .set    reorder
606
 
607
        addu    $v0,$v0,$t1
608
        lw      $v0,0($v0)
609
        addu    $v1,$a2,$v0
610
        slt     $v0,$v1,255
611
        .set    noreorder
612
        .set    nomacro
613
        bne     $v0,$zero,.L103
614
        sll     $a0,$a1,2
615
        .set    macro
616
        .set    reorder
617
 
618
        addu    $v1,$v1,-255
619
.L104:
620
        sra     $v0,$v1,8
621
        andi    $v1,$v1,0x00ff
622
        addu    $v1,$v0,$v1
623
        slt     $v0,$v1,255
624
        .set    noreorder
625
        .set    nomacro
626
        beq     $v0,$zero,.L104
627
        addu    $v1,$v1,-255
628
        .set    macro
629
        .set    reorder
630
 
631
        addu    $v1,$v1,255
632
        sll     $a0,$a1,2
633
.L103:
634
        addu    $a0,$a0,$a3
635
        addu    $v0,$a1,-1
636
        sll     $v0,$v0,2
637
        addu    $v0,$v0,$a3
638
        sll     $v1,$v1,2
639
        addu    $v1,$v1,$t0
640
        lw      $v0,0($v0)
641
        lw      $v1,0($v1)
642
        xor     $v0,$v0,$v1
643
        .set    noreorder
644
        .set    nomacro
645
        b       .L82
646
        sw      $v0,0($a0)
647
        .set    macro
648
        .set    reorder
649
 
650
.L84:
651
        sll     $v0,$a1,2
652
        addu    $v0,$v0,$a3
653
        addu    $v1,$a1,-1
654
        sll     $v1,$v1,2
655
        addu    $v1,$v1,$a3
656
        lw      $v1,0($v1)
657
        sw      $v1,0($v0)
658
.L82:
659
        addu    $a1,$a1,-1
660
        .set    noreorder
661
        .set    nomacro
662
        bgtz    $a1,.L105
663
        sll     $v0,$a1,2
664
        .set    macro
665
        .set    reorder
666
 
667
.L81:
668
        lw      $v0,%lo(Gg)($t2)
669
        sll     $v0,$v0,2
670
        addu    $v0,$v0,$t1
671
        lw      $v0,0($v0)
672
        addu    $v1,$a2,$v0
673
        slt     $v0,$v1,255
674
        .set    noreorder
675
        .set    nomacro
676
        bne     $v0,$zero,.L106
677
        sll     $v0,$v1,2
678
        .set    macro
679
        .set    reorder
680
 
681
        addu    $v1,$v1,-255
682
.L107:
683
        sra     $v0,$v1,8
684
        andi    $v1,$v1,0x00ff
685
        addu    $v1,$v0,$v1
686
        slt     $v0,$v1,255
687
        .set    noreorder
688
        .set    nomacro
689
        beq     $v0,$zero,.L107
690
        addu    $v1,$v1,-255
691
        .set    macro
692
        .set    reorder
693
 
694
        addu    $v1,$v1,255
695
        sll     $v0,$v1,2
696
.L106:
697
        addu    $v0,$v0,$t0
698
        lw      $v0,0($v0)
699
        sw      $v0,%lo(Gg)($t2)
700
        addu    $a2,$a2,1
701
        slt     $v0,$a2,33
702
        .set    noreorder
703
        .set    nomacro
704
        bne     $v0,$zero,.L108
705
        sll     $v0,$a2,2
706
        .set    macro
707
        .set    reorder
708
 
709
        move    $a2,$zero
710
        lui     $v0,%hi(Gg) # high
711
        addiu   $a1,$v0,%lo(Gg) # low
712
        lui     $v0,%hi(Index_of) # high
713
        addiu   $a0,$v0,%lo(Index_of) # low
714
.L101:
715
        sll     $v1,$a2,2
716
        addu    $v1,$v1,$a1
717
        lw      $v0,0($v1)
718
        sll     $v0,$v0,2
719
        addu    $v0,$v0,$a0
720
        lw      $v0,0($v0)
721
        sw      $v0,0($v1)
722
        addu    $a2,$a2,1
723
        slt     $v0,$a2,33
724
        bne     $v0,$zero,.L101
725
        j       $ra
726
        .end    gen_poly
727
        .size   gen_poly,.-gen_poly
728
        .align  2
729
        .globl  encode_rs
730
        .ent    encode_rs
731
encode_rs:
732
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
733
        .mask   0x00000000,0
734
        .fmask  0x00000000,0
735
        move    $t6,$a0
736
        li      $v1,31                  # 0x0000001f
737
.L113:
738
        addu    $v0,$a1,$v1
739
        addu    $v1,$v1,-1
740
        .set    noreorder
741
        .set    nomacro
742
        bgez    $v1,.L113
743
        sb      $zero,0($v0)
744
        .set    macro
745
        .set    reorder
746
 
747
        li      $t0,222                 # 0x000000de
748
        lui     $v0,%hi(Index_of) # high
749
        addiu   $t5,$v0,%lo(Index_of) # low
750
        li      $t2,255                 # 0x000000ff
751
        lui     $t4,%hi(Gg) # high
752
        move    $v0,$t4
753
        addiu   $t3,$v0,%lo(Gg) # low
754
        lui     $v0,%hi(Alpha_to) # high
755
        addiu   $t1,$v0,%lo(Alpha_to) # low
756
.L118:
757
        addu    $v0,$t6,$t0
758
        lbu     $v0,0($v0)
759
        lbu     $v1,31($a1)
760
        xor     $v0,$v0,$v1
761
        sll     $v0,$v0,2
762
        addu    $v0,$v0,$t5
763
        lw      $a3,0($v0)
764
        .set    noreorder
765
        .set    nomacro
766
        beq     $a3,$t2,.L119
767
        li      $a2,31                  # 0x0000001f
768
        .set    macro
769
        .set    reorder
770
 
771
        sll     $v0,$a2,2
772
.L146:
773
        addu    $v0,$v0,$t3
774
        lw      $v0,0($v0)
775
        .set    noreorder
776
        .set    nomacro
777
        beq     $v0,$t2,.L124
778
        addu    $v1,$a3,$v0
779
        .set    macro
780
        .set    reorder
781
 
782
        slt     $v0,$v1,255
783
        .set    noreorder
784
        .set    nomacro
785
        bne     $v0,$zero,.L144
786
        addu    $a0,$a1,$a2
787
        .set    macro
788
        .set    reorder
789
 
790
        addu    $v1,$v1,-255
791
.L145:
792
        sra     $v0,$v1,8
793
        andi    $v1,$v1,0x00ff
794
        addu    $v1,$v0,$v1
795
        slt     $v0,$v1,255
796
        .set    noreorder
797
        .set    nomacro
798
        beq     $v0,$zero,.L145
799
        addu    $v1,$v1,-255
800
        .set    macro
801
        .set    reorder
802
 
803
        addu    $v1,$v1,255
804
        addu    $a0,$a1,$a2
805
.L144:
806
        sll     $v0,$v1,2
807
        addu    $v0,$v0,$t1
808
        lbu     $v1,-1($a0)
809
        lbu     $v0,3($v0)
810
        xor     $v1,$v1,$v0
811
        .set    noreorder
812
        .set    nomacro
813
        b       .L122
814
        sb      $v1,0($a0)
815
        .set    macro
816
        .set    reorder
817
 
818
.L124:
819
        addu    $v0,$a1,$a2
820
        lbu     $v1,-1($v0)
821
        sb      $v1,0($v0)
822
.L122:
823
        addu    $a2,$a2,-1
824
        .set    noreorder
825
        .set    nomacro
826
        bgtz    $a2,.L146
827
        sll     $v0,$a2,2
828
        .set    macro
829
        .set    reorder
830
 
831
        lw      $v0,%lo(Gg)($t4)
832
        addu    $v1,$a3,$v0
833
        slt     $v0,$v1,255
834
        .set    noreorder
835
        .set    nomacro
836
        bne     $v0,$zero,.L147
837
        sll     $v0,$v1,2
838
        .set    macro
839
        .set    reorder
840
 
841
        addu    $v1,$v1,-255
842
.L148:
843
        sra     $v0,$v1,8
844
        andi    $v1,$v1,0x00ff
845
        addu    $v1,$v0,$v1
846
        slt     $v0,$v1,255
847
        .set    noreorder
848
        .set    nomacro
849
        beq     $v0,$zero,.L148
850
        addu    $v1,$v1,-255
851
        .set    macro
852
        .set    reorder
853
 
854
        addu    $v1,$v1,255
855
        sll     $v0,$v1,2
856
.L147:
857
        addu    $v0,$v0,$t1
858
        lbu     $v0,3($v0)
859
        .set    noreorder
860
        .set    nomacro
861
        b       .L117
862
        sb      $v0,0($a1)
863
        .set    macro
864
        .set    reorder
865
 
866
.L119:
867
.L141:
868
        addu    $v0,$a1,$a2
869
        lbu     $v1,-1($v0)
870
        addu    $a2,$a2,-1
871
        .set    noreorder
872
        .set    nomacro
873
        bgtz    $a2,.L141
874
        sb      $v1,0($v0)
875
        .set    macro
876
        .set    reorder
877
 
878
        sb      $zero,0($a1)
879
.L117:
880
        addu    $t0,$t0,-1
881
        bgez    $t0,.L118
882
        .set    noreorder
883
        .set    nomacro
884
        j       $ra
885
        move    $v0,$zero
886
        .set    macro
887
        .set    reorder
888
 
889
        .end    encode_rs
890
        .size   encode_rs,.-encode_rs
891
        .align  2
892
        .globl  eras_dec_rs
893
        .ent    eras_dec_rs
894
eras_dec_rs:
895
        .frame  $sp,2104,$ra            # vars= 2096, regs= 2/0, args= 0, extra= 0
896
        .mask   0x00030000,-4
897
        .fmask  0x00000000,0
898
        subu    $sp,$sp,2104
899
        sw      $s1,2100($sp)
900
        sw      $s0,2096($sp)
901
        move    $s0,$a0
902
        li      $a3,254                 # 0x000000fe
903
        lui     $v0,%hi(Index_of) # high
904
        addiu   $a0,$v0,%lo(Index_of) # low
905
.L153:
906
        sll     $v0,$a3,2
907
        addu    $v1,$sp,$v0
908
        addu    $v0,$s0,$a3
909
        lbu     $v0,0($v0)
910
        sll     $v0,$v0,2
911
        addu    $v0,$v0,$a0
912
        lw      $v0,0($v0)
913
        addu    $a3,$a3,-1
914
        .set    noreorder
915
        .set    nomacro
916
        bgez    $a3,.L153
917
        sw      $v0,0($v1)
918
        .set    macro
919
        .set    reorder
920
 
921
        move    $a0,$zero
922
        li      $a3,1                   # 0x00000001
923
        li      $t3,255                 # 0x000000ff
924
        lui     $v0,%hi(Alpha_to) # high
925
        addiu   $t2,$v0,%lo(Alpha_to) # low
926
        lui     $v0,%hi(Index_of) # high
927
        addiu   $t4,$v0,%lo(Index_of) # low
928
.L158:
929
        move    $t1,$zero
930
        move    $t0,$t1
931
        sll     $v0,$t0,2
932
.L356:
933
        addu    $v0,$sp,$v0
934
        lw      $v0,0($v0)
935
        beq     $v0,$t3,.L161
936
        mult    $a3,$t0
937
        mflo    $s1
938
        addu    $v1,$s1,$v0
939
        slt     $v0,$v1,255
940
        .set    noreorder
941
        .set    nomacro
942
        bne     $v0,$zero,.L354
943
        sll     $v0,$v1,2
944
        .set    macro
945
        .set    reorder
946
 
947
        addu    $v1,$v1,-255
948
.L355:
949
        sra     $v0,$v1,8
950
        andi    $v1,$v1,0x00ff
951
        addu    $v1,$v0,$v1
952
        slt     $v0,$v1,255
953
        .set    noreorder
954
        .set    nomacro
955
        beq     $v0,$zero,.L355
956
        addu    $v1,$v1,-255
957
        .set    macro
958
        .set    reorder
959
 
960
        addu    $v1,$v1,255
961
        sll     $v0,$v1,2
962
.L354:
963
        addu    $v0,$v0,$t2
964
        lw      $v0,0($v0)
965
        xor     $t1,$t1,$v0
966
.L161:
967
        addu    $t0,$t0,1
968
        slt     $v0,$t0,255
969
        .set    noreorder
970
        .set    nomacro
971
        bne     $v0,$zero,.L356
972
        sll     $v0,$t0,2
973
        .set    macro
974
        .set    reorder
975
 
976
        sll     $v0,$a3,2
977
        addu    $v1,$sp,$v0
978
        sll     $v0,$t1,2
979
        addu    $v0,$v0,$t4
980
        lw      $v0,0($v0)
981
        sw      $v0,1160($v1)
982
        addu    $a3,$a3,1
983
        slt     $v0,$a3,33
984
        .set    noreorder
985
        .set    nomacro
986
        bne     $v0,$zero,.L158
987
        or      $a0,$a0,$t1
988
        .set    macro
989
        .set    reorder
990
 
991
        .set    noreorder
992
        .set    nomacro
993
        bne     $a0,$zero,.L171
994
        li      $v1,31                  # 0x0000001f
995
        .set    macro
996
        .set    reorder
997
 
998
        .set    noreorder
999
        .set    nomacro
1000
        b       .L345
1001
        move    $v0,$zero
1002
        .set    macro
1003
        .set    reorder
1004
 
1005
.L171:
1006
        addu    $a0,$sp,1028
1007
.L175:
1008
        sll     $v0,$v1,2
1009
        addu    $v0,$a0,$v0
1010
        addu    $v1,$v1,-1
1011
        .set    noreorder
1012
        .set    nomacro
1013
        bgez    $v1,.L175
1014
        sw      $zero,0($v0)
1015
        .set    macro
1016
        .set    reorder
1017
 
1018
        li      $v0,1                   # 0x00000001
1019
        .set    noreorder
1020
        .set    nomacro
1021
        blez    $a2,.L177
1022
        sw      $v0,1024($sp)
1023
        .set    macro
1024
        .set    reorder
1025
 
1026
        lui     $v1,%hi(Alpha_to) # high
1027
        addiu   $v1,$v1,%lo(Alpha_to) # low
1028
        lw      $v0,0($a1)
1029
        sll     $v0,$v0,2
1030
        addu    $v0,$v0,$v1
1031
        lw      $v0,0($v0)
1032
        sw      $v0,1028($sp)
1033
        li      $a3,1                   # 0x00000001
1034
        slt     $v0,$a3,$a2
1035
        .set    noreorder
1036
        .set    nomacro
1037
        beq     $v0,$zero,.L177
1038
        lui     $v0,%hi(Index_of) # high
1039
        .set    macro
1040
        .set    reorder
1041
 
1042
        addiu   $t6,$v0,%lo(Index_of) # low
1043
        addu    $t2,$sp,1024
1044
        li      $t5,255                 # 0x000000ff
1045
        lui     $v0,%hi(Alpha_to) # high
1046
        addiu   $t4,$v0,%lo(Alpha_to) # low
1047
        sll     $v0,$a3,2
1048
.L359:
1049
        addu    $v0,$v0,$a1
1050
        lw      $t3,0($v0)
1051
        addu    $t0,$a3,1
1052
        .set    noreorder
1053
        .set    nomacro
1054
        blez    $t0,.L180
1055
        addu    $v0,$t0,-1
1056
        .set    macro
1057
        .set    reorder
1058
 
1059
.L358:
1060
        sll     $v0,$v0,2
1061
        addu    $v0,$t2,$v0
1062
        lw      $v0,0($v0)
1063
        sll     $v0,$v0,2
1064
        addu    $v0,$v0,$t6
1065
        lw      $t1,0($v0)
1066
        .set    noreorder
1067
        .set    nomacro
1068
        beq     $t1,$t5,.L184
1069
        addu    $v1,$t3,$t1
1070
        .set    macro
1071
        .set    reorder
1072
 
1073
        slt     $v0,$v1,255
1074
        bne     $v0,$zero,.L189
1075
        addu    $v1,$v1,-255
1076
.L357:
1077
        sra     $v0,$v1,8
1078
        andi    $v1,$v1,0x00ff
1079
        addu    $v1,$v0,$v1
1080
        slt     $v0,$v1,255
1081
        .set    noreorder
1082
        .set    nomacro
1083
        beq     $v0,$zero,.L357
1084
        addu    $v1,$v1,-255
1085
        .set    macro
1086
        .set    reorder
1087
 
1088
        addu    $v1,$v1,255
1089
.L189:
1090
        sll     $a0,$t0,2
1091
        addu    $a0,$t2,$a0
1092
        sll     $v0,$v1,2
1093
        addu    $v0,$v0,$t4
1094
        lw      $v1,0($a0)
1095
        lw      $v0,0($v0)
1096
        xor     $v1,$v1,$v0
1097
        sw      $v1,0($a0)
1098
.L184:
1099
        addu    $t0,$t0,-1
1100
        .set    noreorder
1101
        .set    nomacro
1102
        bgtz    $t0,.L358
1103
        addu    $v0,$t0,-1
1104
        .set    macro
1105
        .set    reorder
1106
 
1107
.L180:
1108
        addu    $a3,$a3,1
1109
        slt     $v0,$a3,$a2
1110
        .set    noreorder
1111
        .set    nomacro
1112
        bne     $v0,$zero,.L359
1113
        sll     $v0,$a3,2
1114
        .set    macro
1115
        .set    reorder
1116
 
1117
.L177:
1118
        move    $a3,$zero
1119
        addu    $a1,$sp,1296
1120
        lui     $v0,%hi(Index_of) # high
1121
        addiu   $t0,$v0,%lo(Index_of) # low
1122
        addu    $a0,$sp,1024
1123
        sll     $v0,$a3,2
1124
.L360:
1125
        addu    $v1,$a1,$v0
1126
        addu    $v0,$a0,$v0
1127
        lw      $v0,0($v0)
1128
        sll     $v0,$v0,2
1129
        addu    $v0,$v0,$t0
1130
        lw      $v0,0($v0)
1131
        sw      $v0,0($v1)
1132
        addu    $a3,$a3,1
1133
        slt     $v0,$a3,33
1134
        .set    noreorder
1135
        .set    nomacro
1136
        bne     $v0,$zero,.L360
1137
        sll     $v0,$a3,2
1138
        .set    macro
1139
        .set    reorder
1140
 
1141
        move    $t1,$a2
1142
        move    $t6,$t1
1143
        addu    $t1,$t1,1
1144
        slt     $v0,$t1,33
1145
        .set    noreorder
1146
        .set    nomacro
1147
        beq     $v0,$zero,.L200
1148
        li      $t4,255                 # 0x000000ff
1149
        .set    macro
1150
        .set    reorder
1151
 
1152
        addu    $t2,$sp,1024
1153
        addu    $t7,$sp,1160
1154
        lui     $v0,%hi(Index_of) # high
1155
        addiu   $t5,$v0,%lo(Index_of) # low
1156
        lui     $v0,%hi(Alpha_to) # high
1157
        addiu   $t8,$v0,%lo(Alpha_to) # low
1158
        move    $a1,$zero
1159
.L368:
1160
        .set    noreorder
1161
        .set    nomacro
1162
        blez    $t1,.L203
1163
        move    $a3,$a1
1164
        .set    macro
1165
        .set    reorder
1166
 
1167
        sll     $v0,$a3,2
1168
.L362:
1169
        addu    $v0,$t2,$v0
1170
        lw      $a0,0($v0)
1171
        .set    noreorder
1172
        .set    nomacro
1173
        beq     $a0,$zero,.L204
1174
        subu    $v0,$t1,$a3
1175
        .set    macro
1176
        .set    reorder
1177
 
1178
        sll     $v0,$v0,2
1179
        addu    $v0,$t7,$v0
1180
        lw      $v1,0($v0)
1181
        .set    noreorder
1182
        .set    nomacro
1183
        beq     $v1,$t4,.L204
1184
        sll     $v0,$a0,2
1185
        .set    macro
1186
        .set    reorder
1187
 
1188
        addu    $v0,$v0,$t5
1189
        lw      $v0,0($v0)
1190
        .set    noreorder
1191
        .set    nomacro
1192
        b       .L351
1193
        addu    $v1,$v0,$v1
1194
        .set    macro
1195
        .set    reorder
1196
 
1197
.L361:
1198
        sra     $v0,$v1,8
1199
        andi    $v1,$v1,0x00ff
1200
        addu    $v1,$v0,$v1
1201
.L351:
1202
        slt     $v0,$v1,255
1203
        .set    noreorder
1204
        .set    nomacro
1205
        beq     $v0,$zero,.L361
1206
        addu    $v1,$v1,-255
1207
        .set    macro
1208
        .set    reorder
1209
 
1210
        addu    $v1,$v1,255
1211
        sll     $v0,$v1,2
1212
        addu    $v0,$v0,$t8
1213
        lw      $v0,0($v0)
1214
        xor     $a1,$a1,$v0
1215
.L204:
1216
        addu    $a3,$a3,1
1217
        slt     $v0,$a3,$t1
1218
        .set    noreorder
1219
        .set    nomacro
1220
        bne     $v0,$zero,.L362
1221
        sll     $v0,$a3,2
1222
        .set    macro
1223
        .set    reorder
1224
 
1225
.L203:
1226
        sll     $v0,$a1,2
1227
        addu    $v0,$v0,$t5
1228
        lw      $a1,0($v0)
1229
        .set    noreorder
1230
        .set    nomacro
1231
        bne     $a1,$t4,.L213
1232
        move    $a3,$zero
1233
        .set    macro
1234
        .set    reorder
1235
 
1236
        li      $a0,31                  # 0x0000001f
1237
        addu    $a3,$sp,1300
1238
        addu    $a1,$sp,1296
1239
.L217:
1240
        sll     $v0,$a0,2
1241
        addu    $v1,$a3,$v0
1242
        addu    $v0,$a1,$v0
1243
        lw      $v0,0($v0)
1244
        addu    $a0,$a0,-1
1245
        .set    noreorder
1246
        .set    nomacro
1247
        bgez    $a0,.L217
1248
        sw      $v0,0($v1)
1249
        .set    macro
1250
        .set    reorder
1251
 
1252
        .set    noreorder
1253
        .set    nomacro
1254
        b       .L199
1255
        sw      $t4,1296($sp)
1256
        .set    macro
1257
        .set    reorder
1258
 
1259
.L213:
1260
        lw      $v0,1024($sp)
1261
        sw      $v0,1432($sp)
1262
        addu    $t3,$sp,1296
1263
        addu    $t0,$sp,1432
1264
        sll     $v0,$a3,2
1265
.L365:
1266
        addu    $v0,$t3,$v0
1267
        lw      $v0,0($v0)
1268
        .set    noreorder
1269
        .set    nomacro
1270
        beq     $v0,$t4,.L224
1271
        addu    $v1,$a1,$v0
1272
        .set    macro
1273
        .set    reorder
1274
 
1275
        slt     $v0,$v1,255
1276
        .set    noreorder
1277
        .set    nomacro
1278
        bne     $v0,$zero,.L363
1279
        addu    $v0,$a3,1
1280
        .set    macro
1281
        .set    reorder
1282
 
1283
        addu    $v1,$v1,-255
1284
.L364:
1285
        sra     $v0,$v1,8
1286
        andi    $v1,$v1,0x00ff
1287
        addu    $v1,$v0,$v1
1288
        slt     $v0,$v1,255
1289
        .set    noreorder
1290
        .set    nomacro
1291
        beq     $v0,$zero,.L364
1292
        addu    $v1,$v1,-255
1293
        .set    macro
1294
        .set    reorder
1295
 
1296
        addu    $v1,$v1,255
1297
        addu    $v0,$a3,1
1298
.L363:
1299
        sll     $v0,$v0,2
1300
        addu    $a0,$t0,$v0
1301
        addu    $v0,$t2,$v0
1302
        sll     $v1,$v1,2
1303
        addu    $v1,$v1,$t8
1304
        lw      $v0,0($v0)
1305
        lw      $v1,0($v1)
1306
        xor     $v0,$v0,$v1
1307
        .set    noreorder
1308
        .set    nomacro
1309
        b       .L222
1310
        sw      $v0,0($a0)
1311
        .set    macro
1312
        .set    reorder
1313
 
1314
.L224:
1315
        addu    $v0,$a3,1
1316
        sll     $v0,$v0,2
1317
        addu    $v1,$t0,$v0
1318
        addu    $v0,$t2,$v0
1319
        lw      $v0,0($v0)
1320
        sw      $v0,0($v1)
1321
.L222:
1322
        addu    $a3,$a3,1
1323
        slt     $v0,$a3,32
1324
        .set    noreorder
1325
        .set    nomacro
1326
        bne     $v0,$zero,.L365
1327
        sll     $v0,$a3,2
1328
        .set    macro
1329
        .set    reorder
1330
 
1331
        sll     $v1,$t6,1
1332
        addu    $a0,$t1,$a2
1333
        addu    $v0,$a0,-1
1334
        slt     $v0,$v0,$v1
1335
        .set    noreorder
1336
        .set    nomacro
1337
        bne     $v0,$zero,.L232
1338
        addu    $a3,$sp,1300
1339
        .set    macro
1340
        .set    reorder
1341
 
1342
        subu    $t6,$a0,$t6
1343
        move    $a3,$zero
1344
        addu    $t0,$sp,1296
1345
        sll     $v0,$a3,2
1346
.L367:
1347
        addu    $a0,$t0,$v0
1348
        addu    $v0,$t2,$v0
1349
        lw      $v0,0($v0)
1350
        .set    noreorder
1351
        .set    nomacro
1352
        beq     $v0,$zero,.L237
1353
        sll     $v0,$v0,2
1354
        .set    macro
1355
        .set    reorder
1356
 
1357
        addu    $v0,$v0,$t5
1358
        lw      $v0,0($v0)
1359
        subu    $v0,$v0,$a1
1360
        addu    $v1,$v0,255
1361
        slt     $v0,$v1,255
1362
        .set    noreorder
1363
        .set    nomacro
1364
        bne     $v0,$zero,.L238
1365
        move    $v0,$v1
1366
        .set    macro
1367
        .set    reorder
1368
 
1369
        addu    $v1,$v1,-255
1370
.L366:
1371
        sra     $v0,$v1,8
1372
        andi    $v1,$v1,0x00ff
1373
        addu    $v1,$v0,$v1
1374
        slt     $v0,$v1,255
1375
        .set    noreorder
1376
        .set    nomacro
1377
        beq     $v0,$zero,.L366
1378
        addu    $v1,$v1,-255
1379
        .set    macro
1380
        .set    reorder
1381
 
1382
        addu    $v1,$v1,255
1383
        .set    noreorder
1384
        .set    nomacro
1385
        b       .L238
1386
        move    $v0,$v1
1387
        .set    macro
1388
        .set    reorder
1389
 
1390
.L237:
1391
        li      $v0,255                 # 0x000000ff
1392
.L238:
1393
        sw      $v0,0($a0)
1394
        addu    $a3,$a3,1
1395
        slt     $v0,$a3,33
1396
        .set    noreorder
1397
        .set    nomacro
1398
        bne     $v0,$zero,.L367
1399
        sll     $v0,$a3,2
1400
        .set    macro
1401
        .set    reorder
1402
 
1403
        .set    noreorder
1404
        .set    nomacro
1405
        b       .L352
1406
        li      $a0,32                  # 0x00000020
1407
        .set    macro
1408
        .set    reorder
1409
 
1410
.L232:
1411
        li      $a0,31                  # 0x0000001f
1412
        addu    $a1,$sp,1296
1413
.L249:
1414
        sll     $v0,$a0,2
1415
        addu    $v1,$a3,$v0
1416
        addu    $v0,$a1,$v0
1417
        lw      $v0,0($v0)
1418
        addu    $a0,$a0,-1
1419
        .set    noreorder
1420
        .set    nomacro
1421
        bgez    $a0,.L249
1422
        sw      $v0,0($v1)
1423
        .set    macro
1424
        .set    reorder
1425
 
1426
        sw      $t4,1296($sp)
1427
        li      $a0,32                  # 0x00000020
1428
.L352:
1429
        addu    $a1,$sp,1432
1430
.L254:
1431
        sll     $v0,$a0,2
1432
        addu    $v1,$t2,$v0
1433
        addu    $v0,$a1,$v0
1434
        lw      $v0,0($v0)
1435
        addu    $a0,$a0,-1
1436
        .set    noreorder
1437
        .set    nomacro
1438
        bgez    $a0,.L254
1439
        sw      $v0,0($v1)
1440
        .set    macro
1441
        .set    reorder
1442
 
1443
.L199:
1444
        addu    $t1,$t1,1
1445
        slt     $v0,$t1,33
1446
        .set    noreorder
1447
        .set    nomacro
1448
        bne     $v0,$zero,.L368
1449
        move    $a1,$zero
1450
        .set    macro
1451
        .set    reorder
1452
 
1453
.L200:
1454
        move    $t4,$zero
1455
        move    $a3,$t4
1456
        addu    $a0,$sp,1024
1457
        lui     $v0,%hi(Index_of) # high
1458
        addiu   $a2,$v0,%lo(Index_of) # low
1459
        li      $a1,255                 # 0x000000ff
1460
        sll     $v0,$a3,2
1461
.L369:
1462
        addu    $v0,$a0,$v0
1463
        lw      $v1,0($v0)
1464
        sll     $v1,$v1,2
1465
        addu    $v1,$v1,$a2
1466
        lw      $v1,0($v1)
1467
        .set    noreorder
1468
        .set    nomacro
1469
        beq     $v1,$a1,.L259
1470
        sw      $v1,0($v0)
1471
        .set    macro
1472
        .set    reorder
1473
 
1474
        move    $t4,$a3
1475
.L259:
1476
        addu    $a3,$a3,1
1477
        slt     $v0,$a3,33
1478
        .set    noreorder
1479
        .set    nomacro
1480
        bne     $v0,$zero,.L369
1481
        sll     $v0,$a3,2
1482
        .set    macro
1483
        .set    reorder
1484
 
1485
        li      $a0,31                  # 0x0000001f
1486
        addu    $a2,$sp,1836
1487
        addu    $a1,$sp,1028
1488
.L266:
1489
        sll     $v0,$a0,2
1490
        addu    $v1,$a2,$v0
1491
        addu    $v0,$a1,$v0
1492
        lw      $v0,0($v0)
1493
        addu    $a0,$a0,-1
1494
        .set    noreorder
1495
        .set    nomacro
1496
        bgez    $a0,.L266
1497
        sw      $v0,0($v1)
1498
        .set    macro
1499
        .set    reorder
1500
 
1501
        move    $t5,$zero
1502
        li      $a3,1                   # 0x00000001
1503
        addu    $a1,$sp,1832
1504
        li      $a2,255                 # 0x000000ff
1505
        lui     $v0,%hi(Alpha_to) # high
1506
        addiu   $t1,$v0,%lo(Alpha_to) # low
1507
.L271:
1508
        move    $t0,$t4
1509
        .set    noreorder
1510
        .set    nomacro
1511
        blez    $t0,.L273
1512
        li      $a0,1                   # 0x00000001
1513
        .set    macro
1514
        .set    reorder
1515
 
1516
        sll     $v0,$t0,2
1517
.L372:
1518
        addu    $v0,$a1,$v0
1519
        lw      $v0,0($v0)
1520
        .set    noreorder
1521
        .set    nomacro
1522
        beq     $v0,$a2,.L274
1523
        addu    $v1,$t0,$v0
1524
        .set    macro
1525
        .set    reorder
1526
 
1527
        slt     $v0,$v1,255
1528
        .set    noreorder
1529
        .set    nomacro
1530
        bne     $v0,$zero,.L370
1531
        sll     $v0,$t0,2
1532
        .set    macro
1533
        .set    reorder
1534
 
1535
        addu    $v1,$v1,-255
1536
.L371:
1537
        sra     $v0,$v1,8
1538
        andi    $v1,$v1,0x00ff
1539
        addu    $v1,$v0,$v1
1540
        slt     $v0,$v1,255
1541
        .set    noreorder
1542
        .set    nomacro
1543
        beq     $v0,$zero,.L371
1544
        addu    $v1,$v1,-255
1545
        .set    macro
1546
        .set    reorder
1547
 
1548
        addu    $v1,$v1,255
1549
        sll     $v0,$t0,2
1550
.L370:
1551
        addu    $v0,$a1,$v0
1552
        sw      $v1,0($v0)
1553
        sll     $v0,$v1,2
1554
        addu    $v0,$v0,$t1
1555
        lw      $v0,0($v0)
1556
        xor     $a0,$a0,$v0
1557
.L274:
1558
        addu    $t0,$t0,-1
1559
        .set    noreorder
1560
        .set    nomacro
1561
        bgtz    $t0,.L372
1562
        sll     $v0,$t0,2
1563
        .set    macro
1564
        .set    reorder
1565
 
1566
.L273:
1567
        .set    noreorder
1568
        .set    nomacro
1569
        bne     $a0,$zero,.L270
1570
        sll     $v1,$t5,2
1571
        .set    macro
1572
        .set    reorder
1573
 
1574
        addu    $v0,$sp,$v1
1575
        sw      $a3,1704($v0)
1576
        move    $v1,$v0
1577
        subu    $v0,$a2,$a3
1578
        sw      $v0,1968($v1)
1579
        addu    $t5,$t5,1
1580
.L270:
1581
        addu    $a3,$a3,1
1582
        slt     $v0,$a3,256
1583
        bne     $v0,$zero,.L271
1584
        .set    noreorder
1585
        .set    nomacro
1586
        beq     $t4,$t5,.L285
1587
        move    $t9,$zero
1588
        .set    macro
1589
        .set    reorder
1590
 
1591
.L349:
1592
        .set    noreorder
1593
        .set    nomacro
1594
        b       .L345
1595
        li      $v0,-1                  # 0xffffffff
1596
        .set    macro
1597
        .set    reorder
1598
 
1599
.L285:
1600
        move    $a3,$t9
1601
        addu    $a2,$sp,1160
1602
        li      $t2,255                 # 0x000000ff
1603
        addu    $a1,$sp,1024
1604
        lui     $v0,%hi(Alpha_to) # high
1605
        addiu   $t3,$v0,%lo(Alpha_to) # low
1606
.L289:
1607
        move    $t1,$zero
1608
        slt     $v0,$t4,$a3
1609
        .set    noreorder
1610
        .set    nomacro
1611
        beq     $v0,$zero,.L290
1612
        move    $t0,$a3
1613
        .set    macro
1614
        .set    reorder
1615
 
1616
        move    $t0,$t4
1617
.L290:
1618
        .set    noreorder
1619
        .set    nomacro
1620
        bltz    $t0,.L346
1621
        addu    $v0,$t0,-1
1622
        .set    macro
1623
        .set    reorder
1624
 
1625
.L374:
1626
        subu    $v0,$a3,$v0
1627
        sll     $v0,$v0,2
1628
        addu    $v0,$a2,$v0
1629
        lw      $v1,0($v0)
1630
        .set    noreorder
1631
        .set    nomacro
1632
        beq     $v1,$t2,.L294
1633
        sll     $v0,$t0,2
1634
        .set    macro
1635
        .set    reorder
1636
 
1637
        addu    $v0,$a1,$v0
1638
        lw      $v0,0($v0)
1639
        .set    noreorder
1640
        .set    nomacro
1641
        beq     $v0,$t2,.L294
1642
        addu    $v1,$v0,$v1
1643
        .set    macro
1644
        .set    reorder
1645
 
1646
        .set    noreorder
1647
        .set    nomacro
1648
        b       .L384
1649
        slt     $v0,$v1,255
1650
        .set    macro
1651
        .set    reorder
1652
 
1653
.L373:
1654
        sra     $v0,$v1,8
1655
        andi    $v1,$v1,0x00ff
1656
        addu    $v1,$v0,$v1
1657
        slt     $v0,$v1,255
1658
.L384:
1659
        .set    noreorder
1660
        .set    nomacro
1661
        beq     $v0,$zero,.L373
1662
        addu    $v1,$v1,-255
1663
        .set    macro
1664
        .set    reorder
1665
 
1666
        addu    $v1,$v1,255
1667
        sll     $v0,$v1,2
1668
        addu    $v0,$v0,$t3
1669
        lw      $v0,0($v0)
1670
        xor     $t1,$t1,$v0
1671
.L294:
1672
        addu    $t0,$t0,-1
1673
        .set    noreorder
1674
        .set    nomacro
1675
        bgez    $t0,.L374
1676
        addu    $v0,$t0,-1
1677
        .set    macro
1678
        .set    reorder
1679
 
1680
.L346:
1681
        .set    noreorder
1682
        .set    nomacro
1683
        beq     $t1,$zero,.L375
1684
        sll     $v0,$a3,2
1685
        .set    macro
1686
        .set    reorder
1687
 
1688
        move    $t9,$a3
1689
.L375:
1690
        addu    $a0,$sp,$v0
1691
        lui     $v1,%hi(Index_of) # high
1692
        addiu   $v1,$v1,%lo(Index_of) # low
1693
        sll     $v0,$t1,2
1694
        addu    $v0,$v0,$v1
1695
        lw      $v0,0($v0)
1696
        sw      $v0,1568($a0)
1697
        addu    $a3,$a3,1
1698
        slt     $v0,$a3,32
1699
        .set    noreorder
1700
        .set    nomacro
1701
        bne     $v0,$zero,.L289
1702
        li      $v0,255                 # 0x000000ff
1703
        .set    macro
1704
        .set    reorder
1705
 
1706
        addu    $t0,$t5,-1
1707
        .set    noreorder
1708
        .set    nomacro
1709
        bltz    $t0,.L306
1710
        sw      $v0,1696($sp)
1711
        .set    macro
1712
        .set    reorder
1713
 
1714
        addu    $t7,$sp,1568
1715
        move    $t8,$v0
1716
        addu    $t6,$sp,1704
1717
        lui     $v0,%hi(Alpha_to) # high
1718
        addiu   $t3,$v0,%lo(Alpha_to) # low
1719
.L308:
1720
        move    $a3,$t9
1721
        .set    noreorder
1722
        .set    nomacro
1723
        bltz    $a3,.L310
1724
        move    $a2,$zero
1725
        .set    macro
1726
        .set    reorder
1727
 
1728
        sll     $v0,$t0,2
1729
        addu    $a0,$t6,$v0
1730
        sll     $v0,$a3,2
1731
.L378:
1732
        addu    $v0,$t7,$v0
1733
        lw      $v1,0($v0)
1734
        beq     $v1,$t8,.L311
1735
        lw      $v0,0($a0)
1736
        mult    $a3,$v0
1737
        mflo    $s1
1738
        addu    $v1,$s1,$v1
1739
        slt     $v0,$v1,255
1740
        .set    noreorder
1741
        .set    nomacro
1742
        bne     $v0,$zero,.L376
1743
        sll     $v0,$v1,2
1744
        .set    macro
1745
        .set    reorder
1746
 
1747
        addu    $v1,$v1,-255
1748
.L377:
1749
        sra     $v0,$v1,8
1750
        andi    $v1,$v1,0x00ff
1751
        addu    $v1,$v0,$v1
1752
        slt     $v0,$v1,255
1753
        .set    noreorder
1754
        .set    nomacro
1755
        beq     $v0,$zero,.L377
1756
        addu    $v1,$v1,-255
1757
        .set    macro
1758
        .set    reorder
1759
 
1760
        addu    $v1,$v1,255
1761
        sll     $v0,$v1,2
1762
.L376:
1763
        addu    $v0,$v0,$t3
1764
        lw      $v0,0($v0)
1765
        xor     $a2,$a2,$v0
1766
.L311:
1767
        addu    $a3,$a3,-1
1768
        .set    noreorder
1769
        .set    nomacro
1770
        bgez    $a3,.L378
1771
        sll     $v0,$a3,2
1772
        .set    macro
1773
        .set    reorder
1774
 
1775
.L310:
1776
        li      $v1,255                 # 0x000000ff
1777
        addu    $v1,$v1,-255
1778
.L379:
1779
        sra     $v0,$v1,8
1780
        andi    $v1,$v1,0x00ff
1781
        addu    $v1,$v0,$v1
1782
        slt     $v0,$v1,255
1783
        .set    noreorder
1784
        .set    nomacro
1785
        beq     $v0,$zero,.L379
1786
        addu    $v1,$v1,-255
1787
        .set    macro
1788
        .set    reorder
1789
 
1790
        addu    $v1,$v1,255
1791
        sll     $v0,$v1,2
1792
        addu    $v0,$t3,$v0
1793
        lw      $t2,0($v0)
1794
        move    $v1,$t4
1795
        slt     $v0,$v1,32
1796
        .set    noreorder
1797
        .set    nomacro
1798
        bne     $v0,$zero,.L325
1799
        move    $a1,$zero
1800
        .set    macro
1801
        .set    reorder
1802
 
1803
        li      $v1,31                  # 0x0000001f
1804
.L325:
1805
        li      $v0,-2                  # 0xfffffffe
1806
        and     $a3,$v1,$v0
1807
        bltz    $a3,.L327
1808
        addu    $t1,$sp,1024
1809
        sll     $v0,$t0,2
1810
        addu    $a0,$t6,$v0
1811
.L329:
1812
        addu    $v0,$a3,1
1813
        sll     $v0,$v0,2
1814
        addu    $v0,$t1,$v0
1815
        lw      $v1,0($v0)
1816
        beq     $v1,$t8,.L328
1817
        lw      $v0,0($a0)
1818
        mult    $a3,$v0
1819
        mflo    $s1
1820
        addu    $v1,$s1,$v1
1821
        slt     $v0,$v1,255
1822
        .set    noreorder
1823
        .set    nomacro
1824
        bne     $v0,$zero,.L380
1825
        sll     $v0,$v1,2
1826
        .set    macro
1827
        .set    reorder
1828
 
1829
        addu    $v1,$v1,-255
1830
.L381:
1831
        sra     $v0,$v1,8
1832
        andi    $v1,$v1,0x00ff
1833
        addu    $v1,$v0,$v1
1834
        slt     $v0,$v1,255
1835
        .set    noreorder
1836
        .set    nomacro
1837
        beq     $v0,$zero,.L381
1838
        addu    $v1,$v1,-255
1839
        .set    macro
1840
        .set    reorder
1841
 
1842
        addu    $v1,$v1,255
1843
        sll     $v0,$v1,2
1844
.L380:
1845
        addu    $v0,$v0,$t3
1846
        lw      $v0,0($v0)
1847
        xor     $a1,$a1,$v0
1848
.L328:
1849
        addu    $a3,$a3,-2
1850
        bgez    $a3,.L329
1851
.L327:
1852
        beq     $a1,$zero,.L349
1853
        beq     $a2,$zero,.L307
1854
        lui     $a0,%hi(Index_of) # high
1855
        addiu   $a0,$a0,%lo(Index_of) # low
1856
        sll     $v1,$a2,2
1857
        addu    $v1,$v1,$a0
1858
        sll     $v0,$t2,2
1859
        addu    $v0,$v0,$a0
1860
        lw      $v1,0($v1)
1861
        lw      $v0,0($v0)
1862
        addu    $v1,$v1,$v0
1863
        sll     $v0,$a1,2
1864
        addu    $v0,$v0,$a0
1865
        lw      $v0,0($v0)
1866
        addu    $v0,$v0,-255
1867
        subu    $v1,$v1,$v0
1868
        slt     $v0,$v1,255
1869
        .set    noreorder
1870
        .set    nomacro
1871
        bne     $v0,$zero,.L382
1872
        sll     $v0,$t0,2
1873
        .set    macro
1874
        .set    reorder
1875
 
1876
        addu    $v1,$v1,-255
1877
.L383:
1878
        sra     $v0,$v1,8
1879
        andi    $v1,$v1,0x00ff
1880
        addu    $v1,$v0,$v1
1881
        slt     $v0,$v1,255
1882
        .set    noreorder
1883
        .set    nomacro
1884
        beq     $v0,$zero,.L383
1885
        addu    $v1,$v1,-255
1886
        .set    macro
1887
        .set    reorder
1888
 
1889
        addu    $v1,$v1,255
1890
        sll     $v0,$t0,2
1891
.L382:
1892
        addu    $v0,$sp,$v0
1893
        lw      $a0,1968($v0)
1894
        addu    $a0,$s0,$a0
1895
        sll     $v0,$v1,2
1896
        addu    $v0,$v0,$t3
1897
        lbu     $v1,0($a0)
1898
        lbu     $v0,3($v0)
1899
        xor     $v1,$v1,$v0
1900
        sb      $v1,0($a0)
1901
.L307:
1902
        addu    $t0,$t0,-1
1903
        bgez    $t0,.L308
1904
.L306:
1905
        move    $v0,$t5
1906
.L345:
1907
        lw      $s1,2100($sp)
1908
        lw      $s0,2096($sp)
1909
        .set    noreorder
1910
        .set    nomacro
1911
        j       $ra
1912
        addu    $sp,$sp,2104
1913
        .set    macro
1914
        .set    reorder
1915
 
1916
        .end    eras_dec_rs
1917
        .size   eras_dec_rs,.-eras_dec_rs
1918
        .align  2
1919
        .globl  fill_eras
1920
        .ent    fill_eras
1921
fill_eras:
1922
        .frame  $sp,1064,$ra            # vars= 1024, regs= 5/0, args= 16, extra= 0
1923
        .mask   0x800f0000,-8
1924
        .fmask  0x00000000,0
1925
        subu    $sp,$sp,1064
1926
        sw      $ra,1056($sp)
1927
        sw      $s3,1052($sp)
1928
        sw      $s2,1048($sp)
1929
        sw      $s1,1044($sp)
1930
        sw      $s0,1040($sp)
1931
        move    $s3,$a0
1932
        move    $s2,$a1
1933
        move    $a0,$zero
1934
        addu    $v1,$sp,16
1935
        sll     $v0,$a0,2
1936
.L401:
1937
        addu    $v0,$v1,$v0
1938
        sw      $a0,0($v0)
1939
        addu    $a0,$a0,1
1940
        slt     $v0,$a0,255
1941
        .set    noreorder
1942
        .set    nomacro
1943
        bne     $v0,$zero,.L401
1944
        sll     $v0,$a0,2
1945
        .set    macro
1946
        .set    reorder
1947
 
1948
        li      $s0,254                 # 0x000000fe
1949
        addu    $s1,$sp,16
1950
.L394:
1951
        jal     random
1952
        remu    $a0,$v0,$s0
1953
        sll     $a0,$a0,2
1954
        addu    $a0,$s1,$a0
1955
        lw      $a1,0($a0)
1956
        sll     $v1,$s0,2
1957
        addu    $v1,$s1,$v1
1958
        lw      $v0,0($v1)
1959
        sw      $v0,0($a0)
1960
        addu    $s0,$s0,-1
1961
        .set    noreorder
1962
        .set    nomacro
1963
        bgtz    $s0,.L394
1964
        sw      $a1,0($v1)
1965
        .set    macro
1966
        .set    reorder
1967
 
1968
        .set    noreorder
1969
        .set    nomacro
1970
        blez    $s2,.L397
1971
        move    $a0,$zero
1972
        .set    macro
1973
        .set    reorder
1974
 
1975
        addu    $a1,$sp,16
1976
        sll     $v0,$a0,2
1977
.L402:
1978
        addu    $v1,$v0,$s3
1979
        addu    $v0,$a1,$v0
1980
        lw      $v0,0($v0)
1981
        sw      $v0,0($v1)
1982
        addu    $a0,$a0,1
1983
        slt     $v0,$a0,$s2
1984
        .set    noreorder
1985
        .set    nomacro
1986
        bne     $v0,$zero,.L402
1987
        sll     $v0,$a0,2
1988
        .set    macro
1989
        .set    reorder
1990
 
1991
.L397:
1992
        lw      $ra,1056($sp)
1993
        lw      $s3,1052($sp)
1994
        lw      $s2,1048($sp)
1995
        lw      $s1,1044($sp)
1996
        lw      $s0,1040($sp)
1997
        .set    noreorder
1998
        .set    nomacro
1999
        j       $ra
2000
        addu    $sp,$sp,1064
2001
        .set    macro
2002
        .set    reorder
2003
 
2004
        .end    fill_eras
2005
        .size   fill_eras,.-fill_eras
2006
        .align  2
2007
        .globl  randomnz
2008
        .ent    randomnz
2009
randomnz:
2010
        .frame  $sp,24,$ra              # vars= 0, regs= 1/0, args= 16, extra= 0
2011
        .mask   0x80000000,-8
2012
        .fmask  0x00000000,0
2013
        subu    $sp,$sp,24
2014
        sw      $ra,16($sp)
2015
.L404:
2016
        jal     random
2017
        andi    $v0,$v0,0x00ff
2018
        beq     $v0,$zero,.L404
2019
        lw      $ra,16($sp)
2020
        .set    noreorder
2021
        .set    nomacro
2022
        j       $ra
2023
        addu    $sp,$sp,24
2024
        .set    macro
2025
        .set    reorder
2026
 
2027
        .end    randomnz
2028
        .size   randomnz,.-randomnz
2029
        .text
2030
        .align  2
2031
        .globl  main2
2032
        .ent    main2
2033
main2:
2034
        .frame  $sp,72,$ra              # vars= 16, regs= 10/0, args= 16, extra= 0
2035
        .mask   0xc0ff0000,-4
2036
        .fmask  0x00000000,0
2037
        subu    $sp,$sp,72
2038
        sw      $ra,68($sp)
2039
        sw      $fp,64($sp)
2040
        sw      $s7,60($sp)
2041
        sw      $s6,56($sp)
2042
        sw      $s5,52($sp)
2043
        sw      $s4,48($sp)
2044
        sw      $s3,44($sp)
2045
        sw      $s2,40($sp)
2046
        sw      $s1,36($sp)
2047
        sw      $s0,32($sp)
2048
        li      $s6,11                  # 0x0000000b
2049
        li      $s3,10                  # 0x0000000a
2050
        lui     $a0,%hi(.LC0) # high
2051
        .set    noreorder
2052
        .set    nomacro
2053
        jal     print_uart
2054
        addiu   $a0,$a0,%lo(.LC0) # low
2055
        .set    macro
2056
        .set    reorder
2057
 
2058
        lui     $a0,%hi(.LC1) # high
2059
        .set    noreorder
2060
        .set    nomacro
2061
        jal     print_uart
2062
        addiu   $a0,$a0,%lo(.LC1) # low
2063
        .set    macro
2064
        .set    reorder
2065
 
2066
        .set    noreorder
2067
        .set    nomacro
2068
        jal     print_num
2069
        li      $a0,255                 # 0x000000ff
2070
        .set    macro
2071
        .set    reorder
2072
 
2073
        lui     $a0,%hi(.LC2) # high
2074
        .set    noreorder
2075
        .set    nomacro
2076
        jal     print_uart
2077
        addiu   $a0,$a0,%lo(.LC2) # low
2078
        .set    macro
2079
        .set    reorder
2080
 
2081
        .set    noreorder
2082
        .set    nomacro
2083
        jal     print_num
2084
        li      $a0,223                 # 0x000000df
2085
        .set    macro
2086
        .set    reorder
2087
 
2088
        lui     $a0,%hi(.LC3) # high
2089
        .set    noreorder
2090
        .set    nomacro
2091
        jal     print_uart
2092
        addiu   $a0,$a0,%lo(.LC3) # low
2093
        .set    macro
2094
        .set    reorder
2095
 
2096
        .set    noreorder
2097
        .set    nomacro
2098
        jal     print_num
2099
        li      $a0,256                 # 0x00000100
2100
        .set    macro
2101
        .set    reorder
2102
 
2103
        lui     $a0,%hi(.LC4) # high
2104
        .set    noreorder
2105
        .set    nomacro
2106
        jal     print_uart
2107
        addiu   $a0,$a0,%lo(.LC4) # low
2108
        .set    macro
2109
        .set    reorder
2110
 
2111
        lui     $a0,%hi(.LC5) # high
2112
        .set    noreorder
2113
        .set    nomacro
2114
        jal     print_uart
2115
        addiu   $a0,$a0,%lo(.LC5) # low
2116
        .set    macro
2117
        .set    reorder
2118
 
2119
        .set    noreorder
2120
        .set    nomacro
2121
        jal     print_num
2122
        move    $a0,$s0
2123
        .set    macro
2124
        .set    reorder
2125
 
2126
        lui     $s0,%hi(.LC6) # high
2127
        .set    noreorder
2128
        .set    nomacro
2129
        jal     print_uart
2130
        addiu   $a0,$s0,%lo(.LC6) # low
2131
        .set    macro
2132
        .set    reorder
2133
 
2134
        lui     $a0,%hi(.LC7) # high
2135
        .set    noreorder
2136
        .set    nomacro
2137
        jal     print_uart
2138
        addiu   $a0,$a0,%lo(.LC7) # low
2139
        .set    macro
2140
        .set    reorder
2141
 
2142
        .set    noreorder
2143
        .set    nomacro
2144
        jal     print_num
2145
        move    $a0,$s3
2146
        .set    macro
2147
        .set    reorder
2148
 
2149
        lui     $a0,%hi(.LC8) # high
2150
        .set    noreorder
2151
        .set    nomacro
2152
        jal     print_uart
2153
        addiu   $a0,$a0,%lo(.LC8) # low
2154
        .set    macro
2155
        .set    reorder
2156
 
2157
        .set    noreorder
2158
        .set    nomacro
2159
        jal     print_num
2160
        move    $a0,$s6
2161
        .set    macro
2162
        .set    reorder
2163
 
2164
        .set    noreorder
2165
        .set    nomacro
2166
        jal     print_uart
2167
        addiu   $a0,$s0,%lo(.LC6) # low
2168
        .set    macro
2169
        .set    reorder
2170
 
2171
        .set    noreorder
2172
        .set    nomacro
2173
        jal     init_rs
2174
        move    $s4,$zero
2175
        .set    macro
2176
        .set    reorder
2177
 
2178
        lui     $a0,%hi(.LC12) # high
2179
        .set    noreorder
2180
        .set    nomacro
2181
        jal     print_uart
2182
        addiu   $a0,$a0,%lo(.LC12) # low
2183
        .set    macro
2184
        .set    reorder
2185
 
2186
        sw      $zero,16($sp)
2187
        li      $a3,120                 # 0x00000078
2188
        .set    noreorder
2189
        .set    nomacro
2190
        beq     $a3,$zero,.L410
2191
        sw      $zero,20($sp)
2192
        .set    macro
2193
        .set    reorder
2194
 
2195
        move    $s7,$s0
2196
        lui     $v0,%hi(data) # high
2197
        addiu   $fp,$v0,%lo(data) # low
2198
        li      $a3,1                   # 0x00000001
2199
        sltu    $a3,$zero,$a3
2200
        sw      $a3,24($sp)
2201
        lui     $v0,%hi(eras_pos) # high
2202
        addiu   $s5,$v0,%lo(eras_pos) # low
2203
        li      $a3,1                   # 0x00000001
2204
.L447:
2205
        .set    noreorder
2206
        .set    nomacro
2207
        beq     $a3,$zero,.L413
2208
        lui     $a0,%hi(.LC13) # high
2209
        .set    macro
2210
        .set    reorder
2211
 
2212
        .set    noreorder
2213
        .set    nomacro
2214
        jal     print_uart
2215
        addiu   $a0,$a0,%lo(.LC13) # low
2216
        .set    macro
2217
        .set    reorder
2218
 
2219
        .set    noreorder
2220
        .set    nomacro
2221
        jal     print_num
2222
        move    $a0,$s4
2223
        .set    macro
2224
        .set    reorder
2225
 
2226
.L413:
2227
        .set    noreorder
2228
        .set    nomacro
2229
        jal     print_uart
2230
        addiu   $a0,$s7,%lo(.LC6) # low
2231
        .set    macro
2232
        .set    reorder
2233
 
2234
        move    $s0,$zero
2235
.L417:
2236
        jal     random
2237
        addu    $v1,$s0,$fp
2238
        sb      $v0,0($v1)
2239
        addu    $s0,$s0,1
2240
        slt     $v0,$s0,223
2241
        .set    noreorder
2242
        .set    nomacro
2243
        bne     $v0,$zero,.L417
2244
        move    $a0,$fp
2245
        .set    macro
2246
        .set    reorder
2247
 
2248
        .set    noreorder
2249
        .set    nomacro
2250
        jal     encode_rs
2251
        addu    $a1,$fp,223
2252
        .set    macro
2253
        .set    reorder
2254
 
2255
        lui     $a3,%hi(eras_pos) # high
2256
        addiu   $a0,$a3,%lo(eras_pos) # low
2257
        .set    noreorder
2258
        .set    nomacro
2259
        jal     fill_eras
2260
        addu    $a1,$s3,$s6
2261
        .set    macro
2262
        .set    reorder
2263
 
2264
        sltu    $v0,$zero,$s3
2265
        lw      $a3,24($sp)
2266
        and     $v0,$a3,$v0
2267
        .set    noreorder
2268
        .set    nomacro
2269
        beq     $v0,$zero,.L444
2270
        sltu    $v0,$zero,$s6
2271
        .set    macro
2272
        .set    reorder
2273
 
2274
        lui     $a0,%hi(.LC14) # high
2275
        .set    noreorder
2276
        .set    nomacro
2277
        jal     print_uart
2278
        addiu   $a0,$a0,%lo(.LC14) # low
2279
        .set    macro
2280
        .set    reorder
2281
 
2282
        .set    noreorder
2283
        .set    nomacro
2284
        beq     $s3,$zero,.L421
2285
        move    $s0,$zero
2286
        .set    macro
2287
        .set    reorder
2288
 
2289
        lui     $a3,%hi(.LC2) # high
2290
.L445:
2291
        .set    noreorder
2292
        .set    nomacro
2293
        jal     print_uart
2294
        addiu   $a0,$a3,%lo(.LC2) # low
2295
        .set    macro
2296
        .set    reorder
2297
 
2298
        sll     $v0,$s0,2
2299
        addu    $v0,$v0,$s5
2300
        lw      $a0,0($v0)
2301
        .set    noreorder
2302
        .set    nomacro
2303
        jal     print_num
2304
        addu    $s0,$s0,1
2305
        .set    macro
2306
        .set    reorder
2307
 
2308
        slt     $v0,$s0,$s3
2309
        .set    noreorder
2310
        .set    nomacro
2311
        bne     $v0,$zero,.L445
2312
        lui     $a3,%hi(.LC2) # high
2313
        .set    macro
2314
        .set    reorder
2315
 
2316
.L421:
2317
        .set    noreorder
2318
        .set    nomacro
2319
        jal     print_uart
2320
        addiu   $a0,$s7,%lo(.LC6) # low
2321
        .set    macro
2322
        .set    reorder
2323
 
2324
        sltu    $v0,$zero,$s6
2325
        lw      $a3,24($sp)
2326
.L444:
2327
        and     $v0,$a3,$v0
2328
        .set    noreorder
2329
        .set    nomacro
2330
        beq     $v0,$zero,.L425
2331
        lui     $a0,%hi(.LC15) # high
2332
        .set    macro
2333
        .set    reorder
2334
 
2335
        .set    noreorder
2336
        .set    nomacro
2337
        jal     print_uart
2338
        addiu   $a0,$a0,%lo(.LC15) # low
2339
        .set    macro
2340
        .set    reorder
2341
 
2342
        move    $s0,$s3
2343
        addu    $v0,$s0,$s6
2344
        slt     $v0,$s0,$v0
2345
        .set    noreorder
2346
        .set    nomacro
2347
        beq     $v0,$zero,.L427
2348
        lui     $a3,%hi(.LC2) # high
2349
        .set    macro
2350
        .set    reorder
2351
 
2352
        addu    $s1,$s3,$s6
2353
.L446:
2354
        .set    noreorder
2355
        .set    nomacro
2356
        jal     print_uart
2357
        addiu   $a0,$a3,%lo(.LC2) # low
2358
        .set    macro
2359
        .set    reorder
2360
 
2361
        sll     $v0,$s0,2
2362
        addu    $v0,$v0,$s5
2363
        lw      $a0,0($v0)
2364
        .set    noreorder
2365
        .set    nomacro
2366
        jal     print_num
2367
        addu    $s0,$s0,1
2368
        .set    macro
2369
        .set    reorder
2370
 
2371
        slt     $v0,$s0,$s1
2372
        .set    noreorder
2373
        .set    nomacro
2374
        bne     $v0,$zero,.L446
2375
        lui     $a3,%hi(.LC2) # high
2376
        .set    macro
2377
        .set    reorder
2378
 
2379
.L427:
2380
        .set    noreorder
2381
        .set    nomacro
2382
        jal     print_uart
2383
        addiu   $a0,$s7,%lo(.LC6) # low
2384
        .set    macro
2385
        .set    reorder
2386
 
2387
.L425:
2388
        lui     $a3,%hi(ddata) # high
2389
        addiu   $a0,$a3,%lo(ddata) # low
2390
        lui     $a3,%hi(data) # high
2391
        addiu   $a1,$a3,%lo(data) # low
2392
        .set    noreorder
2393
        .set    nomacro
2394
        jal     memcpy
2395
        li      $a2,255                 # 0x000000ff
2396
        .set    macro
2397
        .set    reorder
2398
 
2399
        addu    $v0,$s3,$s6
2400
        .set    noreorder
2401
        .set    nomacro
2402
        beq     $v0,$zero,.L433
2403
        move    $s0,$zero
2404
        .set    macro
2405
        .set    reorder
2406
 
2407
        lui     $v0,%hi(ddata) # high
2408
        addiu   $s2,$v0,%lo(ddata) # low
2409
        addu    $s1,$s3,$s6
2410
.L435:
2411
        jal     randomnz
2412
        sll     $v1,$s0,2
2413
        addu    $v1,$v1,$s5
2414
        lw      $a0,0($v1)
2415
        addu    $a0,$a0,$s2
2416
        lbu     $v1,0($a0)
2417
        xor     $v1,$v1,$v0
2418
        addu    $s0,$s0,1
2419
        slt     $v0,$s0,$s1
2420
        .set    noreorder
2421
        .set    nomacro
2422
        bne     $v0,$zero,.L435
2423
        sb      $v1,0($a0)
2424
        .set    macro
2425
        .set    reorder
2426
 
2427
.L433:
2428
        lui     $a3,%hi(ddata) # high
2429
        addiu   $a0,$a3,%lo(ddata) # low
2430
        lui     $a3,%hi(eras_pos) # high
2431
        addiu   $a1,$a3,%lo(eras_pos) # low
2432
        .set    noreorder
2433
        .set    nomacro
2434
        jal     eras_dec_rs
2435
        move    $a2,$s3
2436
        .set    macro
2437
        .set    reorder
2438
 
2439
        li      $a3,1                   # 0x00000001
2440
        .set    noreorder
2441
        .set    nomacro
2442
        beq     $a3,$zero,.L437
2443
        move    $s0,$v0
2444
        .set    macro
2445
        .set    reorder
2446
 
2447
        lui     $a0,%hi(.LC16) # high
2448
        .set    noreorder
2449
        .set    nomacro
2450
        jal     print_uart
2451
        addiu   $a0,$a0,%lo(.LC16) # low
2452
        .set    macro
2453
        .set    reorder
2454
 
2455
        .set    noreorder
2456
        .set    nomacro
2457
        jal     print_num
2458
        move    $a0,$s0
2459
        .set    macro
2460
        .set    reorder
2461
 
2462
        .set    noreorder
2463
        .set    nomacro
2464
        jal     print_uart
2465
        addiu   $a0,$s7,%lo(.LC6) # low
2466
        .set    macro
2467
        .set    reorder
2468
 
2469
.L437:
2470
        li      $v0,-1                  # 0xffffffff
2471
        .set    noreorder
2472
        .set    nomacro
2473
        bne     $s0,$v0,.L438
2474
        lui     $a3,%hi(ddata) # high
2475
        .set    macro
2476
        .set    reorder
2477
 
2478
        lw      $a3,16($sp)
2479
        addu    $a3,$a3,1
2480
        sw      $a3,16($sp)
2481
        lui     $a0,%hi(.LC17) # high
2482
        .set    noreorder
2483
        .set    nomacro
2484
        b       .L443
2485
        addiu   $a0,$a0,%lo(.LC17) # low
2486
        .set    macro
2487
        .set    reorder
2488
 
2489
.L438:
2490
        addiu   $a0,$a3,%lo(ddata) # low
2491
        lui     $a3,%hi(data) # high
2492
        addiu   $a1,$a3,%lo(data) # low
2493
        .set    noreorder
2494
        .set    nomacro
2495
        jal     memcmp
2496
        li      $a2,255                 # 0x000000ff
2497
        .set    macro
2498
        .set    reorder
2499
 
2500
        .set    noreorder
2501
        .set    nomacro
2502
        beq     $v0,$zero,.L440
2503
        lui     $a0,%hi(.LC18) # high
2504
        .set    macro
2505
        .set    reorder
2506
 
2507
        lw      $a3,20($sp)
2508
        addu    $a3,$a3,1
2509
        sw      $a3,20($sp)
2510
        .set    noreorder
2511
        .set    nomacro
2512
        b       .L443
2513
        addiu   $a0,$a0,%lo(.LC18) # low
2514
        .set    macro
2515
        .set    reorder
2516
 
2517
.L440:
2518
        lui     $a0,%hi(.LC19) # high
2519
        addiu   $a0,$a0,%lo(.LC19) # low
2520
.L443:
2521
        .set    noreorder
2522
        .set    nomacro
2523
        jal     print_uart
2524
        addu    $s4,$s4,1
2525
        .set    macro
2526
        .set    reorder
2527
 
2528
        slt     $v0,$s4,120
2529
        .set    noreorder
2530
        .set    nomacro
2531
        bne     $v0,$zero,.L447
2532
        li      $a3,1                   # 0x00000001
2533
        .set    macro
2534
        .set    reorder
2535
 
2536
.L410:
2537
        lui     $a0,%hi(.LC20) # high
2538
        .set    noreorder
2539
        .set    nomacro
2540
        jal     print_uart
2541
        addiu   $a0,$a0,%lo(.LC20) # low
2542
        .set    macro
2543
        .set    reorder
2544
 
2545
        .set    noreorder
2546
        .set    nomacro
2547
        jal     print_num
2548
        li      $a0,120                 # 0x00000078
2549
        .set    macro
2550
        .set    reorder
2551
 
2552
        lui     $a0,%hi(.LC21) # high
2553
        .set    noreorder
2554
        .set    nomacro
2555
        jal     print_uart
2556
        addiu   $a0,$a0,%lo(.LC21) # low
2557
        .set    macro
2558
        .set    reorder
2559
 
2560
        lw      $a0,16($sp)
2561
        jal     print_num
2562
        lui     $a0,%hi(.LC22) # high
2563
        .set    noreorder
2564
        .set    nomacro
2565
        jal     print_uart
2566
        addiu   $a0,$a0,%lo(.LC22) # low
2567
        .set    macro
2568
        .set    reorder
2569
 
2570
        lw      $a0,20($sp)
2571
        jal     print_num
2572
        lui     $a0,%hi(.LC6) # high
2573
        .set    noreorder
2574
        .set    nomacro
2575
        jal     print_uart
2576
        addiu   $a0,$a0,%lo(.LC6) # low
2577
        .set    macro
2578
        .set    reorder
2579
 
2580
        lui     $a0,%hi(.LC23) # high
2581
        .set    noreorder
2582
        .set    nomacro
2583
        jal     print_uart
2584
        addiu   $a0,$a0,%lo(.LC23) # low
2585
        .set    macro
2586
        .set    reorder
2587
 
2588
        move    $v0,$zero
2589
        lw      $ra,68($sp)
2590
        lw      $fp,64($sp)
2591
        lw      $s7,60($sp)
2592
        lw      $s6,56($sp)
2593
        lw      $s5,52($sp)
2594
        lw      $s4,48($sp)
2595
        lw      $s3,44($sp)
2596
        lw      $s2,40($sp)
2597
        lw      $s1,36($sp)
2598
        lw      $s0,32($sp)
2599
        .set    noreorder
2600
        .set    nomacro
2601
        j       $ra
2602
        addu    $sp,$sp,72
2603
        .set    macro
2604
        .set    reorder
2605
 
2606
        .end    main2
2607
        .size   main2,.-main2

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.