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

Subversion Repositories yacc

[/] [yacc/] [trunk/] [bench/] [c_src/] [calculator/] [uart_echo_test.s] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tak.sugawa
        .file   1 "uart_echo_test.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
        .globl  int_flag
15
        .sdata
16
        .align  0
17
        .align  2
18
int_flag:
19
        .size   int_flag,4
20
        .word   0
21
        .rdata
22
        .align  0
23
        .align  2
24
.LC0:
25
        .ascii  "PError!\n\000"
26
        .align  2
27
.LC1:
28
        .ascii  "Sorry Overflow..!\n\000"
29
        .rdata
30
        .align  0
31
        .align  2
32
.LC2:
33
        .ascii  "\n"
34
        .ascii  " parse error occurred\n\000"
35
        .rdata
36
        .align  0
37
        .align  2
38
.LC3:
39
        .ascii  "\n\000"
40
        .align  2
41
.LC4:
42
        .ascii  "=\000"
43
        .align  2
44
.LC5:
45
        .ascii  "[Hex]   \000"
46
        .align  2
47
.LC6:
48
        .ascii  "[Dec]\n\000"
49
        .rdata
50
        .align  0
51
        .align  2
52
.LC7:
53
        .ascii  "5*3\n\000"
54
        .align  2
55
.LC8:
56
        .ascii  "100*31\n\000"
57
        .align  2
58
.LC9:
59
        .ascii  "(-31050)/(-31)\n\000"
60
        .align  2
61
.LC10:
62
        .ascii  "(-1053333)/(231)\n\000"
63
        .align  2
64
.LC11:
65
        .ascii  "(10503)/(-314)\n\000"
66
        .align  2
67
.LC12:
68
        .ascii  "3333*3333\n\000"
69
        .align  2
70
.LC13:
71
        .ascii  "533*443\n\000"
72
        .align  2
73
.LC14:
74
        .ascii  "10*314\n\000"
75
        .align  2
76
.LC15:
77
        .ascii  "(-350)/(-231)\n\000"
78
        .align  2
79
.LC16:
80
        .ascii  "(-10533333)/(1231)\n\000"
81
        .align  2
82
.LC17:
83
        .ascii  "(105034)/(-3134)\n\000"
84
        .align  2
85
.LC18:
86
        .ascii  "3363*33333\n\000"
87
        .align  2
88
.LC19:
89
        .ascii  "$finish\000"
90
 
91
        .comm   read_ptr,4
92
 
93
        .comm   buffer,120
94
 
95
        .comm   result_buffer,8
96
 
97
        .comm   sym,1
98
 
99
        .comm   char_ptr,4
100
 
101
        .comm   buf,2
102
 
103
        .text
104
        .text
105
        .align  2
106
        .globl  print_uart
107
        .ent    print_uart
108
print_uart:
109
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
110
        .mask   0x00000000,0
111
        .fmask  0x00000000,0
112
        lbu     $v0,0($a0)
113
        beq     $v0,$zero,.L3
114
        li      $v1,16380                       # 0x00003ffc
115
.L5:
116
        #.set   volatile
117
        lw      $v0,0($v1)
118
        #.set   novolatile
119
        andi    $v0,$v0,0x0100
120
        bne     $v0,$zero,.L5
121
        lbu     $v0,0($a0)
122
        #.set   volatile
123
        sb      $v0,0($v1)
124
        #.set   novolatile
125
        addu    $a0,$a0,1
126
        lbu     $v0,0($a0)
127
        bne     $v0,$zero,.L5
128
.L3:
129
        j       $ra
130
        .end    print_uart
131
        .size   print_uart,.-print_uart
132
        .align  2
133
        .globl  putc_uart
134
        .ent    putc_uart
135
putc_uart:
136
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
137
        .mask   0x00000000,0
138
        .fmask  0x00000000,0
139
        andi    $a0,$a0,0x00ff
140
        li      $v1,16380                       # 0x00003ffc
141
.L11:
142
        #.set   volatile
143
        lw      $v0,0($v1)
144
        #.set   novolatile
145
        andi    $v0,$v0,0x0100
146
        .set    noreorder
147
        .set    nomacro
148
        bne     $v0,$zero,.L11
149
        li      $v0,16380                       # 0x00003ffc
150
        .set    macro
151
        .set    reorder
152
 
153
        #.set   volatile
154
        sb      $a0,0($v0)
155
        #.set   novolatile
156
        j       $ra
157
        .end    putc_uart
158
        .size   putc_uart,.-putc_uart
159
        .align  2
160
        .globl  print_char
161
        .ent    print_char
162
print_char:
163
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
164
        .mask   0x00000000,0
165
        .fmask  0x00000000,0
166
        andi    $a0,$a0,0x00ff
167
        li      $v0,16369                       # 0x00003ff1
168
        #.set   volatile
169
        sb      $a0,0($v0)
170
        #.set   novolatile
171
        j       $ra
172
        .end    print_char
173
        .size   print_char,.-print_char
174
        .align  2
175
        .globl  read_uart
176
        .ent    read_uart
177
read_uart:
178
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
179
        .mask   0x00000000,0
180
        .fmask  0x00000000,0
181
        li      $v0,16380                       # 0x00003ffc
182
        #.set   volatile
183
        lw      $v0,0($v0)
184
        #.set   novolatile
185
        .set    noreorder
186
        .set    nomacro
187
        j       $ra
