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

Subversion Repositories plasma

[/] [plasma/] [trunk/] [tools/] [opcodes.asm] - Blame information for rev 427

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 15 rhoads
##################################################################
2
# TITLE: Opcode Tester
3
# AUTHOR: Steve Rhoads (rhoadss@yahoo.com)
4
# DATE CREATED: 1/10/02
5
# FILENAME: opcodes.asm
6 43 rhoads
# PROJECT: Plasma CPU core
7 15 rhoads
# COPYRIGHT: Software placed into the public domain by the author.
8
#    Software 'as is' without warranty.  Author liable for nothing.
9
# DESCRIPTION:
10
#    This assembly file tests all of the opcodes supported by the
11 43 rhoads
#    Plasma core.
12 148 rhoads
#    This test assumes that address 0x20000000 is the UART write register
13 15 rhoads
#    Successful tests will print out "A" or "AB" or "ABC" or ....
14
#    Missing letters or letters out of order indicate a failure.
15
##################################################################
16
        .text
17
        .align  2
18
        .globl  entry
19
        .ent    entry
20
entry:
21
   .set noreorder
22
 
23 200 rhoads
   la    $gp, _gp           #initialize stack pointer
24
   la    $4, __bss_start    #$4 = .sbss_start
25
   la    $5, _end           #$5 = .bss_end
26
   nop                      #no stack needed
27
   nop
28 29 rhoads
 
29 194 rhoads
   b     StartTest
30
   nop                      #nops required to place ISR at 0x3c
31
   nop
32
 
33
OS_AsmPatchValue:
34
   #Code to place at address 0x3c
35
   lui   $26, 0x1000
36
   ori   $26, $26, 0x3c
37
   jr    $26
38
   nop
39
 
40
InterruptVector:            #Address=0x3c
41
   mfc0  $26,$14            #C0_EPC=14 (Exception PC)
42
   jr    $26
43
   add   $4,$4,5
44
 
45
StartTest:
46 23 rhoads
   mtc0  $0,$12             #disable interrupts
47 148 rhoads
   lui   $20,0x2000         #serial port write address
48 15 rhoads
   ori   $21,$0,'\n'        # letter
49
   ori   $22,$0,'X'         #'X' letter
50 68 rhoads
   ori   $23,$0,'\r'
51 100 rhoads
   ori   $24,$0,0x0f80      #temp memory
52 15 rhoads
 
53 194 rhoads
   sb    $23,0($20)
54
   sb    $21,0($20)
55
   sb    $23,0($20)
56
   sb    $21,0($20)
57
   sb    $23,0($20)
58
   sb    $21,0($20)
59
   sb    $23,0($20)
60
   sb    $21,0($20)
61
 
62
   #Patch interrupt vector to 0x1000003c
63
   la    $5, OS_AsmPatchValue
64
   sub   $6,$5,0x1000
65
   blez  $6,NoPatch
66
 
67
   lw    $6, 0($5)
68
   sw    $6, 0x3c($0)
69
   lw    $6, 4($5)
70
   sw    $6, 0x40($0)
71
   lw    $6, 8($5)
72
   sw    $6, 0x44($0)
73
   lw    $6, 12($5)
74
   sw    $6, 0x48($0)
75
NoPatch:
76
 
77 15 rhoads
   ######################################
78
   #Arithmetic Instructions
79
   ######################################
80 194 rhoads
ArthmeticTest:
81 15 rhoads
   ori   $2,$0,'A'
82
   sb    $2,0($20)
83
   ori   $2,$0,'r'
84
   sb    $2,0($20)
85
   ori   $2,$0,'i'
86
   sb    $2,0($20)
87
   ori   $2,$0,'t'
88
   sb    $2,0($20)
89
   ori   $2,$0,'h'
90
   sb    $2,0($20)
91 68 rhoads
   sb    $23,0($20)
92 15 rhoads
   sb    $21,0($20)
93
 
94 23 rhoads
   #a: ADD
95
   ori   $2,$0,'a'
96
   sb    $2,0($20)
97 15 rhoads
   ori   $3,$0,5
98
   ori   $4,$0,60
99
   add   $2,$3,$4
100 23 rhoads
   sb    $2,0($20)    #A
101 68 rhoads
   sb    $23,0($20)
102 15 rhoads
   sb    $21,0($20)
103
 
104 23 rhoads
   #b: ADDI
105
   ori   $2,$0,'b'
106
   sb    $2,0($20)
107 15 rhoads
   ori   $4,$0,60
108
   addi  $2,$4,5
109 23 rhoads
   sb    $2,0($20)    #A
110 68 rhoads
   sb    $23,0($20)
111 15 rhoads
   sb    $21,0($20)
112
 
113 23 rhoads
   #c: ADDIU
114
   ori   $2,$0,'c'
115
   sb    $2,0($20)
116 15 rhoads
   ori   $4,$0,50
117
   addiu $5,$4,15
118 23 rhoads
   sb    $5,0($20)    #A
119 68 rhoads
   sb    $23,0($20)
120 15 rhoads
   sb    $21,0($20)
121
 
122 23 rhoads
   #d: ADDU
123
   ori   $2,$0,'d'
124
   sb    $2,0($20)
125 15 rhoads
   ori   $3,$0,5
126
   ori   $4,$0,60
127
   add   $2,$3,$4
128 23 rhoads
   sb    $2,0($20)    #A
129 68 rhoads
   sb    $23,0($20)
130 15 rhoads
   sb    $21,0($20)
131
 
132 23 rhoads
   #e: DIV
