Files
mips/_old/src/testbench.lst
T
jens 26291bca3d - initial import
git-svn-id: http://moon:8086/svn/mips@1 a8ebac50-d88d-4704-bea3-6648445a41b3
2014-07-20 15:01:37 +00:00

1045 lines
32 KiB
Plaintext

GAS LISTING testbench.s page 1
1 .file 1 "testbench.c"
2 .set nobopt
3 .text
4 .align 2
5 .globl fibonacci
6 .ent fibonacci
7 fibonacci:
8 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
9 .mask 0x00000000,0
10 .fmask 0x00000000,0
11 0000 02000824 li $8,2 # 0x2
12 0004 2A100701 slt $2,$8,$7
13 0008 0000C4AC sw $4,0($6)
14 .set noreorder
15 .set nomacro
16 000c 0A004010 beq $2,$0,$L7
17 0010 0400C5AC sw $5,4($6)
18 .set macro
19 .set reorder
20
21 0014 0800C624 addiu $6,$6,8
22 $L5:
23 0018 F8FFC28C lw $2,-8($6)
24 001c FCFFC38C lw $3,-4($6)
25 0020 01000825 addiu $8,$8,1
26 0024 21104300 addu $2,$2,$3
27 0028 2A200701 slt $4,$8,$7
28 002c 0000C2AC sw $2,0($6)
29 .set noreorder
30 .set nomacro
31 0030 F9FF8014 bne $4,$0,$L5
32 0034 0400C624 addiu $6,$6,4
33 .set macro
34 .set reorder
35
36 $L7:
37 .set noreorder
38 .set nomacro
39 0038 0800E003 j $31
40 003c 21100001 move $2,$8
41 .set macro
42 .set reorder
43
44 .end fibonacci
45 .align 2
46 .globl StatusRegister_read
47 .ent StatusRegister_read
48 StatusRegister_read:
49 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
50 .mask 0x00000000,0
51 .fmask 0x00000000,0
52 #APP
53 .set noreorder
54 0040 00600240 mfc0 $2, $12
55 .set reorder
56
57 #NO_APP
GAS LISTING testbench.s page 2
58 0044 0800E003 j $31
58 00000000
59 .end StatusRegister_read
60 .align 2
61 .globl RevisionRegister_read
62 .ent RevisionRegister_read
63 RevisionRegister_read:
64 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
65 .mask 0x00000000,0
66 .fmask 0x00000000,0
67 #APP
68 .set noreorder
69 004c 00780240 mfc0 $2, $15
70 .set reorder
71
72 #NO_APP
73 0050 0800E003 j $31
73 00000000
74 .end RevisionRegister_read
75 .section .rodata.str1.4,"aMS",@progbits,1
76 .align 2
77 $LC0:
78 0000 696E7661 .ascii "invalid\000"
78 6C696400
79 .align 2
80 $LC1:
81 0008 52323030 .ascii "R2000\000"
81 3000
82 000e 0000 .align 2
83 $LC2:
84 0010 52333030 .ascii "R3000\000"
84 3000
85 0016 0000 .align 2
86 $LC3:
87 0018 52363030 .ascii "R6000\000"
87 3000
88 001e 0000 .align 2
89 $LC4:
90 0020 52343030 .ascii "R4000\000"
90 3000
91 0026 0000 .align 2
92 $LC5:
93 0028 72657365 .ascii "reserved\000"
93 72766564
93 00
94 0031 000000 .align 2
95 $LC6:
96 0034 52363030 .ascii "R6000A\000"
96 304100
97 .rdata
98 .align 2
99 $LC7:
100 0000 00000000 .word $LC0
101 0004 08000000 .word $LC1
102 0008 10000000 .word $LC2
103 000c 18000000 .word $LC3
104 0010 20000000 .word $LC4
GAS LISTING testbench.s page 3
105 0014 28000000 .word $LC5
106 0018 34000000 .word $LC6
107 .section .rodata.str1.4
108 003b 00 .align 2
109 $LC8:
110 003c 53746174 .ascii "Status : \000"
110 75732020
110 3A2000
111 0047 00 .align 2
112 $LC9:
113 0048 0D0A00 .ascii "\r\n\000"
114 004b 00 .align 2
115 $LC10:
116 004c 43505520 .ascii "CPU type: \000"
116 74797065
116 3A2000
117 0057 00 .align 2
118 $LC12:
119 0058 556E6B6E .ascii "Unknown\000"
119 6F776E00
120 .align 2
121 $LC11:
122 0060 20526576 .ascii " Rev.\000"
122 2E00
123 .text
124 .align 2
125 .globl PrintCPUinfo
126 .ent PrintCPUinfo
127 PrintCPUinfo:
128 .frame $sp,64,$31 # vars= 32, regs= 3/0, args= 16, gp= 0
129 .mask 0x80030000,-8
130 .fmask 0x00000000,0
131 0058 0000023C lw $2,$LC7
131 0000428C
132 0060 C0FFBD27 addiu $sp,$sp,-64
133 0064 0000033C lw $3,$LC7+4
133 0400638C
134 006c 1000A2AF sw $2,16($sp)
135 0070 0000023C lw $2,$LC7+8
135 0800428C
136 0078 1400A3AF sw $3,20($sp)
137 007c 1800A2AF sw $2,24($sp)
138 0080 0000033C lw $3,$LC7+12
138 0C00638C
139 0088 0000023C lw $2,$LC7+16
139 1000428C
140 0090 1C00A3AF sw $3,28($sp)
141 0094 2000A2AF sw $2,32($sp)
142 0098 0000033C lw $3,$LC7+20
142 1400638C
143 00a0 0000023C lw $2,$LC7+24
143 1800428C
144 00a8 2400A3AF sw $3,36($sp)
145 00ac 3800BFAF sw $31,56($sp)
146 00b0 3400B1AF sw $17,52($sp)
147 00b4 3000B0AF sw $16,48($sp)
148 .set noreorder
GAS LISTING testbench.s page 4
149 .set nomacro
150 00b8 0000000C jal StatusRegister_read
151 00bc 2800A2AF sw $2,40($sp)
152 .set macro
153 .set reorder
154
155 00c0 0000043C la $4,$LC8
155 00008424
156 .set noreorder
157 .set nomacro
158 00c8 0000000C jal sputs
159 00cc 21884000 move $17,$2
160 .set macro
161 .set reorder
162
163 .set noreorder
164 .set nomacro
165 00d0 0000000C jal print_word
166 00d4 21202002 move $4,$17
167 .set macro
168 .set reorder
169
170 00d8 0000043C la $4,$LC9
170 0000000C
171 00e0 00008424 jal sputs
172 00e4 0000000C jal RevisionRegister_read
172 00000000
173 00ec 03820200 sra $16,$2,8
174 00f0 FF001032 andi $16,$16,0xff
175 00f4 0000043C la $4,$LC10
175 00008424
176 .set noreorder
177 .set nomacro
178 00fc 0000000C jal sputs
179 0100 21884000 move $17,$2
180 .set macro
181 .set reorder
182
183 0104 80181000 sll $3,$16,2
184 0108 FFFF1026 addiu $16,$16,-1
185 010c 0600102E sltu $16,$16,6
186 0110 0000043C la $4,$LC12
186 00008424
187 .set noreorder
188 .set nomacro
189 0118 12000012 beq $16,$0,$L12
190 011c 2110A303 addu $2,$sp,$3
191 .set macro
192 .set reorder
193
194 0120 1000448C lw $4,16($2)
195 0124 0000000C jal sputs
195 00000000
196 012c 0000043C la $4,$LC11
196 0000000C
197 0134 00008424 jal sputs
198 0138 00261100 sll $4,$17,24
GAS LISTING testbench.s page 5
199 .set noreorder
200 .set nomacro
201 013c 0000000C jal print_byte
202 0140 03260400 sra $4,$4,24
203 .set macro
204 .set reorder
205
206 0144 0000043C la $4,$LC9
206 0000000C
207 014c 00008424 jal sputs
208 0150 3800BF8F lw $31,56($sp)
209 0154 3400B18F lw $17,52($sp)
210 0158 3000B08F lw $16,48($sp)
211 .set noreorder
212 .set nomacro
213 015c 0800E003 j $31
214 0160 4000BD27 addiu $sp,$sp,64
215 .set macro
216 .set reorder
217
218 $L12:
219 0164 0000000C jal sputs
219 00000000
220 016c 0000043C la $4,$LC9
220 0000000C
221 0174 00008424 jal sputs
222 0178 3800BF8F lw $31,56($sp)
223 017c 3400B18F lw $17,52($sp)
224 0180 3000B08F lw $16,48($sp)
225 .set noreorder
226 .set nomacro
227 0184 0800E003 j $31
228 0188 4000BD27 addiu $sp,$sp,64
229 .set macro
230 .set reorder
231
232 .end PrintCPUinfo
233 .align 2
234 .globl Test10_LoadStore
235 .ent Test10_LoadStore
236 Test10_LoadStore:
237 .frame $sp,24,$31 # vars= 0, regs= 2/0, args= 16, gp= 0
238 .mask 0x80010000,-4
239 .fmask 0x00000000,0
240 018c E8FFBD27 addiu $sp,$sp,-24
241 0190 80000424 li $4,128 # 0x80
242 0194 1400BFAF sw $31,20($sp)
243 .set noreorder
244 .set nomacro
245 0198 0000000C jal malloc
246 019c 1000B0AF sw $16,16($sp)
247 .set macro
248 .set reorder
249
250 01a0 21204000 move $4,$2
251 01a4 5555023C li $2,1431633920 # 0x55550000
252 01a8 AAAA033C li $3,-1431699456 # 0xffffffffaaaa0000
GAS LISTING testbench.s page 6
253 01ac 55554534 ori $5,$2,0x5555
254 01b0 AAAA6634 ori $6,$3,0xaaaa
255 01b4 FFFF0724 li $7,-1 # 0xffffffffffffffff
256 01b8 000080AC sw $0,0($4)
257 01bc 040085AC sw $5,4($4)
258 01c0 080086AC sw $6,8($4)
259 01c4 0C0087AC sw $7,12($4)
260 01c8 0000838C lw $3,0($4)
261 01cc 0080023C li $2,-2147483648 # 0xffffffff80000000
262 .set noreorder
263 .set nomacro
264 01d0 05006014 bne $3,$0,$L16
265 01d4 10005034 ori $16,$2,0x10
266 .set macro
267 .set reorder
268
269 01d8 0400828C lw $2,4($4)
269 00000000
270 01e0 08004510 beq $2,$5,$L73
270 00000000
271 $L16:
272 01e8 0000000C jal free
272 00000000
273 01f0 21100002 move $2,$16
274 01f4 1400BF8F lw $31,20($sp)
275 01f8 1000B08F lw $16,16($sp)
276 .set noreorder
277 .set nomacro
278 01fc 0800E003 j $31
279 0200 1800BD27 addiu $sp,$sp,24
280 .set macro
281 .set reorder
282
283 $L73:
284 0204 0800828C lw $2,8($4)
284 00000000
285 020c F6FF4614 bne $2,$6,$L16
285 00000000
286 0214 0C00828C lw $2,12($4)
287 0218 00000000 .set noreorder
288 .set nomacro
289 021c F2FF4714 bne $2,$7,$L16
290 0220 21188000 move $3,$4
291 .set macro
292 .set reorder
293
294 0224 21280000 move $5,$0
295 0228 0080073C li $7,-2147483648 # 0xffffffff80000000
296 022c 1F000624 li $6,31 # 0x1f
297 $L24:
298 0230 43100500 sra $2,$5,1
299 0234 FFFFC624 addiu $6,$6,-1
300 0238 000065AC sw $5,0($3)
301 023c 04006324 addiu $3,$3,4
302 .set noreorder
303 .set nomacro
304 0240 FBFFC104 bgez $6,$L24
GAS LISTING testbench.s page 7
305 0244 25284700 or $5,$2,$7
306 .set macro
307 .set reorder
308
309 0248 21188000 move $3,$4
310 024c 21280000 move $5,$0
311 0250 21300000 move $6,$0
312 .set noreorder
313 .set nomacro
314 0254 9B000008 j $L29
315 0258 0080083C li $8,-2147483648 # 0xffffffff80000000
316 .set macro
317 .set reorder
318
319 $L74:
320 025c 0100C624 addiu $6,$6,1
321 0260 2000C228 slt $2,$6,32
322 .set noreorder
323 .set nomacro
324 0264 05004010 beq $2,$0,$L26
325 0268 2528E800 or $5,$7,$8
326 .set macro
327 .set reorder
328
329 $L29:
330 026c 0000628C lw $2,0($3)
331 0270 43380500 sra $7,$5,1
332 .set noreorder
333 .set nomacro
334 0274 F9FF4510 beq $2,$5,$L74
335 0278 04006324 addiu $3,$3,4
336 .set macro
337 .set reorder
338
339 $L26:
340 027c 20000224 li $2,32 # 0x20
341 .set noreorder
342 .set nomacro
343 0280 D9FFC214 bne $6,$2,$L16
344 0284 21188000 move $3,$4
345 .set macro
346 .set reorder
347
348 0288 21280000 move $5,$0
349 028c 1F000624 li $6,31 # 0x1f
350 $L34:
351 0290 40100500 sll $2,$5,1
352 0294 FFFFC624 addiu $6,$6,-1
353 0298 000065AC sw $5,0($3)
354 029c 04006324 addiu $3,$3,4
355 .set noreorder
356 .set nomacro
357 02a0 FBFFC104 bgez $6,$L34
358 02a4 01004534 ori $5,$2,0x1
359 .set macro
360 .set reorder
361
GAS LISTING testbench.s page 8
362 02a8 21188000 move $3,$4
363 02ac 21280000 move $5,$0
364 .set noreorder
365 .set nomacro
366 02b0 B2000008 j $L39
367 02b4 21300000 move $6,$0
368 .set macro
369 .set reorder
370
371 $L75:
372 02b8 0100C624 addiu $6,$6,1
373 02bc 2000C228 slt $2,$6,32
374 .set noreorder
375 .set nomacro
376 02c0 05004010 beq $2,$0,$L36
377 02c4 0100E534 ori $5,$7,0x1
378 .set macro
379 .set reorder
380
381 $L39:
382 02c8 0000628C lw $2,0($3)
383 02cc 40380500 sll $7,$5,1
384 .set noreorder
385 .set nomacro
386 02d0 F9FF4510 beq $2,$5,$L75
387 02d4 04006324 addiu $3,$3,4
388 .set macro
389 .set reorder
390
391 $L36:
392 02d8 20000224 li $2,32 # 0x20
393 .set noreorder
394 .set nomacro
395 02dc C2FFC214 bne $6,$2,$L16
396 02e0 21188000 move $3,$4
397 .set macro
398 .set reorder
399
400 02e4 01000524 li $5,1 # 0x1
401 02e8 1F000624 li $6,31 # 0x1f
402 $L44:
403 02ec FFFFC624 addiu $6,$6,-1
404 02f0 000065AC sw $5,0($3)
405 02f4 04006324 addiu $3,$3,4
406 .set noreorder
407 .set nomacro
408 02f8 FCFFC104 bgez $6,$L44
409 02fc 40280500 sll $5,$5,1
410 .set macro
411 .set reorder
412
413 0300 21188000 move $3,$4
414 0304 01000524 li $5,1 # 0x1
415 .set noreorder
416 .set nomacro
417 0308 C8000008 j $L49
418 030c 21300000 move $6,$0
GAS LISTING testbench.s page 9
419 .set macro
420 .set reorder
421
422 $L76:
423 0310 0100C624 addiu $6,$6,1
424 0314 2000C228 slt $2,$6,32
425 .set noreorder
426 .set nomacro
427 0318 05004010 beq $2,$0,$L46
428 031c 40280500 sll $5,$5,1
429 .set macro
430 .set reorder
431
432 $L49:
433 0320 0000628C lw $2,0($3)
434 0324 00000000 .set noreorder
435 .set nomacro
436 0328 F9FF4510 beq $2,$5,$L76
437 032c 04006324 addiu $3,$3,4
438 .set macro
439 .set reorder
440
441 $L46:
442 0330 20000224 li $2,32 # 0x20
443 .set noreorder
444 .set nomacro
445 0334 ACFFC214 bne $6,$2,$L16
446 0338 21188000 move $3,$4
447 .set macro
448 .set reorder
449
450 033c FEFF0524 li $5,-2 # 0xfffffffffffffffe
451 0340 1F000624 li $6,31 # 0x1f
452 $L54:
453 0344 40100500 sll $2,$5,1
454 0348 FFFFC624 addiu $6,$6,-1
455 034c 000065AC sw $5,0($3)
456 0350 04006324 addiu $3,$3,4
457 .set noreorder
458 .set nomacro
459 0354 FBFFC104 bgez $6,$L54
460 0358 01004534 ori $5,$2,0x1
461 .set macro
462 .set reorder
463
464 035c 21188000 move $3,$4
465 0360 FEFF0524 li $5,-2 # 0xfffffffffffffffe
466 .set noreorder
467 .set nomacro
468 0364 DF000008 j $L59
469 0368 21300000 move $6,$0
470 .set macro
471 .set reorder
472
473 $L77:
474 036c 0100C624 addiu $6,$6,1
475 0370 2000C228 slt $2,$6,32
GAS LISTING testbench.s page 10
476 .set noreorder
477 .set nomacro
478 0374 05004010 beq $2,$0,$L56
479 0378 0100E534 ori $5,$7,0x1
480 .set macro
481 .set reorder
482
483 $L59:
484 037c 0000628C lw $2,0($3)
485 0380 40380500 sll $7,$5,1
486 .set noreorder
487 .set nomacro
488 0384 F9FF4510 beq $2,$5,$L77
489 0388 04006324 addiu $3,$3,4
490 .set macro
491 .set reorder
492
493 $L56:
494 038c 20000224 li $2,32 # 0x20
495 0390 95FFC214 bne $6,$2,$L16
495 00000000
496 .set noreorder
497 .set nomacro
498 0398 7A000008 j $L16
499 039c 21800000 move $16,$0
500 .set macro
501 .set reorder
502
503 .end Test10_LoadStore
504 .align 2
505 .globl Test11_AddSub
506 .ent Test11_AddSub
507 Test11_AddSub:
508 .frame $sp,120,$31 # vars= 80, regs= 5/0, args= 16, gp= 0
509 .mask 0x800f0000,-8
510 .fmask 0x00000000,0
511 03a0 88FFBD27 addiu $sp,$sp,-120
512 03a4 AAAA023C li $2,-1431699456 # 0xffffffffaaaa0000
513 03a8 6C00B3AF sw $19,108($sp)
514 03ac 6800B2AF sw $18,104($sp)
515 03b0 6000B0AF sw $16,96($sp)
516 03b4 7000BFAF sw $31,112($sp)
517 03b8 6400B1AF sw $17,100($sp)
518 03bc AAAA5034 ori $16,$2,0xaaaa
519 03c0 21980000 move $19,$0
520 03c4 21200000 move $4,$0
521 03c8 1000B227 addiu $18,$sp,16
522 $L92:
523 03cc 21104002 move $2,$18
524 03d0 13000624 li $6,19 # 0x13
525 $L85:
526 03d4 FFFFC624 addiu $6,$6,-1
527 03d8 000050AC sw $16,0($2)
528 .set noreorder
529 .set nomacro
530 03dc FDFFC104 bgez $6,$L85
531 03e0 04004224 addiu $2,$2,4
GAS LISTING testbench.s page 11
532 .set macro
533 .set reorder
534
535 03e4 26100402 xor $2,$16,$4
536 03e8 01009124 addiu $17,$4,1
537 03ec FFFF4224 addiu $2,$2,-1
538 03f0 21282002 move $5,$17
539 03f4 1000A627 addiu $6,$sp,16
540 03f8 14000724 li $7,20 # 0x14
541 .set noreorder
542 .set nomacro
543 03fc 0000000C jal fibonacci
544 0400 40800200 sll $16,$2,1
545 .set macro
546 .set reorder
547
548 0404 02000724 li $7,2 # 0x2
549 0408 08004526 addiu $5,$18,8
550 .set noreorder
551 .set nomacro
552 040c 07010008 j $L90
553 0410 11000624 li $6,17 # 0x11
554 .set macro
555 .set reorder
556
557 $L88:
558 0414 0A00C004 bltz $6,$L100
558 00000000
559 $L90:
560 041c 0000A28C lw $2,0($5)
561 0420 FCFFA38C lw $3,-4($5)
562 0424 F8FFA48C lw $4,-8($5)
563 0428 23104300 subu $2,$2,$3
564 042c FFFFC624 addiu $6,$6,-1
565 .set noreorder
566 .set nomacro
567 0430 F8FF8214 bne $4,$2,$L88
568 0434 0400A524 addiu $5,$5,4
569 .set macro
570 .set reorder
571
572 .set noreorder
573 .set nomacro
574 0438 F8FFC104 bgez $6,$L90
575 043c 0100E724 addiu $7,$7,1
576 .set macro
577 .set reorder
578
579 $L100:
580 0440 14000624 li $6,20 # 0x14
581 0444 0F00E610 beq $7,$6,$L101
581 00000000
582 $L81:
583 044c 0300222A slt $2,$17,3
584 .set noreorder
585 .set nomacro
586 0450 DEFF4014 bne $2,$0,$L92
GAS LISTING testbench.s page 12
587 0454 21202002 move $4,$17
588 .set macro
589 .set reorder
590
591 0458 03000224 li $2,3 # 0x3
592 .set noreorder
593 .set nomacro
594 045c 0B006216 bne $19,$2,$L102
595 0460 21180000 move $3,$0
596 .set macro
597 .set reorder
598
599 0464 7000BF8F lw $31,112($sp)
600 0468 6C00B38F lw $19,108($sp)
601 046c 6800B28F lw $18,104($sp)
602 0470 6400B18F lw $17,100($sp)
603 0474 6000B08F lw $16,96($sp)
604 0478 21106000 move $2,$3
605 .set noreorder
606 .set nomacro
607 047c 0800E003 j $31
608 0480 7800BD27 addiu $sp,$sp,120
609 .set macro
610 .set reorder
611
612 $L101:
613 .set noreorder
614 .set nomacro
615 0484 13010008 j $L81
616 0488 01007326 addiu $19,$19,1
617 .set macro
618 .set reorder
619
620 $L102:
621 048c 0080023C li $2,-2147483648 # 0xffffffff80000000
622 0490 11004334 ori $3,$2,0x11
623 0494 7000BF8F lw $31,112($sp)
624 0498 6C00B38F lw $19,108($sp)
625 049c 6800B28F lw $18,104($sp)
626 04a0 6400B18F lw $17,100($sp)
627 04a4 6000B08F lw $16,96($sp)
628 04a8 21106000 move $2,$3
629 .set noreorder
630 .set nomacro
631 04ac 0800E003 j $31
632 04b0 7800BD27 addiu $sp,$sp,120
633 .set macro
634 .set reorder
635
636 .end Test11_AddSub
637 .align 2
638 .globl Test12_MulDiv
639 .ent Test12_MulDiv
640 Test12_MulDiv:
641 .frame $sp,48,$31 # vars= 8, regs= 5/0, args= 16, gp= 0
642 .mask 0x800f0000,-8
643 .fmask 0x00000000,0
GAS LISTING testbench.s page 13
644 04b4 7019043C li $4,426770432 # 0x19700000
645 04b8 D0FFBD27 addiu $sp,$sp,-48
646 04bc 31108434 ori $4,$4,0x1031
647 04c0 2400B3AF sw $19,36($sp)
648 04c4 2800BFAF sw $31,40($sp)
649 04c8 2000B2AF sw $18,32($sp)
650 04cc 1C00B1AF sw $17,28($sp)
651 04d0 1800B0AF sw $16,24($sp)
652 .set noreorder
653 .set nomacro
654 04d4 0000000C jal srand
655 04d8 21980000 move $19,$0
656 .set macro
657 .set reorder
658
659 .set noreorder
660 .set nomacro
661 04dc 3B010008 j $L111
662 04e0 01001224 li $18,1 # 0x1
663 .set macro
664 .set reorder
665
666 $L109:
667 04e4 22008010 beq $4,$0,$L117
667 00000000
668 $L111:
669 .set noreorder
670 .set nomacro
671 04ec 0000000C jal rand
672 04f0 01005226 addiu $18,$18,1
673 .set macro
674 .set reorder
675
676 04f4 001C0200 sll $3,$2,16
677 04f8 00120200 sll $2,$2,8
678 .set noreorder
679 .set nomacro
680 04fc 0000000C jal rand
681 0500 26804300 xor $16,$2,$3
682 .set macro
683 .set reorder
684
685 .set noreorder
686 .set nomacro
687 0504 0000000C jal rand
688 0508 26885000 xor $17,$2,$16
689 .set macro
690 .set reorder
691
692 050c 001C0200 sll $3,$2,16
693 0510 00120200 sll $2,$2,8
694 .set noreorder
695 .set nomacro
696 0514 0000000C jal rand
697 0518 26804300 xor $16,$2,$3
698 .set macro
699 .set reorder
GAS LISTING testbench.s page 14
700
701 051c 26805000 xor $16,$2,$16
702 0520 1000A427 addiu $4,$sp,16
703 0524 21282002 move $5,$17
704 .set noreorder
705 .set nomacro
706 0528 0000000C jal div
707 052c 21300002 move $6,$16
708 .set macro
709 .set reorder
710
711 0530 1000A38F lw $3,16($sp)
712 0534 1400A28F lw $2,20($sp)
713 0538 18007000 mult $3,$16
714 053c 12180000 mflo $3
715 0540 21104300 addu $2,$2,$3
716 .set noreorder
717 .set nomacro
718 0544 E7FF5110 beq $2,$17,$L109
719 0548 E803442A slt $4,$18,1000
720 .set macro
721 .set reorder
722
723 054c 0080023C li $2,-2147483648 # 0xffffffff80000000
724 0550 12004234 ori $2,$2,0x12
725 $L103:
726 0554 2800BF8F lw $31,40($sp)
727 0558 2400B38F lw $19,36($sp)
728 055c 2000B28F lw $18,32($sp)
729 0560 1C00B18F lw $17,28($sp)
730 0564 1800B08F lw $16,24($sp)
731 .set noreorder
732 .set nomacro
733 0568 0800E003 j $31
734 056c 3000BD27 addiu $sp,$sp,48
735 .set macro
736 .set reorder
737
738 $L117:
739 0570 01007326 addiu $19,$19,1
740 0574 6400622A slt $2,$19,100
741 .set noreorder
742 .set nomacro
743 0578 DCFF4014 bne $2,$0,$L111
744 057c 01001224 li $18,1 # 0x1
745 .set macro
746 .set reorder
747
748 .set noreorder
749 .set nomacro
750 0580 55010008 j $L103
751 0584 21100000 move $2,$0
752 .set macro
753 .set reorder
754
755 .end Test12_MulDiv
756 .section .rodata.str1.4
GAS LISTING testbench.s page 15
757 0066 0000 .align 2
758 $LC13:
759 0068 49746572 .ascii "Iteration %d: Passed\r\n\000"
759 6174696F
759 6E202564
759 3A205061
759 73736564
760 007f 00 .align 2
761 $LC14:
762 0080 49746572 .ascii "Iteration \000"
762 6174696F
762 6E2000
763 008b 00 .align 2
764 $LC15:
765 008c 3A205061 .ascii ": Passed\r\n\000"
765 73736564
765 0D0A00
766 0097 00 .align 2
767 $LC16:
768 0098 3A00 .ascii ":\000"
769 009a 0000 .align 2
770 $LC17:
771 009c 4661696C .ascii "Failed with error \000"
771 65642077
771 69746820
771 6572726F
771 722000
772 00af 00 .align 2
773 $LC18:
774 00b0 200D0A00 .ascii " \r\n\000"
775 .text
776 .align 2
777 .globl main
778 .ent main
779 main:
780 .frame $sp,48,$31 # vars= 8, regs= 5/0, args= 16, gp= 0
781 .mask 0x800f0000,-8
782 .fmask 0x00000000,0
783 0588 0080033C li $3,-2147483648 # 0xffffffff80000000
784 058c 0D000224 li $2,13
785 0590 09006334 ori $3,$3,0x9
786 0594 D0FFBD27 addiu $sp,$sp,-48
787 0598 000062A0 sb $2,0($3)
788 059c 2400B3AF sw $19,36($sp)
789 05a0 2000B2AF sw $18,32($sp)
790 05a4 1C00B1AF sw $17,28($sp)
791 05a8 2800BFAF sw $31,40($sp)
792 .set noreorder
793 .set nomacro
794 05ac 0000000C jal PrintCPUinfo
795 05b0 1800B0AF sw $16,24($sp)
796 .set macro
797 .set reorder
798
799 05b4 FF3F023C li $2,1073676288 # 0x3fff0000
800 05b8 FFFF5334 ori $19,$2,0xffff
801 05bc 0080123C li $18,-2147483648 # 0xffffffff80000000
GAS LISTING testbench.s page 16
802 .set noreorder
803 .set nomacro
804 05c0 9F010008 j $L119
805 05c4 21880000 move $17,$0
806 .set macro
807 .set reorder
808
809 $L124:
810 05c8 0000000C jal Test11_AddSub
810 00000000
811 .set noreorder
812 .set nomacro
813 05d0 2F004004 bltz $2,$L120
814 05d4 21804000 move $16,$2
815 .set macro
816 .set reorder
817
818 05d8 0000000C jal Test12_MulDiv
818 00000000
819 05e0 21804000 move $16,$2
820 05e4 0000043C la $4,$LC13
820 00008424
821 .set noreorder
822 .set nomacro
823 05ec 28004004 bltz $2,$L120
824 05f0 21282002 move $5,$17
825 .set macro
826 .set reorder
827
828 .set noreorder
829 .set nomacro
830 05f4 0000000C jal printf
831 05f8 01003126 addiu $17,$17,1
832 .set macro
833 .set reorder
834
835 05fc 0000043C la $4,$LC14
835 0000000C
836 0604 00008424 jal sputs
837 .set noreorder
838 .set nomacro
839 0608 0000000C jal print_word
840 060c 21202002 move $4,$17
841 .set macro
842 .set reorder
843
844 0610 0000043C la $4,$LC15
844 00008424
845 .set noreorder
846 .set nomacro
847 0618 0000000C jal sputs
848 061c 01003126 addiu $17,$17,1
849 .set macro
850 .set reorder
851
852 .set noreorder
853 .set nomacro
GAS LISTING testbench.s page 17
854 0620 0000000C jal time
855 0624 21200000 move $4,$0
856 .set macro
857 .set reorder
858
859 0628 1000A427 addiu $4,$sp,16
860 .set noreorder
861 .set nomacro
862 062c 0000000C jal gmtime
863 0630 1000A2AF sw $2,16($sp)
864 .set macro
865 .set reorder
866
867 0634 08004480 lb $4,8($2)
868 .set noreorder
869 .set nomacro
870 0638 0000000C jal print_byte
871 063c 21804000 move $16,$2
872 .set macro
873 .set reorder
874
875 0640 0000043C la $4,$LC16
875 0000000C
876 0648 00008424 jal sputs
877 064c 04000482 lb $4,4($16)
878 0650 0000000C jal print_byte
878 00000000
879 0658 0000043C la $4,$LC16
879 0000000C
880 0660 00008424 jal sputs
881 0664 00000482 lb $4,0($16)
882 0668 0000000C jal print_byte
882 00000000
883 0670 0000043C la $4,$LC9
883 0000000C
884 0678 00008424 jal sputs
885 $L119:
886 067c 24103302 and $2,$17,$19
887 0680 0000000C sw $2,0($18)
888 0684 000042AE jal Test10_LoadStore
889 .set noreorder
890 .set nomacro
891 0688 CFFF4104 bgez $2,$L124
892 068c 21804000 move $16,$2
893 .set macro
894 .set reorder
895
896 $L120:
897 0690 0040023C li $2,1073741824 # 0x40000000
898 0694 25102202 or $2,$17,$2
899 0698 0000043C la $4,$LC17
899 00008424
900 06a0 0000000C sw $2,0($18)
901 06a4 000042AE jal sputs
902 .set noreorder
903 .set nomacro
904 06a8 0000000C jal print_word
GAS LISTING testbench.s page 18
905 06ac 21200002 move $4,$16
906 .set macro
907 .set reorder
908
909 06b0 0000043C la $4,$LC18
909 0000000C
910 06b8 00008424 jal sputs
911 06bc 2800BF8F lw $31,40($sp)
912 06c0 2400B38F lw $19,36($sp)
913 06c4 2000B28F lw $18,32($sp)
914 06c8 1C00B18F lw $17,28($sp)
915 06cc 1800B08F lw $16,24($sp)
916 06d0 01000224 li $2,1 # 0x1
917 .set noreorder
918 .set nomacro
919 06d4 0800E003 j $31
920 06d8 3000BD27 addiu $sp,$sp,48
921 .set macro
922 .set reorder
923
924 .end main