188
        andi    $v0,$v0,0x00ff
189
        .set    macro
190
        .set    reorder
191
 
192
        .end    read_uart
193
        .size   read_uart,.-read_uart
194
        .align  2
195
        .globl  print
196
        .ent    print
197
print:
198
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
199
        .mask   0x00000000,0
200
        .fmask  0x00000000,0
201
        lbu     $v0,0($a0)
202
        .set    noreorder
203
        .set    nomacro
204
        beq     $v0,$zero,.L19
205
        move    $v1,$v0
206
        .set    macro
207
        .set    reorder
208
 
209
        li      $a1,16368                       # 0x00003ff0
210
        move    $v0,$v1
211
.L22:
212
        #.set   volatile
213
        sb      $v0,0($a1)
214
        #.set   novolatile
215
        addu    $a0,$a0,1
216
        lbu     $v1,0($a0)
217
        .set    noreorder
218
        .set    nomacro
219
        bne     $v1,$zero,.L22
220
        move    $v0,$v1
221
        .set    macro
222
        .set    reorder
223
 
224
.L19:
225
        li      $v0,16368                       # 0x00003ff0
226
        #.set   volatile
227
        sb      $zero,0($v0)
228
        #.set   novolatile
229
        j       $ra
230
        .end    print
231
        .size   print,.-print
232
        .align  2
233
        .globl  print_short
234
        .ent    print_short
235
print_short:
236
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
237
        .mask   0x00000000,0
238
        .fmask  0x00000000,0
239
        sll     $a0,$a0,16
240
        sra     $a0,$a0,16
241
        li      $v0,16370                       # 0x00003ff2
242
        #.set   volatile
243
        sh      $a0,0($v0)
244
        #.set   novolatile
245
        j       $ra
246
        .end    print_short
247
        .size   print_short,.-print_short
248
        .align  2
249
        .globl  print_long
250
        .ent    print_long
251
print_long:
252
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
253
        .mask   0x00000000,0
254
        .fmask  0x00000000,0
255
        li      $v0,16372                       # 0x00003ff4
256
        #.set   volatile
257
        sw      $a0,0($v0)
258
        #.set   novolatile
259
        j       $ra
260
        .end    print_long
261
        .size   print_long,.-print_long
262
        .text
263
        .align  2
264
        .globl  interrupt
265
        .ent    interrupt
266
interrupt:
267
        .frame  $sp,24,$ra              # vars= 0, regs= 2/0, args= 16, extra= 0
268
        .mask   0x80010000,-4
269
        .fmask  0x00000000,0
270
        subu    $sp,$sp,24
271
        sw      $ra,20($sp)
272
        sw      $s0,16($sp)
273
 #APP
274
        addiu   $sp,$sp,-52 ;
275
                sw      $a0,($sp)
276
                sw  $v0,4($sp)
277
                sw  $v1,8($sp)
278
                sw  $a1,12($sp)
279
                sw  $s0,16($sp)
280
                sw  $s1,20($sp)
281
                sw  $s2,24($sp)
282
                sw  $a3,28($sp)
283
                sw  $s4,32($sp)
284
                sw  $s5,36($sp)
285
                sw  $s6,40($sp)
286
                sw  $s7,44($sp)
287
                sw  $a2,48($sp)
288
 #NO_APP
289
        jal     read_uart
290
        move    $s0,$v0
291
        xori    $v1,$s0,0x000a
292
        sltu    $v1,$v1,1
293
        xori    $v0,$s0,0x000d
294
        sltu    $v0,$v0,1
295
        or      $v1,$v1,$v0
296
        .set    noreorder
297
        .set    nomacro
298
        beq     $v1,$zero,.L26
299
        li      $v0,8                   # 0x00000008
300
        .set    macro
301
        .set    reorder
302
 
303
        lw      $v0,read_ptr
304
        sb      $zero,0($v0)
305
        lui     $v0,%hi(buffer) # high
306
        addiu   $v0,$v0,%lo(buffer) # low
307
        sw      $v0,read_ptr
308
        .set    noreorder
309
        .set    nomacro
310
        jal     putc_uart
311
        li      $a0,10                  # 0x0000000a
312
        .set    macro
313
        .set    reorder
314
 
315
        .set    noreorder
316
        .set    nomacro
317
        jal     putc_uart
318
        li      $a0,13                  # 0x0000000d
319
        .set    macro
320
        .set    reorder
321
 
322
        #.set   volatile
323
        lw      $v0,int_flag
324
        #.set   novolatile
325
        .set    noreorder
326
        .set    nomacro
327
        beq     $v0,$zero,.L27
328
        lui     $a0,%hi(.LC0) # high
329
        .set    macro
330
        .set    reorder
331
 
332
        .set    noreorder
333
        .set    nomacro
334
        jal     print
335
        addiu   $a0,$a0,%lo(.LC0) # low
336
        .set    macro
337
        .set    reorder
338
 
339
        b       .L29
340
.L27:
341
        li      $v0,1                   # 0x00000001
342
        #.set   volatile
343
        sw      $v0,int_flag
344
        #.set   novolatile
345
        b       .L29
346
.L26:
347
        .set    noreorder
348
        .set    nomacro
349
        bne     $s0,$v0,.L30
350
        lui     $v0,%hi(buffer) # high
351
        .set    macro
352
        .set    reorder
353
 
354
        lw      $v1,read_ptr