133
   ori   $2,$0,'e'
134
   sb    $2,0($20)
135
   ori   $2,$0,65*117+41
136
   ori   $3,$0,117
137 15 rhoads
   div   $2,$3
138
   nop
139
   mflo  $4
140 23 rhoads
   sb    $4,0($20)    #A
141
   mfhi  $4
142
   addi  $4,$4,66-41
143
   sb    $4,0($20)    #B
144
   li    $2,-67*19
145 15 rhoads
   ori   $3,$0,19
146
   div   $2,$3
147
   nop
148
   mflo  $4
149
   sub   $4,$0,$4
150 23 rhoads
   sb    $4,0($20)    #C
151
   ori   $2,$0,68*23
152 15 rhoads
   li    $3,-23
153
   div   $2,$3
154
   nop
155
   mflo  $4
156
   sub   $4,$0,$4
157 23 rhoads
   sb    $4,0($20)    #D
158
   li    $2,-69*13
159 15 rhoads
   li    $3,-13
160
   div   $2,$3
161
   mflo  $4
162 23 rhoads
   sb    $4,0($20)    #E
163 427 rhoads
   li    $2,-5        #-5%12=-5
164
   li    $3,12
165
   div   $2,$3
166
   mfhi  $4
167
   addiu $4,$4,'F'+5
168
   sb    $4,0($20)    #F
169 68 rhoads
   sb    $23,0($20)
170 15 rhoads
   sb    $21,0($20)
171
 
172 23 rhoads
   #f: DIVU
173
   ori   $2,$0,'f'
174
   sb    $2,0($20)
175 15 rhoads
   ori   $2,$0,65*13
176
   ori   $3,$0,13
177 23 rhoads
   divu  $2,$3
178 15 rhoads
   nop
179
   mflo  $4
180 23 rhoads
   sb    $4,0($20)    #A
181 68 rhoads
   sb    $23,0($20)
182 15 rhoads
   sb    $21,0($20)
183
 
184 23 rhoads
   #g: MULT
185
   ori   $2,$0,'g'
186
   sb    $2,0($20)
187 15 rhoads
   ori   $2,$0,5
188
   ori   $3,$0,13
189
   mult  $2,$3
190
   nop
191
   mflo  $4
192 23 rhoads
   sb    $4,0($20)    #A
193 15 rhoads
   li    $2,-5
194
   ori   $3,$0,13
195
   mult  $2,$3
196 100 rhoads
   mfhi  $5
197 15 rhoads
   mflo  $4
198
   sub   $4,$0,$4
199 100 rhoads
   addu  $4,$4,$5
200
   addi  $4,$4,2
201 23 rhoads
   sb    $4,0($20)    #B
202 15 rhoads
   ori   $2,$0,5
203
   li    $3,-13
204
   mult  $2,$3
205 100 rhoads
   mfhi  $5
206 15 rhoads
   mflo  $4
207
   sub   $4,$0,$4
208 100 rhoads
   addu  $4,$4,$5
209
   addi  $4,$4,3
210 23 rhoads
   sb    $4,0($20)    #C
211 15 rhoads
   li    $2,-5
212
   li    $3,-13
213
   mult  $2,$3
214 100 rhoads
   mfhi  $5
215 15 rhoads
   mflo  $4
216 100 rhoads
   addu  $4,$4,$5
217 15 rhoads
   addi  $4,$4,3
218 23 rhoads
   sb    $4,0($20)    #D
219 44 rhoads
   lui   $4,0xfe98
220
   ori   $4,$4,0x62e5
221
   lui   $5,0x6
222
   ori   $5,0x8db8
223
   mult  $4,$5
224
   mfhi  $6
225
   addiu $7,$6,2356+1+'E' #E
226
   sb    $7,0($20)
227 427 rhoads
   li    $2,-1
228
   li    $3,0
229
   mult  $2,$3
230
   mfhi  $4
231
   addiu $4,$4,'F'
232
   sb    $4,0($20)    #F
233
   mult  $3,$2
234
   mfhi  $4
235
   addiu $4,$4,'G'
236
   sb    $4,0($20)    #G
237 68 rhoads
   sb    $23,0($20)
238 15 rhoads
   sb    $21,0($20)
239
 
240 23 rhoads
   #h: MULTU
241
   ori   $2,$0,'h'
242
   sb    $2,0($20)
243 15 rhoads
   ori   $2,$0,5
244
   ori   $3,$0,13
245 23 rhoads
   multu $2,$3
246 15 rhoads
   nop
247
   mflo  $4
248 23 rhoads
   sb    $4,0($20)    #A
249 68 rhoads
   sb    $23,0($20)
250 15 rhoads
   sb    $21,0($20)
251
 
252 23 rhoads
   #i: SLT
253
   ori   $2,$0,'i'
254
   sb    $2,0($20)
255 15 rhoads
   ori   $2,$0,10
256
   ori   $3,$0,12
257
   slt   $4,$2,$3
258
   addi  $5,$4,64
259 23 rhoads
   sb    $5,0($20)    #A
260 15 rhoads
   slt   $4,$3,$2
261
   addi  $5,$4,66
262 23 rhoads
   sb    $5,0($20)    #B
263 15 rhoads
   li    $2,0xfffffff0
264
   slt   $4,$2,$3
265
   addi  $5,$4,66
266 23 rhoads
   sb    $5,0($20)    #C
267 15 rhoads
   slt   $4,$3,$2
268
   addi  $5,$4,68
269 23 rhoads
   sb    $5,0($20)    #D
