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

Subversion Repositories yacc

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

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

powered by: WebSVN 2.1.0

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