355
        addiu   $v0,$v0,%lo(buffer) # low
356
        sltu    $v0,$v0,$v1
357
        beq     $v0,$zero,.L35
358
        .set    noreorder
359
        .set    nomacro
360
        jal     putc_uart
361
        li      $a0,8                   # 0x00000008
362
        .set    macro
363
        .set    reorder
364
 
365
        lw      $v0,read_ptr
366
        .set    noreorder
367
        .set    nomacro
368
        b       .L34
369
        addu    $v0,$v0,-1
370
        .set    macro
371
        .set    reorder
372
 
373
.L30:
374
        lw      $v1,read_ptr
375
.L35:
376
        lui     $v0,%hi(buffer+120) # high
377
        addiu   $a0,$v0,%lo(buffer+120) # low
378
        sltu    $v0,$v1,$a0
379
        .set    noreorder
380
        .set    nomacro
381
        bne     $v0,$zero,.L32
382
        addu    $v0,$a0,-120
383
        .set    macro
384
        .set    reorder
385
 
386
        sb      $zero,0($v1)
387
        sw      $v0,read_ptr
388
        lui     $a0,%hi(.LC1) # high
389
        .set    noreorder
390
        .set    nomacro
391
        jal     print_uart
392
        addiu   $a0,$a0,%lo(.LC1) # low
393
        .set    macro
394
        .set    reorder
395
 
396
        b       .L29
397
.L32:
398
        .set    noreorder
399
        .set    nomacro
400
        jal     putc_uart
401
        move    $a0,$s0
402
        .set    macro
403
        .set    reorder
404
 
405
        lw      $v0,read_ptr
406
        sb      $s0,0($v0)
407
        addu    $v0,$v0,1
408
.L34:
409
        sw      $v0,read_ptr
410
.L29:
411
 #APP
412
                lw      $a0,($sp)
413
                lw  $v0,4($sp)
414
                lw  $v1,8($sp)
415
                lw  $a1,12($sp)
416
                lw  $s0,16($sp)
417
                lw  $s1,20($sp)
418
                lw  $s2,24($sp)
419
                lw  $a3,28($sp)
420
                lw  $s4,32($sp)
421
                lw  $s5,36($sp)
422
                lw  $s6,40($sp)
423
                lw  $s7,44($sp)
424
                lw  $a2,48($sp)
425
        addiu   $sp,$sp,52 ;
426
        lw      $ra,20($sp);
427
        addiu   $sp,$sp,24 ;
428
        jr      $26
429
        nop
430
 #NO_APP
431
        lw      $ra,20($sp)
432
        lw      $s0,16($sp)
433
        .set    noreorder
434
        .set    nomacro
435
        j       $ra
436
        addu    $sp,$sp,24
437
        .set    macro
438
        .set    reorder
439
 
440
        .end    interrupt
441
        .size   interrupt,.-interrupt
442
        .align  2
443
        .globl  print_longlong
444
        .ent    print_longlong
445
print_longlong:
446
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
447
        .mask   0x00000000,0
448
        .fmask  0x00000000,0
449
        li      $a2,16372                       # 0x00003ff4
450
        sra     $v1,$a0,0
451
        sra     $v0,$a0,31
452
        #.set   volatile
453
        sw      $v1,0($a2)
454
        #.set   novolatile
455
        #.set   volatile
456
        sw      $a1,0($a2)
457
        #.set   novolatile
458
        j       $ra
459
        .end    print_longlong
460
        .size   print_longlong,.-print_longlong
461
        .align  2
462
        .globl  getsym
463
        .ent    getsym
464
getsym:
465
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
466
        .mask   0x00000000,0
467
        .fmask  0x00000000,0
468
        lw      $v0,char_ptr
469
        lbu     $a0,0($v0)
470
        .set    noreorder
471
        .set    nomacro
472
        b       .L47
473
        xori    $v1,$a0,0x0020
474
        .set    macro
475
        .set    reorder
476
 
477
.L42:
478
        lw      $v1,char_ptr
479
        addu    $v0,$v1,1
480
        sw      $v0,char_ptr
481
        lbu     $a0,1($v1)
482
        xori    $v1,$a0,0x0020
483
.L47:
484
        sltu    $v1,$v1,1
485
        xori    $v0,$a0,0x000a
486
        sltu    $v0,$v0,1
487
        or      $v1,$v1,$v0
488
        .set    noreorder
489
        .set    nomacro
490
        bne     $v1,$zero,.L42
491
        li      $v0,13                  # 0x0000000d
492
        .set    macro
493
        .set    reorder
494
 
495
        beq     $a0,$v0,.L42
496
        lw      $v0,char_ptr
497
        lbu     $v0,0($v0)
498
        bne     $v0,$zero,.L44
499
        sb      $zero,sym
500
        b       .L45
501
.L44:
502
        lw      $v0,char_ptr
503
        lbu     $v1,0($v0)
504
        sb      $v1,sym
505
        addu    $v0,$v0,1
506
        sw      $v0,char_ptr
507
.L45:
508
        j       $ra
509
        .end    getsym
510
        .size   getsym,.-getsym
511
        .align  2
512
        .globl  evaluate_number
513
        .ent    evaluate_number
514
evaluate_number:
515
        .frame  $sp,24,$ra              # vars= 0, regs= 2/0, args= 16, extra= 0
516
        .mask   0x80010000,-4
517
        .fmask  0x00000000,0