270 15 rhoads
   li    $3,0xffffffff
271
   slt   $4,$2,$3
272
   addi  $5,$4,68
273 23 rhoads
   sb    $5,0($20)    #E
274 15 rhoads
   slt   $4,$3,$2
275
   addi  $5,$4,70
276 23 rhoads
   sb    $5,0($20)    #F
277 68 rhoads
   sb    $23,0($20)
278 15 rhoads
   sb    $21,0($20)
279
 
280 23 rhoads
   #j: SLTI
281
   ori   $2,$0,'j'
282
   sb    $2,0($20)
283 15 rhoads
   ori   $2,$0,10
284
   slti  $4,$2,12
285
   addi  $5,$4,64
286 23 rhoads
   sb    $5,0($20)    #A
287 15 rhoads
   slti  $4,$2,8
288
   addi  $5,$4,66
289 23 rhoads
   sb    $5,0($20)    #B
290 68 rhoads
   sb    $23,0($20)
291 15 rhoads
   sb    $21,0($20)
292
 
293 23 rhoads
   #k: SLTIU
294
   ori   $2,$0,'k'
295
   sb    $2,0($20)
296 15 rhoads
   ori   $2,$0,10
297
   sltiu $4,$2,12
298
   addi  $5,$4,64
299 23 rhoads
   sb    $5,0($20)    #A
300 15 rhoads
   sltiu $4,$2,8
301
   addi  $5,$4,66
302 23 rhoads
   sb    $5,0($20)    #B
303 68 rhoads
   sb    $23,0($20)
304 15 rhoads
   sb    $21,0($20)
305
 
306 23 rhoads
   #l: SLTU
307
   ori   $2,$0,'l'
308
   sb    $2,0($20)
309 15 rhoads
   ori   $2,$0,10
310
   ori   $3,$0,12
311
   slt   $4,$2,$3
312
   addi  $5,$4,64
313 23 rhoads
   sb    $5,0($20)    #A
314 15 rhoads
   slt   $4,$3,$2
315
   addi  $5,$4,66
316 23 rhoads
   sb    $5,0($20)    #B
317 68 rhoads
   sb    $23,0($20)
318 15 rhoads
   sb    $21,0($20)
319
 
320 23 rhoads
   #m: SUB
321
   ori   $2,$0,'m'
322
   sb    $2,0($20)
323 15 rhoads
   ori   $3,$0,70
324
   ori   $4,$0,5
325
   sub   $2,$3,$4
326 23 rhoads
   sb    $2,0($20)    #A
327 68 rhoads
   sb    $23,0($20)
328 15 rhoads
   sb    $21,0($20)
329
 
330 23 rhoads
   #n: SUBU
331
   ori   $2,$0,'n'
332
   sb    $2,0($20)
333 15 rhoads
   ori   $3,$0,70
334
   ori   $4,$0,5
335
   sub   $2,$3,$4
336 23 rhoads
   sb    $2,0($20)    #A
337 68 rhoads
   sb    $23,0($20)
338 15 rhoads
   sb    $21,0($20)
339
 
340
   ######################################
341
   #Branch and Jump Instructions
342
   ######################################
343 194 rhoads
BranchTest:
344 15 rhoads
   ori   $2,$0,'B'
345
   sb    $2,0($20)
346
   ori   $2,$0,'r'
347
   sb    $2,0($20)
348
   ori   $2,$0,'a'
349
   sb    $2,0($20)
350
   ori   $2,$0,'n'
351
   sb    $2,0($20)
352
   ori   $2,$0,'c'
353
   sb    $2,0($20)
354
   ori   $2,$0,'h'
355
   sb    $2,0($20)
356 68 rhoads
   sb    $23,0($20)
357 15 rhoads
   sb    $21,0($20)
358
 
359 23 rhoads
   #a: B
360
   ori   $2,$0,'a'
361
   sb    $2,0($20)
362 15 rhoads
   ori   $10,$0,'A'
363
   ori   $11,$0,'B'
364
   b     $B1
365
   sb    $10,0($20)
366
   sb    $22,0($20)
367
$B1:
368
   sb    $11,0($20)
369 68 rhoads
   sb    $23,0($20)
370 15 rhoads
   sb    $21,0($20)
371
 
372 23 rhoads
   #b: BAL
373
   ori   $2,$0,'b'
374
   sb    $2,0($20)
375 15 rhoads
   ori   $10,$0,'A'
376
   ori   $11,$0,'B'
377
   ori   $12,$0,'C'
378
   ori   $13,$0,'D'
379
   ori   $14,$0,'E'
380
   ori   $15,$0,'X'
381
   bal   $BAL1
382
   sb    $10,0($20)
383
   sb    $13,0($20)
384
   b     $BAL2
385
   sb    $14,0($20)
386
   sb    $15,0($20)
387
$BAL1:
388
   sb    $11,0($20)
389
   jr    $31
390
   sb    $12,0($20)
391
   sb    $22,0($20)
392
$BAL2:
393 68 rhoads
   sb    $23,0($20)
394 15 rhoads
   sb    $21,0($20)
395
 
396 23 rhoads
   #c: BEQ
397
   ori   $2,$0,'c'
398
   sb    $2,0($20)
399 15 rhoads
   ori   $10,$0,'A'
400
   ori   $11,$0,'B'
401
   ori   $12,$0,'C'
402
   ori   $13,$0,'D'
403
   ori   $2,$0,100
404
   ori   $3,$0,123
405
   ori   $4,$0,123
406
   beq   $2,$3,$BEQ1
407
   sb    $10,0($20)
408
   sb    $11,0($20)
409
   beq   $3,$4,$BEQ1
410
   sb    $12,0($20)
411
   sb    $22,0($20)
412
$BEQ1:
413
   sb    $13,0($20)
414 68 rhoads
   sb    $23,0($20)
415 15 rhoads
   sb    $21,0($20)
416
 
417 23 rhoads
   #d: BGEZ
418
   ori   $2,$0,'d'
419
   sb    $2,0($20)
420 15 rhoads
   ori   $10,$0,'A'
421
   ori   $11,$0,'B'
422
   ori   $12,$0,'C'
423
   ori   $13,$0,'D'
424
   or    $15,$0,'X'
425
   ori   $2,$0,100
426
   li    $3,0xffff1234
427
   ori   $4,$0,123
428
   bgez  $3,$BGEZ1
429
   sb    $10,0($20)
430
   sb    $11,0($20)
431
   bgez  $2,$BGEZ1
432
   sb    $12,0($20)
433
   sb    $22,0($20)
434
$BGEZ1:
435
   bgez  $0,$BGEZ2
436
   nop
437
   sb    $15,0($20)
438
$BGEZ2:
439
   sb    $13,0($20)
440 68 rhoads
   sb    $23,0($20)
441 15 rhoads
   sb    $21,0($20)
442
 
443 23 rhoads
   #e: BGEZAL
444
   ori   $2,$0,'e'
445
   sb    $2,0($20)
446 15 rhoads
   ori   $10,$0,'A'
447
   ori   $11,$0,'B'
448
   ori   $12,$0,'C'
449
   ori   $13,$0,'D'
450
   ori   $14,$0,'E'
451
   ori   $15,$0,'X'
452
   li    $3,0xffff1234
453
   bgezal $3,$BGEZAL1
454
   nop
455
   sb    $10,0($20)
456
   bgezal $0,$BGEZAL1
457
   nop
458
   sb    $13,0($20)
459
   b     $BGEZAL2
460
   sb    $14,0($20)
461
   sb    $15,0($20)
462
$BGEZAL1:
463
   sb    $11,0($20)
464
   jr    $31
465
   sb    $12,0($20)
466
   sb    $22,0($20)
467
$BGEZAL2:
468 68 rhoads
   sb    $23,0($20)
469 15 rhoads
   sb    $21,0($20)
470
 
471 23 rhoads
   #f: BGTZ
472
   ori   $2,$0,'f'
473
   sb    $2,0($20)
474 15 rhoads
   ori   $10,$0,'A'
475
   ori   $11,$0,'B'
476
   ori   $12,$0,'C'
477
   ori   $13,$0,'D'
478
   ori   $2,$0,100
479
   li    $3,0xffff1234
480
   bgtz  $3,$BGTZ1
481
   sb    $10,0($20)
482
   sb    $11,0($20)
483
   bgtz  $2,$BGTZ1
484
   sb    $12,0($20)
485
   sb    $22,0($20)
486
$BGTZ1:
487
   sb    $13,0($20)
488 68 rhoads
   sb    $23,0($20)
489 15 rhoads
   sb    $21,0($20)
490
 
491 23 rhoads
   #g: BLEZ
492
   ori   $2,$0,'g'
493
   sb    $2,0($20)
494 15 rhoads
   ori   $10,$0,'A'
495
   ori   $11,$0,'B'
496
   ori   $12,$0,'C'
497
   ori   $13,$0,'D'
498
   ori   $2,$0,100
499
   li    $3,0xffff1234
500
   blez  $2,$BLEZ1
501
   sb    $10,0($20)
502
   sb    $11,0($20)
503
   blez  $3,$BLEZ1
504
   sb    $12,0($20)
505
   sb    $22,0($20)
506
$BLEZ1:
507
   blez  $0,$BLEZ2
508
   nop
509
   sb    $22,0($20)
510
$BLEZ2:
511
   sb    $13,0($20)
512 68 rhoads
   sb    $23,0($20)
513 15 rhoads
   sb    $21,0($20)
514
 
515 23 rhoads
   #h: BLTZ
516
   ori   $2,$0,'h'
517
   sb    $2,0($20)
518 15 rhoads
   ori   $10,$0,'A'
519
   ori   $11,$0,'B'
520
   ori   $12,$0,'C'
521
   ori   $13,$0,'D'
522
   ori   $14,$0,'E'
523
   ori   $2,$0,100
524
   li    $3,0xffff1234
525
   ori   $4,$0,0
526
   bltz  $2,$BLTZ1
527
   sb    $10,0($20)
528
   sb    $11,0($20)
529
   bltz  $3,$BLTZ1
530
   sb    $12,0($20)
531
   sb    $22,0($20)
532
$BLTZ1:
533
   bltz  $4,$BLTZ2
534
   nop
535
   sb    $13,0($20)
536
$BLTZ2:
537
   sb    $14,0($20)
538 68 rhoads
   sb    $23,0($20)
539 15 rhoads
   sb    $21,0($20)
540
 
541 23 rhoads
   #i: BLTZAL
542
   ori   $2,$0,'i'
543
   sb    $2,0($20)
544 15 rhoads
   ori   $10,$0,'A'
545
   ori   $11,$0,'B'
546
   ori   $12,$0,'C'
547
   ori   $13,$0,'D'
548
   ori   $14,$0,'E'
549
   ori   $15,$0,'X'
550
   li    $3,0xffff1234