518
        subu    $sp,$sp,24
519
        sw      $ra,20($sp)
520
        sw      $s0,16($sp)
521
        lbu     $s0,sym
522
        lw      $v0,char_ptr
523
        move    $v1,$v0
524
        lbu     $v0,0($v0)
525
        .set    noreorder
526
        .set    nomacro
527
        b       .L55
528
        addu    $s0,$s0,-48
529
        .set    macro
530
        .set    reorder
531
 
532
.L53:
533
        addu    $v0,$v0,$s0
534
        sll     $v0,$v0,1
535
        move    $a0,$v1
536
        lbu     $v1,0($a0)
537
        addu    $v0,$v0,$v1
538
        addu    $s0,$v0,-48
539
        addu    $v0,$a0,1
540
        sw      $v0,char_ptr
541
        move    $v1,$v0
542
        lbu     $v0,1($a0)
543
.L55:
544
        addu    $v0,$v0,-48
545
        sltu    $v0,$v0,10
546
        .set    noreorder
547
        .set    nomacro
548
        bne     $v0,$zero,.L53
549
        sll     $v0,$s0,2
550
        .set    macro
551
        .set    reorder
552
 
553
        jal     getsym
554
        move    $v0,$s0
555
        lw      $ra,20($sp)
556
        lw      $s0,16($sp)
557
        .set    noreorder
558
        .set    nomacro
559
        j       $ra
560
        addu    $sp,$sp,24
561
        .set    macro
562
        .set    reorder
563
 
564
        .end    evaluate_number
565
        .size   evaluate_number,.-evaluate_number
566
        .align  2
567
        .globl  expression
568
        .ent    expression
569
expression:
570
        .frame  $sp,32,$ra              # vars= 0, regs= 4/0, args= 16, extra= 0
571
        .mask   0x80070000,-4
572
        .fmask  0x00000000,0
573
        subu    $sp,$sp,32
574
        sw      $ra,28($sp)
575
        sw      $s2,24($sp)
576
        sw      $s1,20($sp)
577
        sw      $s0,16($sp)
578
        lbu     $s0,sym
579
        xori    $v1,$s0,0x002b
580
        sltu    $v1,$v1,1
581
        xori    $v0,$s0,0x002d
582
        sltu    $v0,$v0,1
583
        or      $v1,$v1,$v0
584
        beq     $v1,$zero,.L57
585
        jal     getsym
586
.L57:
587
        jal     term
588
        move    $s1,$v0
589
        li      $v0,45                  # 0x0000002d
590
        bne     $s0,$v0,.L58
591
        subu    $s1,$zero,$s1
592
.L58:
593
        lbu     $v0,sym
594
        move    $a0,$v0
595
        andi    $v0,$v0,0x00ff
596
        xori    $v1,$v0,0x002b
597
        sltu    $v1,$v1,1
598
        xori    $v0,$v0,0x002d
599
        sltu    $v0,$v0,1
600
        or      $v1,$v1,$v0
601
        .set    noreorder
602
        .set    nomacro
603
        beq     $v1,$zero,.L60
604
        li      $s2,43                  # 0x0000002b
605
        .set    macro
606
        .set    reorder
607
 
608
.L61:
609
        .set    noreorder
610
        .set    nomacro
611
        jal     getsym
612
        move    $s0,$a0
613
        .set    macro
614
        .set    reorder
615
 
616
        jal     term
617
        bne     $s0,$s2,.L62
618
        .set    noreorder
619
        .set    nomacro
620
        b       .L59
621
        addu    $s1,$s1,$v0
622
        .set    macro
623
        .set    reorder
624
 
625
.L62:
626
        subu    $s1,$s1,$v0
627
.L59:
628
        lbu     $a0,sym
629
        andi    $v0,$a0,0x00ff
630
        xori    $v1,$v0,0x002b
631
        sltu    $v1,$v1,1
632
        xori    $v0,$v0,0x002d
633
        sltu    $v0,$v0,1
634
        or      $v1,$v1,$v0
635
        bne     $v1,$zero,.L61
636
.L60:
637
        move    $v0,$s1
638
        lw      $ra,28($sp)
639
        lw      $s2,24($sp)
640
        lw      $s1,20($sp)
641
        lw      $s0,16($sp)
642
        .set    noreorder
643
        .set    nomacro
644
        j       $ra
645
        addu    $sp,$sp,32
646
        .set    macro
647
        .set    reorder
648
 
649
        .end    expression
650
        .size   expression,.-expression
651
        .align  2
652
        .globl  term
653
        .ent    term
654
term:
655
        .frame  $sp,32,$ra              # vars= 0, regs= 3/0, args= 16, extra= 0
656
        .mask   0x80030000,-8
657
        .fmask  0x00000000,0
658
        subu    $sp,$sp,32
659
        sw      $ra,24($sp)
660
        sw      $s1,20($sp)
661
        .set    noreorder
662
        .set    nomacro
663
        jal     factor
664
        sw      $s0,16($sp)
665
        .set    macro
666
        .set    reorder
667
 
668
        .set    noreorder
669
        .set    nomacro
670
        b       .L66
671
        move    $s1,$v0
672
        .set    macro
673
        .set    reorder
674
 
675
.L68:
676
        lbu     $s0,sym
677
        jal     getsym
678
        jal     factor
679
        move    $v1,$v0
680
        li      $v0,42                  # 0x0000002a
681
        .set    noreorder