551
   bltzal $0,$BLTZAL1
552
   nop
553
   sb    $10,0($20)
554
   bltzal $3,$BLTZAL1
555
   nop
556
   sb    $13,0($20)
557
   b     $BLTZAL2
558
   sb    $14,0($20)
559
   sb    $15,0($20)
560
$BLTZAL1:
561
   sb    $11,0($20)
562
   jr    $31
563
   sb    $12,0($20)
564
   sb    $22,0($20)
565
$BLTZAL2:
566 68 rhoads
   sb    $23,0($20)
567 15 rhoads
   sb    $21,0($20)
568
 
569 23 rhoads
   #j: BNE
570
   ori   $2,$0,'j'
571
   sb    $2,0($20)
572 15 rhoads
   ori   $10,$0,'A'
573
   ori   $11,$0,'B'
574
   ori   $12,$0,'C'
575
   ori   $13,$0,'D'
576
   ori   $2,$0,100
577
   ori   $3,$0,123
578
   ori   $4,$0,123
579
   bne   $3,$4,$BNE1
580
   sb    $10,0($20)
581
   sb    $11,0($20)
582
   bne   $2,$3,$BNE1
583
   sb    $12,0($20)
584
   sb    $22,0($20)
585
$BNE1:
586
   sb    $13,0($20)
587 68 rhoads
   sb    $23,0($20)
588 15 rhoads
   sb    $21,0($20)
589
 
590 23 rhoads
   #k: J
591
   ori   $2,$0,'k'
592
   sb    $2,0($20)
593 15 rhoads
   ori   $10,$0,'A'
594
   ori   $11,$0,'B'
595
   ori   $15,$0,'X'
596
   j     $J1
597
   sb    $10,0($20)
598
   sb    $15,0($20)
599
$J1:
600
   sb    $11,0($20)
601 68 rhoads
   sb    $23,0($20)
602 15 rhoads
   sb    $21,0($20)
603
 
604 23 rhoads
   #l: JAL
605
   ori   $2,$0,'l'
606
   sb    $2,0($20)
607 15 rhoads
   ori   $10,$0,'A'
608
   ori   $11,$0,'B'
609
   ori   $12,$0,'C'
610
   ori   $13,$0,'D'
611
   ori   $14,$0,'E'
612
   ori   $15,$0,'X'
613
   jal   $JAL1
614
   sb    $10,0($20)
615
   sb    $13,0($20)
616
   b     $JAL2
617
   sb    $14,0($20)
618
   sb    $15,0($20)
619
$JAL1:
620
   sb    $11,0($20)
621
   jr    $31
622
   sb    $12,0($20)
623
   sb    $22,0($20)
624
$JAL2:
625 68 rhoads
   sb    $23,0($20)
626 15 rhoads
   sb    $21,0($20)
627
 
628 23 rhoads
   #m: JALR
629
   ori   $2,$0,'m'
630
   sb    $2,0($20)
631 15 rhoads
   ori   $10,$0,'A'
632
   ori   $11,$0,'B'
633
   ori   $12,$0,'C'
634
   ori   $13,$0,'D'
635
   ori   $14,$0,'E'
636
   ori   $15,$0,'X'
637
   la    $3,$JALR1
638
   jalr  $3
639
   sb    $10,0($20)
640
   sb    $13,0($20)
641
   b     $JALR2
642
   sb    $14,0($20)
643
   sb    $15,0($20)
644
$JALR1:
645
   sb    $11,0($20)
646
   jr    $31
647
   sb    $12,0($20)
648
   sb    $22,0($20)
649
$JALR2:
650 68 rhoads
   sb    $23,0($20)
651 15 rhoads
   sb    $21,0($20)
652
 
653 23 rhoads
   #n: JR
654
   ori   $2,$0,'n'
655
   sb    $2,0($20)
656 15 rhoads
   ori   $10,$0,'A'
657
   ori   $11,$0,'B'
658
   ori   $15,$0,'X'
659
   la    $3,$JR1
660
   jr    $3
661
   sb    $10,0($20)
662
   sb    $15,0($20)
663
$JR1:
664
   sb    $11,0($20)
665 68 rhoads
   sb    $23,0($20)
666 15 rhoads
   sb    $21,0($20)
667
 
668 23 rhoads
   #o: NOP
669
   ori   $2,$0,'o'
670
   sb    $2,0($20)
671 15 rhoads
   ori   $2,$0,65
672
   nop
673
   sb    $2,0($20)
674 68 rhoads
   sb    $23,0($20)
675 15 rhoads
   sb    $21,0($20)
676
 
677 194 rhoads
#   b     LoadTest
678 148 rhoads
 
679 194 rhoads
BreakTest:
680
   #p: BREAK
681
   ori   $2,$0,'p'
682
   sb    $2,0($20)
683
   ori   $2,$0,'z'
684
   ori   $4,$0,59
685
   break 0
686
   addi  $4,$4,1
687
   sb    $4,0($20)
688
   sb    $23,0($20)
689
   sb    $21,0($20)
690
 
691
   #q: SYSCALL
692
   ori   $2,$0,'q'
693
   sb    $2,0($20)
694
   ori   $4,$0,61
695
   syscall 0
696
   addi  $4,$4,-1
697
   sb    $4,0($20)
698
   sb    $23,0($20)
699
   sb    $21,0($20)
700
 
701
 
702 15 rhoads
   ######################################
703
   #Load, Store, and Memory Control Instructions
704
   ######################################
705 194 rhoads
LoadTest:
706 15 rhoads
   ori   $2,$0,'L'
707
   sb    $2,0($20)
708
   ori   $2,$0,'o'
709
   sb    $2,0($20)
710
   ori   $2,$0,'a'
711
   sb    $2,0($20)
712
   ori   $2,$0,'d'
713
   sb    $2,0($20)
714 68 rhoads
   sb    $23,0($20)
715 15 rhoads
   sb    $21,0($20)
716
 
717 23 rhoads
   #a: LB
718
   ori   $2,$0,'a'
719
   sb    $2,0($20)
720 68 rhoads
   or    $2,$0,$24
721 148 rhoads
   li    $3,0x414243fc
722 15 rhoads
   sw    $3,16($2)
723
   lb    $4,16($2)
724
   sb    $4,0($20)
725
   lb    $4,17($2)
726
   sb    $4,0($20)
727
   lb    $4,18($2)
728
   sb    $4,0($20)
729
   lb    $2,19($2)
730 148 rhoads
   sra   $3,$2,8
731
   addi  $3,$3,0x45
732
   sb    $3,0($20)
733
   addi  $2,$2,0x49
734 15 rhoads
   sb    $2,0($20)
735 68 rhoads
   sb    $23,0($20)
736 15 rhoads
   sb    $21,0($20)
737
 
738 23 rhoads
   #b: LBU
739
   ori   $2,$0,'b'
740
   sb    $2,0($20)
741 68 rhoads
   or    $2,$0,$24
742 15 rhoads
   li    $3,0x41424344
743
   sw    $3,16($2)
744
   lb    $4,16($2)
745
   sb    $4,0($20)
746
   lb    $4,17($2)
747
   sb    $4,0($20)
748
   lb    $4,18($2)
749
   sb    $4,0($20)
750
   lb    $2,19($2)
751
   sb    $2,0($20)
752 68 rhoads
   sb    $23,0($20)
753 15 rhoads
   sb    $21,0($20)
754
 
755 23 rhoads
   #c: LH
756
   ori   $2,$0,'c'
757
   sb    $2,0($20)
758 68 rhoads
   or    $2,$0,$24
759 15 rhoads
   li    $3,0x00410042
760
   sw    $3,16($2)
761
   lh    $4,16($2)
762
   sb    $4,0($20)
763
   lh    $2,18($2)
764
   sb    $2,0($20)
765 68 rhoads
   sb    $23,0($20)
766 15 rhoads
   sb    $21,0($20)
767
 
768 23 rhoads
   #d: LHU
769
   ori   $2,$0,'d'
770
   sb    $2,0($20)
771 68 rhoads
   or    $2,$0,$24
772 15 rhoads
   li    $3,0x00410042
773
   sw    $3,16($2)
774
   lh    $4,16($2)
775
   sb    $4,0($20)
776
   lh    $2,18($2)
777
   sb    $2,0($20)
778 68 rhoads
   sb    $23,0($20)
779 15 rhoads
   sb    $21,0($20)
780
 
781 23 rhoads
   #e: LW
782
   ori   $2,$0,'e'
783
   sb    $2,0($20)
784 68 rhoads
   or    $2,$0,$24
785 15 rhoads
   li    $3,'A'
786
   sw    $3,16($2)
787
   ori   $3,$0,0
788
   lw    $2,16($2)
789
   sb    $2,0($20)
790 68 rhoads
   sb    $23,0($20)
791 15 rhoads
   sb    $21,0($20)
792
 
793 23 rhoads
   #f: LWL & LWR
794
   ori   $2,$0,'f'
795
   sb    $2,0($20)
796 68 rhoads
   or    $2,$0,$24
797 15 rhoads
   li    $3,'A'
798
   sw    $3,16($2)
799
   ori   $3,$0,0
800
   lwl   $2,16($2)
801
   lwr   $2,16($2)
802
   sb    $2,0($20)
803 68 rhoads
   sb    $23,0($20)
804 15 rhoads
   sb    $21,0($20)
805
 
806 23 rhoads
   #g: SB
807
   ori   $2,$0,'g'
808
   sb    $2,0($20)
809 15 rhoads
   ori   $2,$0,'A'
810
   sb    $2,0($20)
811 68 rhoads
   sb    $23,0($20)
812 15 rhoads
   sb    $21,0($20)
813
 
814 23 rhoads
   #h: SH
815
   ori   $2,$0,'h'
816
   sb    $2,0($20)
817 68 rhoads
   or    $4,$0,$24
818 15 rhoads
   ori   $2,$0,0x4142
819 29 rhoads
   sh    $2,16($4)
820
   lb    $3,16($4)
821 15 rhoads
   sb    $3,0($20)
822 29 rhoads
   lb    $2,17($4)
823 15 rhoads
   sb    $2,0($20)
824 68 rhoads
   sb    $23,0($20)
825 15 rhoads
   sb    $21,0($20)
826
 
827 23 rhoads
   #i: SW
828
   ori   $2,$0,'i'
829
   sb    $2,0($20)
830 68 rhoads
   or    $2,$0,$24
831 15 rhoads
   li    $3,0x41424344
832
   sw    $3,16($2)
833
   lb    $4,16($2)
834
   sb    $4,0($20)
835
   lb    $4,17($2)
836
   sb    $4,0($20)
837
   lb    $4,18($2)
838
   sb    $4,0($20)
839
   lb    $2,19($2)
840
   sb    $2,0($20)
841 68 rhoads
   sb    $23,0($20)
842 15 rhoads
   sb    $21,0($20)
843
 