682
        .set    nomacro
683
        beq     $s0,$v0,.L70
684
        slt     $v0,$s0,43
685
        .set    macro
686
        .set    reorder
687
 
688
        .set    noreorder
689
        .set    nomacro
690
        beq     $v0,$zero,.L75
691
        li      $v0,37                  # 0x00000025
692
        .set    macro
693
        .set    reorder
694
 
695
        beq     $s0,$v0,.L72
696
        b       .L66
697
.L75:
698
        li      $v0,47                  # 0x0000002f
699
        beq     $s0,$v0,.L71
700
        b       .L66
701
.L70:
702
        mult    $s1,$v1
703
        mflo    $s1
704
        b       .L66
705
.L71:
706
        div     $s1,$s1,$v1
707
        b       .L66
708
.L72:
709
        rem     $s1,$s1,$v1
710
.L66:
711
        lbu     $a0,sym
712
        xori    $v1,$a0,0x002a
713
        sltu    $v1,$v1,1
714
        xori    $v0,$a0,0x002f
715
        sltu    $v0,$v0,1
716
        or      $v1,$v1,$v0
717
        .set    noreorder
718
        .set    nomacro
719
        bne     $v1,$zero,.L68
720
        li      $v0,37                  # 0x00000025
721
        .set    macro
722
        .set    reorder
723
 
724
        .set    noreorder
725
        .set    nomacro
726
        beq     $a0,$v0,.L68
727
        move    $v0,$s1
728
        .set    macro
729
        .set    reorder
730
 
731
        lw      $ra,24($sp)
732
        lw      $s1,20($sp)
733
        lw      $s0,16($sp)
734
        .set    noreorder
735
        .set    nomacro
736
        j       $ra
737
        addu    $sp,$sp,32
738
        .set    macro
739
        .set    reorder
740
 
741
        .end    term
742
        .size   term,.-term
743
        .text
744
        .align  2
745
        .globl  factor
746
        .ent    factor
747
factor:
748
        .frame  $sp,24,$ra              # vars= 0, regs= 2/0, args= 16, extra= 0
749
        .mask   0x80010000,-4
750
        .fmask  0x00000000,0
751
        subu    $sp,$sp,24
752
        sw      $ra,20($sp)
753
        sw      $s0,16($sp)
754
        lbu     $v0,sym
755
        addu    $v0,$v0,-48
756
        sltu    $v0,$v0,10
757
        .set    noreorder
758
        .set    nomacro
759
        beq     $v0,$zero,.L80
760
        li      $v0,40                  # 0x00000028
761
        .set    macro
762
        .set    reorder
763
 
764
        jal     evaluate_number
765
        b       .L89
766
.L80:
767
        lbu     $v1,sym
768
        bne     $v1,$v0,.L82
769
        jal     getsym
770
        jal     expression
771
        move    $s0,$v0
772
        lbu     $v1,sym
773
        li      $v0,41                  # 0x00000029
774
        .set    noreorder
775
        .set    nomacro
776
        beq     $v1,$v0,.L83
777
        lui     $a0,%hi(.LC2) # high
778
        .set    macro
779
        .set    reorder
780
 
781
        .set    noreorder
782
        .set    nomacro
783
        jal     print_uart
784
        addiu   $a0,$a0,%lo(.LC2) # low
785
        .set    macro
786
        .set    reorder
787
 
788
.L83:
789
        jal     getsym
790
        .set    noreorder
791
        .set    nomacro
792
        b       .L89
793
        move    $v0,$s0
794
        .set    macro
795
        .set    reorder
796
 
797
.L82:
798
        lbu     $v0,sym
799
        .set    noreorder
800
        .set    nomacro
801
        beq     $v0,$zero,.L89
802
        move    $v0,$zero
803
        .set    macro
804
        .set    reorder
805
 
806
        lui     $a0,%hi(.LC2) # high
807
        .set    noreorder
808
        .set    nomacro
809
        jal     print_uart
810
        addiu   $a0,$a0,%lo(.LC2) # low
811
        .set    macro
812
        .set    reorder
813
 
814
        move    $v0,$zero
815
.L89:
816
        lw      $ra,20($sp)
817
        lw      $s0,16($sp)
818
        .set    noreorder
819
        .set    nomacro
820
        j       $ra
821
        addu    $sp,$sp,24
822
        .set    macro
823
        .set    reorder
824
 
825
        .end    factor
826
        .size   factor,.-factor
827
        .align  2
828
        .globl  strrev
829
        .ent    strrev
830
strrev:
831
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
832
        .mask   0x00000000,0
833
        .fmask  0x00000000,0
834
        move    $a2,$a0
835
        lbu     $v0,0($a0)
836
        .set    noreorder
837
        .set    nomacro
838
        beq     $v0,$zero,.L99
839
        move    $a1,$a0
840
        .set    macro
841
        .set    reorder
842
 
843
        addu    $a1,$a1,1
844
.L101:
845
        lbu     $v0,0($a1)
846
        .set    noreorder
847
        .set    nomacro
848
        bne     $v0,$zero,.L101
849
        addu    $a1,$a1,1
850
        .set    macro
851
        .set    reorder
852
 
853
        addu    $a1,$a1,-1
854
        .set    noreorder
855
        .set    nomacro
856
        b       .L100
857
        addu    $a1,$a1,-1
858
        .set    macro
859
        .set    reorder
860
 
861
.L97:
862
        lbu     $v0,0($a2)
863
        lbu     $v1,0($a1)
864
        sb      $v1,0($a2)
865
        sb      $v0,0($a1)
866
        addu    $a2,$a2,1
867
.L99:
868
        addu    $a1,$a1,-1
869
.L100:
870
        sltu    $v0,$a2,$a1
871
        bne     $v0,$zero,.L97
872
        .set    noreorder
873
        .set    nomacro
874
        j       $ra
875
        move    $v0,$a0
876
        .set    macro
877
        .set    reorder
878
 
879
        .end    strrev
880
        .size   strrev,.-strrev
881
        .align  2
882
        .globl  itoa
883
        .ent    itoa
884
itoa:
885
        .frame  $sp,24,$ra              # vars= 0, regs= 1/0, args= 16, extra= 0
886
        .mask   0x80000000,-8
887
        .fmask  0x00000000,0
888
        subu    $sp,$sp,24
889
        .set    noreorder
890
        .set    nomacro
891
        bgez    $a0,.L103
892
        sw      $ra,16($sp)
893
        .set    macro
894
        .set    reorder
895
 
896
        li      $v0,45                  # 0x0000002d
897
        sb      $v0,0($a1)
898
        addu    $a1,$a1,1
899
        subu    $a0,$zero,$a0
900
.L103:
901
        .set    noreorder
902
        .set    nomacro
903
        beq     $a0,$zero,.L105
904
        move    $a3,$a1
905
        .set    macro
906
        .set    reorder
907
 
908
        li      $t0,1717960704                  # 0x66660000
909
        ori     $t0,$t0,0x6667
910
.L106:
911
        mult    $a0,$t0
912
        mfhi    $t1
913
        sra     $v1,$t1,2
914
        sra     $v0,$a0,31
915
        subu    $a2,$v1,$v0
916
        move    $v1,$a2
917
        sll     $v0,$a2,2
918
        addu    $v0,$v0,$a2
919
        sll     $v0,$v0,1
920
        subu    $a2,$a0,$v0
921
        addu    $v0,$a2,48
922
        sb      $v0,0($a3)
923
        move    $a0,$v1
924
        .set    noreorder
925
        .set    nomacro
926
        bne     $a0,$zero,.L106
927
        addu    $a3,$a3,1
928
        .set    macro
929
        .set    reorder
930
 
931
.L105:
932
        .set    noreorder
933
        .set    nomacro
934
        bne     $a1,$a3,.L108
935
        li      $v0,48                  # 0x00000030
936
        .set    macro
937
        .set    reorder
938
 
939
        sb      $v0,0($a1)
940
        addu    $a3,$a1,1
941
.L108:
942
        sb      $zero,0($a3)
943
        .set    noreorder
944
        .set    nomacro
945
        jal     strrev
946
        move    $a0,$a1
947
        .set    macro
948
        .set    reorder
949
 
950
        lw      $ra,16($sp)
951
        .set    noreorder
952
        .set    nomacro
953
        j       $ra
954
        addu    $sp,$sp,24
955
        .set    macro
956
        .set    reorder
957
 
958
        .end    itoa
959
        .size   itoa,.-itoa
960
        .text
961
        .align  2
962
        .globl  calculator
963
        .ent    calculator
964
calculator:
965
        .frame  $sp,32,$ra              # vars= 0, regs= 3/0, args= 16, extra= 0
966
        .mask   0x80030000,-8
967
        .fmask  0x00000000,0
968
        subu    $sp,$sp,32
969
        sw      $ra,24($sp)
970
        sw      $s1,20($sp)
971
        sw      $s0,16($sp)
972
        lui     $s0,%hi(buffer) # high
973
        addiu   $s0,$s0,%lo(buffer) # low
974
        sw      $s0,char_ptr
975
        jal     getsym
976
        jal     expression
977
        move    $s1,$v0
978
        lui     $a0,%hi(.LC3) # high
979
        .set    noreorder
980
        .set    nomacro
981
        jal     print
982
        addiu   $a0,$a0,%lo(.LC3) # low
983
        .set    macro
984
        .set    reorder
985
 
986
        .set    noreorder
987
        .set    nomacro
988
        jal     print
989
        move    $a0,$s0
990
        .set    macro
991
        .set    reorder
992
 
993
        lui     $a0,%hi(.LC4) # high
994
        .set    noreorder
995
        .set    nomacro
996
        jal     print
997
        addiu   $a0,$a0,%lo(.LC4) # low
998
        .set    macro
999
        .set    reorder
1000
 
1001
        .set    noreorder
1002
        .set    nomacro
1003
        jal     print_long
1004
        move    $a0,$s1
1005
        .set    macro
1006
        .set    reorder
1007
 
1008
        lui     $a0,%hi(.LC5) # high
1009
        .set    noreorder
1010
        .set    nomacro
1011
        jal     print
1012
        addiu   $a0,$a0,%lo(.LC5) # low
1013
        .set    macro
1014
        .set    reorder
1015
 
1016
        la      $a1,result_buffer
1017
        .set    noreorder
1018
        .set    nomacro
1019
        jal     itoa
1020
        move    $a0,$s1
1021
        .set    macro
1022
        .set    reorder
1023
 
1024
        la      $a0,result_buffer
1025
        jal     print
1026
        lui     $a0,%hi(.LC6) # high
1027
        .set    noreorder
1028
        .set    nomacro