844 23 rhoads
   #j: SWL & SWR
845
   ori   $2,$0,'j'
846
   sb    $2,0($20)
847 68 rhoads
   or    $2,$0,$24
848 15 rhoads
   li    $3,0x41424344
849
   swl   $3,16($2)
850
   swr   $3,16($2)
851
   lb    $4,16($2)
852
   sb    $4,0($20)
853
   lb    $4,17($2)
854
   sb    $4,0($20)
855
   lb    $4,18($2)
856
   sb    $4,0($20)
857
   lb    $2,19($2)
858
   sb    $2,0($20)
859 68 rhoads
   sb    $23,0($20)
860 15 rhoads
   sb    $21,0($20)
861
 
862
 
863
   ######################################
864
   #Logical Instructions
865
   ######################################
866 194 rhoads
LogicalTest:
867 15 rhoads
   ori   $2,$0,'L'
868
   sb    $2,0($20)
869
   ori   $2,$0,'o'
870
   sb    $2,0($20)
871
   ori   $2,$0,'g'
872
   sb    $2,0($20)
873
   ori   $2,$0,'i'
874
   sb    $2,0($20)
875
   ori   $2,$0,'c'
876
   sb    $2,0($20)
877 68 rhoads
   sb    $23,0($20)
878 15 rhoads
   sb    $21,0($20)
879
 
880 23 rhoads
   #a: AND
881
   ori   $2,$0,'a'
882
   sb    $2,0($20)
883 15 rhoads
   ori   $2,$0,0x0741
884
   ori   $3,$0,0x60f3
885
   and   $4,$2,$3
886
   sb    $4,0($20)
887 68 rhoads
   sb    $23,0($20)
888 15 rhoads
   sb    $21,0($20)
889
 
890 23 rhoads
   #b: ANDI
891
   ori   $2,$0,'b'
892
   sb    $2,0($20)
893 15 rhoads
   ori   $2,$0,0x0741
894
   andi  $4,$2,0x60f3
895
   sb    $4,0($20)
896 68 rhoads
   sb    $23,0($20)
897 15 rhoads
   sb    $21,0($20)
898
 
899 23 rhoads
   #c: LUI
900
   ori   $2,$0,'c'
901
   sb    $2,0($20)
902 15 rhoads
   lui   $2,0x41
903
   srl   $3,$2,16
904
   sb    $3,0($20)
905 68 rhoads
   sb    $23,0($20)
906 15 rhoads
   sb    $21,0($20)
907
 
908 23 rhoads
   #d: NOR
909
   ori   $2,$0,'d'
910
   sb    $2,0($20)
911 15 rhoads
   li    $2,0xf0fff08e
912
   li    $3,0x0f0f0f30
913
   nor   $4,$2,$3
914
   sb    $4,0($20)
915 68 rhoads
   sb    $23,0($20)
916 15 rhoads
   sb    $21,0($20)
917
 
918 23 rhoads
   #e: OR
919
   ori   $2,$0,'e'
920
   sb    $2,0($20)
921 15 rhoads
   ori   $2,$0,0x40
922
   ori   $3,$0,0x01
923
   or    $4,$2,$3
924
   sb    $4,0($20)
925 68 rhoads
   sb    $23,0($20)
926 15 rhoads
   sb    $21,0($20)
927
 
928 23 rhoads
   #f: ORI
929
   ori   $2,$0,'f'
930
   sb    $2,0($20)
931 15 rhoads
   ori   $2,$0,0x40
932
   ori   $4,$2,0x01
933
   sb    $4,0($20)
934 68 rhoads
   sb    $23,0($20)
935 15 rhoads
   sb    $21,0($20)
936
 
937 23 rhoads
   #g: XOR
938
   ori   $2,$0,'g'
939
   sb    $2,0($20)
940 15 rhoads
   ori   $2,$0,0xf043
941
   ori   $3,$0,0xf002
942
   xor   $4,$2,$3
943
   sb    $4,0($20)
944 68 rhoads
   sb    $23,0($20)
945 15 rhoads
   sb    $21,0($20)
946
 
947 23 rhoads
   #h: XORI
948
   ori   $2,$0,'h'
949
   sb    $2,0($20)
950 15 rhoads
   ori   $2,$0,0xf043
951
   xor   $4,$2,0xf002
952
   sb    $4,0($20)
953 68 rhoads
   sb    $23,0($20)
954 15 rhoads
   sb    $21,0($20)
955
 
956
 
957
   ######################################
958
   #Move Instructions
959
   ######################################
960 194 rhoads
MoveTest:
961 15 rhoads
   ori   $2,$0,'M'
962
   sb    $2,0($20)
963
   ori   $2,$0,'o'
964
   sb    $2,0($20)
965
   ori   $2,$0,'v'
966
   sb    $2,0($20)
967
   ori   $2,$0,'e'
968
   sb    $2,0($20)
969 68 rhoads
   sb    $23,0($20)
970 15 rhoads
   sb    $21,0($20)
971
 
972 23 rhoads
   #a: MFHI
973
   ori   $2,$0,'a'
974
   sb    $2,0($20)
975 15 rhoads
   ori   $2,$0,65
976
   mthi  $2
977
   mfhi  $3
978
   sb    $3,0($20)
979 68 rhoads
   sb    $23,0($20)
980 15 rhoads
   sb    $21,0($20)
981
 
982 23 rhoads
   #b: MFLO
983
   ori   $2,$0,'b'
984
   sb    $2,0($20)
985 15 rhoads
   ori   $2,$0,65