1029
        jal     print
1030
        addiu   $a0,$a0,%lo(.LC6) # low
1031
        .set    macro
1032
        .set    reorder
1033
 
1034
        lw      $ra,24($sp)
1035
        lw      $s1,20($sp)
1036
        lw      $s0,16($sp)
1037
        .set    noreorder
1038
        .set    nomacro
1039
        j       $ra
1040
        addu    $sp,$sp,32
1041
        .set    macro
1042
        .set    reorder
1043
 
1044
        .end    calculator
1045
        .size   calculator,.-calculator
1046
        .align  2
1047
        .globl  strcpy
1048
        .ent    strcpy
1049
strcpy:
1050
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
1051
        .mask   0x00000000,0
1052
        .fmask  0x00000000,0
1053
        lbu     $v0,0($a1)
1054
        .set    noreorder
1055
        .set    nomacro
1056
        beq     $v0,$zero,.L113
1057
        move    $v1,$v0
1058
        .set    macro
1059
        .set    reorder
1060
 
1061
.L114:
1062
        sb      $v1,0($a0)
1063
        addu    $a1,$a1,1
1064
        lbu     $v1,0($a1)
1065
        .set    noreorder
1066
        .set    nomacro
1067
        bne     $v1,$zero,.L114
1068
        addu    $a0,$a0,1
1069
        .set    macro
1070
        .set    reorder
1071
 
1072
.L113:
1073
        .set    noreorder
1074
        .set    nomacro
1075
        j       $ra
1076
        sb      $zero,0($a0)
1077
        .set    macro
1078
        .set    reorder
1079
 
1080
        .end    strcpy
1081
        .size   strcpy,.-strcpy
1082
        .align  2
1083
        .globl  calculator_test
1084
        .ent    calculator_test
1085
calculator_test:
1086
        .frame  $sp,24,$ra              # vars= 0, regs= 1/0, args= 16, extra= 0
1087
        .mask   0x80000000,-8
1088
        .fmask  0x00000000,0
1089
        subu    $sp,$sp,24
1090
        sw      $ra,16($sp)
1091
        move    $a1,$a0
1092
        lui     $a0,%hi(buffer) # high
1093
        .set    noreorder
1094
        .set    nomacro
1095
        jal     strcpy
1096
        addiu   $a0,$a0,%lo(buffer) # low
1097
        .set    macro
1098
        .set    reorder
1099
 
1100
        jal     calculator
1101
        lw      $ra,16($sp)
1102
        .set    noreorder
1103
        .set    nomacro
1104
        j       $ra
1105
        addu    $sp,$sp,24
1106
        .set    macro
1107
        .set    reorder
1108
 
1109
        .end    calculator_test
1110
        .size   calculator_test,.-calculator_test
1111
        .text
1112
        .align  2
1113
        .globl  main2
1114
        .ent    main2
1115
main2:
1116
        .frame  $sp,24,$ra              # vars= 0, regs= 2/0, args= 16, extra= 0
1117
        .mask   0x80010000,-4
1118
        .fmask  0x00000000,0
1119
        subu    $sp,$sp,24
1120
        sw      $ra,20($sp)
1121
        sw      $s0,16($sp)
1122
        move    $s0,$zero
1123
        li      $v1,16376                       # 0x00003ff8
1124
        lui     $v0,%hi(interrupt) # high
1125
        addiu   $v0,$v0,%lo(interrupt) # low
1126
        #.set   volatile
1127
        sw      $v0,0($v1)
1128
        #.set   novolatile
1129
        lui     $v0,%hi(buffer) # high
1130
        addiu   $v0,$v0,%lo(buffer) # low
1131
        sw      $v0,read_ptr
1132
        lui     $a0,%hi(.LC7) # high
1133
        .set    noreorder
1134
        .set    nomacro
1135
        jal     print_uart
1136
        addiu   $a0,$a0,%lo(.LC7) # low
1137
        .set    macro
1138
        .set    reorder
1139
 
1140
        lui     $a0,%hi(.LC8) # high
1141
        .set    noreorder
1142
        .set    nomacro
1143
        jal     print_uart
1144
        addiu   $a0,$a0,%lo(.LC8) # low
1145
        .set    macro
1146
        .set    reorder
1147
 
1148
        lui     $a0,%hi(.LC9) # high
1149
        .set    noreorder
1150
        .set    nomacro
1151
        jal     print_uart
1152
        addiu   $a0,$a0,%lo(.LC9) # low
1153
        .set    macro
1154
        .set    reorder
1155
 
1156
        lui     $a0,%hi(.LC10) # high
1157
        .set    noreorder
1158
        .set    nomacro
1159
        jal     print_uart
1160
        addiu   $a0,$a0,%lo(.LC10) # low
1161
        .set    macro
1162
        .set    reorder
1163
 
1164
        lui     $a0,%hi(.LC11) # high
1165
        .set    noreorder
1166
        .set    nomacro
1167
        jal     print_uart
1168
        addiu   $a0,$a0,%lo(.LC11) # low
1169
        .set    macro
1170
        .set    reorder
1171
 
1172
        lui     $a0,%hi(.LC12) # high
1173
        .set    noreorder
1174
        .set    nomacro
1175
        jal     print_uart
1176
        addiu   $a0,$a0,%lo(.LC12) # low
1177
        .set    macro
1178
        .set    reorder
1179
 
1180
        lui     $a0,%hi(.LC13) # high
1181
        .set    noreorder
1182
        .set    nomacro
1183
        jal     print_uart
1184
        addiu   $a0,$a0,%lo(.LC13) # low
1185
        .set    macro
1186
        .set    reorder
1187
 
1188
        lui     $a0,%hi(.LC14) # high
1189
        .set    noreorder
1190
        .set    nomacro
1191
        jal     print_uart
1192
        addiu   $a0,$a0,%lo(.LC14) # low
1193
        .set    macro
1194
        .set    reorder
1195
 
1196
        lui     $a0,%hi(.LC15) # high
1197
        .set    noreorder
1198
        .set    nomacro
1199
        jal     print_uart
1200
        addiu   $a0,$a0,%lo(.LC15) # low
1201
        .set    macro
1202
        .set    reorder
1203
 
1204
        lui     $a0,%hi(.LC16) # high
1205
        .set    noreorder
1206
        .set    nomacro
1207
        jal     print_uart
1208
        addiu   $a0,$a0,%lo(.LC16) # low
1209
        .set    macro
1210
        .set    reorder
1211
 
1212
        lui     $a0,%hi(.LC17) # high
1213
        .set    noreorder
1214
        .set    nomacro
1215
        jal     print_uart
1216
        addiu   $a0,$a0,%lo(.LC17) # low
1217
        .set    macro
1218
        .set    reorder
1219
 
1220
        lui     $a0,%hi(.LC18) # high
1221
        .set    noreorder
1222
        .set    nomacro
1223
        jal     print_uart
1224
        addiu   $a0,$a0,%lo(.LC18) # low
1225
        .set    macro
1226
        .set    reorder
1227
 
1228
.L119:
1229
        #.set   volatile
1230
        lw      $v0,int_flag
1231
        #.set   novolatile
1232
        beq     $v0,$zero,.L119
1233
        #.set   volatile
1234
        sw      $zero,int_flag
1235
        #.set   novolatile
1236
        .set    noreorder
1237
        .set    nomacro
1238
        jal     calculator
1239
        addu    $s0,$s0,1
1240
        .set    macro
1241
        .set    reorder
1242
 
1243
        sltu    $v0,$s0,12
1244
        bne     $v0,$zero,.L119
1245
        lui     $a0,%hi(.LC19) # high
1246
        .set    noreorder
1247
        .set    nomacro
1248
        jal     print
1249
        addiu   $a0,$a0,%lo(.LC19) # low
1250
        .set    macro
1251
        .set    reorder
1252
 
1253
        b       .L119
1254
        .end    main2
1255
        .size   main2,.-main2
1256
        .align  2
1257
        .globl  set_interrupt_address
1258
        .ent    set_interrupt_address
1259
set_interrupt_address:
1260
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
1261
        .mask   0x00000000,0
1262
        .fmask  0x00000000,0
1263
        li      $v0,16376                       # 0x00003ff8
1264
        lui     $v1,%hi(interrupt) # high
1265
        addiu   $v1,$v1,%lo(interrupt) # low
1266
        #.set   volatile
1267
        sw      $v1,0($v0)
1268
        #.set   novolatile
1269
        lui     $v0,%hi(buffer) # high
1270
        addiu   $v0,$v0,%lo(buffer) # low
1271
        sw      $v0,read_ptr
1272
        j       $ra
1273
        .end    set_interrupt_address
1274
        .size   set_interrupt_address,.-set_interrupt_address
1275
        .align  2
1276
        .globl  init_parser
1277
        .ent    init_parser
1278
init_parser:
1279
        .frame  $sp,24,$ra              # vars= 0, regs= 1/0, args= 16, extra= 0
1280
        .mask   0x80000000,-8
1281
        .fmask  0x00000000,0
1282
        subu    $sp,$sp,24
1283
        sw      $ra,16($sp)
1284
        lui     $v0,%hi(buffer) # high
1285
        addiu   $v0,$v0,%lo(buffer) # low
1286
        sw      $v0,char_ptr
1287
        jal     getsym
1288
        lw      $ra,16($sp)
1289
        .set    noreorder
1290
        .set    nomacro
1291
        j       $ra
1292
        addu    $sp,$sp,24
1293
        .set    macro
1294
        .set    reorder
1295
 
1296
        .end    init_parser
1297
        .size   init_parser,.-init_parser
1298
        .align  2
1299
        .globl  parse_error
1300
        .ent    parse_error
1301
parse_error:
1302
        .frame  $sp,24,$ra              # vars= 0, regs= 1/0, args= 16, extra= 0
1303
        .mask   0x80000000,-8
1304
        .fmask  0x00000000,0
1305
        subu    $sp,$sp,24
1306
        sw      $ra,16($sp)
1307
        lui     $a0,%hi(.LC2) # high
1308
        .set    noreorder
1309
        .set    nomacro
1310
        jal     print_uart
1311
        addiu   $a0,$a0,%lo(.LC2) # low
1312
        .set    macro
1313
        .set    reorder
1314
 
1315
        move    $v0,$zero
1316
        lw      $ra,16($sp)
1317
        .set    noreorder
1318
        .set    nomacro
1319
        j       $ra
1320
        addu    $sp,$sp,24
1321
        .set    macro
1322
        .set    reorder
1323
 
1324
        .end    parse_error
1325
        .size   parse_error,.-parse_error

powered by: WebSVN 2.1.0

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