986
   mtlo  $2
987
   mflo  $3
988
   sb    $3,0($20)
989 68 rhoads
   sb    $23,0($20)
990 15 rhoads
   sb    $21,0($20)
991
 
992 23 rhoads
   #c: MTHI
993
   ori   $2,$0,'c'
994
   sb    $2,0($20)
995 15 rhoads
   ori   $2,$0,65
996
   mthi  $2
997
   mfhi  $3
998
   sb    $3,0($20)
999 68 rhoads
   sb    $23,0($20)
1000 15 rhoads
   sb    $21,0($20)
1001
 
1002 23 rhoads
   #d: MTLO
1003
   ori   $2,$0,'d'
1004
   sb    $2,0($20)
1005 15 rhoads
   ori   $2,$0,65
1006
   mtlo  $2
1007
   mflo  $3
1008
   sb    $3,0($20)
1009 68 rhoads
   sb    $23,0($20)
1010 15 rhoads
   sb    $21,0($20)
1011
 
1012
 
1013
   ######################################
1014
   #Shift Instructions
1015
   ######################################
1016 194 rhoads
ShiftTest:
1017 15 rhoads
   ori   $2,$0,'S'
1018
   sb    $2,0($20)
1019
   ori   $2,$0,'h'
1020
   sb    $2,0($20)
1021
   ori   $2,$0,'i'
1022
   sb    $2,0($20)
1023
   ori   $2,$0,'f'
1024
   sb    $2,0($20)
1025
   ori   $2,$0,'t'
1026
   sb    $2,0($20)
1027 68 rhoads
   sb    $23,0($20)
1028 15 rhoads
   sb    $21,0($20)
1029
 
1030 23 rhoads
   #a: SLL
1031
   ori   $2,$0,'a'
1032
   sb    $2,0($20)
1033 15 rhoads
   li    $2,0x40414243
1034
   sll   $3,$2,8
1035
   srl   $3,$3,24
1036
   sb    $3,0($20)
1037 68 rhoads
   sb    $23,0($20)
1038 15 rhoads
   sb    $21,0($20)
1039
 
1040 23 rhoads
   #b: SLLV
1041
   ori   $2,$0,'b'
1042
   sb    $2,0($20)
1043 15 rhoads
   li    $2,0x40414243
1044
   ori   $3,$0,8
1045
   sllv  $3,$2,$3
1046
   srl   $3,$3,24
1047
   sb    $3,0($20)
1048 68 rhoads
   sb    $23,0($20)
1049 15 rhoads
   sb    $21,0($20)
1050
 
1051 23 rhoads
   #c: SRA
1052
   ori   $2,$0,'c'
1053
   sb    $2,0($20)
1054 15 rhoads
   li    $2,0x40414243
1055
   sra   $3,$2,16
1056
   sb    $3,0($20)
1057
   li    $2,0x84000000
1058
   sra   $3,$2,25
1059
   sub   $3,$3,0x80
1060
   sb    $3,0($20)
1061 68 rhoads
   sb    $23,0($20)
1062 15 rhoads
   sb    $21,0($20)
1063
 
1064 23 rhoads
   #d: SRAV
1065
   ori   $2,$0,'d'
1066
   sb    $2,0($20)
1067 15 rhoads
   li    $2,0x40414243
1068
   ori   $3,$0,16
1069
   srav  $3,$2,$3
1070
   sb    $3,0($20)
1071
   ori   $3,$0,25
1072
   li    $2,0x84000000
1073 29 rhoads
   srav  $3,$2,$3
1074 15 rhoads
   sub   $3,$3,0x80
1075
   sb    $3,0($20)
1076 68 rhoads
   sb    $23,0($20)
1077 15 rhoads
   sb    $21,0($20)
1078
 
1079 23 rhoads
   #e: SRL
1080
   ori   $2,$0,'e'
1081
   sb    $2,0($20)
1082 15 rhoads
   li    $2,0x40414243
1083
   srl   $3,$2,16
1084
   sb    $3,0($20)
1085
   li    $2,0x84000000
1086 29 rhoads
   srl   $3,$2,25
1087 15 rhoads
   sb    $3,0($20)
1088 68 rhoads
   sb    $23,0($20)
1089 15 rhoads
   sb    $21,0($20)
1090
 
1091 23 rhoads
   #f: SRLV
1092
   ori   $2,$0,'f'
1093
   sb    $2,0($20)
1094 15 rhoads
   li    $2,0x40414243
1095
   ori   $3,$0,16
1096
   srlv  $4,$2,$3
1097
   sb    $4,0($20)
1098
   ori   $3,$0,25
1099
   li    $2,0x84000000
1100 29 rhoads
   srlv  $3,$2,$3
1101 15 rhoads
   sb    $3,0($20)
1102 68 rhoads
   sb    $23,0($20)
1103 15 rhoads
   sb    $21,0($20)
1104
 
1105
 
1106
   ori   $2,$0,'D'
1107
   sb    $2,0($20)
1108
   ori   $2,$0,'o'
1109
   sb    $2,0($20)
1110
   ori   $2,$0,'n'
1111
   sb    $2,0($20)
1112
   ori   $2,$0,'e'
1113
   sb    $2,0($20)
1114 68 rhoads
   sb    $23,0($20)
1115 15 rhoads
   sb    $21,0($20)
1116
 
1117
 
1118
$DONE:
1119
   j     $DONE
1120
   nop
1121
 
1122
   .set reorder
1123
        .end    entry
1124
 

powered by: WebSVN 2.1.0

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