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

Subversion Repositories lxp32

[/] [lxp32/] [trunk/] [verify/] [lxp32/] [src/] [firmware/] [test013.asm] - Blame information for rev 9

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 ring0_mipt
/*
2
 * Test division (divu, divs, modu, mods)
3
 */
4
 
5
        lc r100, 0x10000000 // test result output pointer
6
        lc r101, halt
7
        lc r102, failure
8
        lc r103, 0x10000004
9
 
10
// Test unsigned division
11
 
12
        lc r32, op1
13
        lc r33, op2
14
        lc r34, quotient
15
        lc r35, remainder
16
        lc r36, cnt_loop
17
        lc r10, 100 // counter
18
 
19
cnt_loop:
20
        lw r0, r32
21
        lw r1, r33
22
        divu r2, r0, r1
23
        modu r3, r0, r1
24
        lw r4, r34
25
        lw r5, r35
26
        cjmpne r102, r2, r4 // failure
27
        cjmpne r102, r3, r5 // failure
28
        mul r6, r2, r1
29
        add r6, r6, r3
30
        cjmpne r102, r6, r0 // failure
31
        add r32, r32, 4
32
        add r33, r33, 4
33
        add r34, r34, 4
34
        add r35, r35, 4
35
        sub r10, r10, 1
36
        cjmpug r36, r10, 0 // cnt_loop
37
 
38
        sw r103, 1
39
 
40
// Test signed division
41
 
42
        lc r32, op1_signed
43
        lc r33, op2_signed
44
        lc r34, quotient_signed
45
        lc r35, remainder_signed
46
        lc r36, cnt_loop2
47
        lc r10, 100 // counter
48
 
49
cnt_loop2:
50
        lw r0, r32
51
        lw r1, r33
52
        divs r2, r0, r1
53
        mods r3, r0, r1
54
        lw r4, r34
55
        lw r5, r35
56
        cjmpne r102, r2, r4 // failure
57
        cjmpne r102, r3, r5 // failure
58
        mul r6, r2, r1
59
        add r6, r6, r3
60
        cjmpne r102, r6, r0 // failure
61
        add r32, r32, 4
62
        add r33, r33, 4
63
        add r34, r34, 4
64
        add r35, r35, 4
65
        sub r10, r10, 1
66
        cjmpug r36, r10, 0 // cnt_loop2
67
 
68
        sw r103, 2
69
 
70
// Random division/multiplication test
71
 
72
        mov r64, 1 // initial PRBS value
73
        lc r65, 1103515245 // PRBS multiplier
74
        lc r66, 12345 // PRBS addition constant
75
        lc r67, 32767 // PRBS mask
76
        lc r68, 16384
77
 
78
        lc r10, 1000
79
        lc r32, rnd_loop
80
        lc r33, rand
81
        lc r34, rnd_cont
82
 
83
rnd_loop:
84
        call r33 // rand
85
        sub r1, r0, r68 // dividend in r1
86
        call r33 // rand
87
        sub r2, r0, r68 // divisor in r2
88
        cjmpne r34, r2, 0 // rnd_cont
89
        mov r2, 1
90
 
91
rnd_cont:
92
        divs r3, r1, r2
93
        mods r4, r1, r2
94
        mul r5, r3, r2
95
        add r5, r5, r4
96
        cjmpne r102, r5, r1 // failure
97
        sub r10, r10, 1
98
        cjmpug r32, r10, 0 // rnd_loop
99
 
100
        sw r103, 3
101
 
102
        sw r100, 1
103
        jmp r101 // halt
104
 
105
failure:
106
        sw r100, 2
107
 
108
halt:
109
        hlt
110
        jmp r101 // halt
111
 
112
// Linear congruent pseudo-random number generator (as in ISO/IEC 9899:1999)
113
 
114
rand:
115
        mul r64, r64, r65
116
        add r64, r64, r66
117
        sru r0, r64, 16
118
        and r0, r0, r67
119
        ret
120
 
121
op1:
122
        .word 2227053353
123
        .word 4059122064
124
        .word 210189531
125
        .word 1203176988
126
        .word 2794175299
127
        .word 1562322232
128
        .word 219364165
129
        .word 1352278066
130
        .word 4130490642
131
        .word 1156715599
132
        .word 993179440
133
        .word 529260957
134
        .word 1235055289
135
        .word 2994792917
136
        .word 348116583
137
        .word 1475314534
138
        .word 517066081
139
        .word 2230328806
140
        .word 1395407336
141
        .word 4094467700
142
        .word 3476389465
143
        .word 1210945747
144
        .word 3236243997
145
        .word 1348406852
146
        .word 118818171
147
        .word 1692045936
148
        .word 1190663529
149
        .word 1731139289
150
        .word 1986549712
151
        .word 2038965422
152
        .word 1173634277
153
        .word 1499514357
154
        .word 3268423030
155
        .word 136673642
156
        .word 672245098
157
        .word 797742983
158
        .word 3236010945
159
        .word 1421197958
160
        .word 948983249
161
        .word 3780009574
162
        .word 3802522271
163
        .word 2303076920
164
        .word 2976105080
165
        .word 2531287614
166
        .word 4049504575
167
        .word 488644257
168
        .word 336561159
169
        .word 753386953
170
        .word 4270696691
171
        .word 1966854304
172
        .word 3201322355
173
        .word 4203490113
174
        .word 2503116372
175
        .word 3405118694
176
        .word 3103595329
177
        .word 3553466644
178
        .word 861103782
179
        .word 1275325516
180
        .word 3484264974
181
        .word 1293196760
182
        .word 4173438076
183
        .word 2275850340
184
        .word 3885575502
185
        .word 1091087744
186
        .word 2669208735
187
        .word 69325132
188
        .word 2319663187
189
        .word 2510410703
190
        .word 2902980138
191
        .word 845791433
192
        .word 3327530895
193
        .word 948013067
194
        .word 3889190137
195
        .word 2250058130
196
        .word 927988252
197
        .word 1820385269
198
        .word 135357763
199
        .word 3770160619
200
        .word 1650193531
201
        .word 1250420215
202
        .word 2982397572
203
        .word 788754293
204
        .word 1132578971
205
        .word 2174830494
206
        .word 2743197342
207
        .word 1473236291
208
        .word 671295260
209
        .word 1615737929
210
        .word 722317890
211
        .word 1373795119
212
        .word 3187744723
213
        .word 353993505
214
        .word 3691968907
215
        .word 2452722797
216
        .word 1784599952
217
        .word 912987979
218
        .word 2183033578
219
        .word 2941180254
220
        .word 3706025245
221
        .word 2141225307
222
 
223
op2:
224
        .word 225
225
        .word 3018582459
226
        .word 6462
227
        .word 222
228
        .word 799
229
        .word 19412
230
        .word 3676048009
231
        .word 16622
232
        .word 32158
233
        .word 64
234
        .word 8865
235
        .word 2580197594
236
        .word 3313401900
237
        .word 1405929962
238
        .word 214
239
        .word 24905
240
        .word 1914084509
241
        .word 41372239
242
        .word 203
243
        .word 213
244
        .word 50
245
        .word 3866464211
246
        .word 247
247
        .word 2371998720
248
        .word 528626491
249
        .word 2243022420
250
        .word 106
251
        .word 21608
252
        .word 250
253
        .word 635130622
254
        .word 22739
255
        .word 61
256
        .word 3563638217
257
        .word 97
258
        .word 2849410241
259
        .word 241
260
        .word 2594761086
261
        .word 191
262
        .word 40
263
        .word 48
264
        .word 6924
265
        .word 2054783657
266
        .word 702209830
267
        .word 968832018
268
        .word 1826819693
269
        .word 17099
270
        .word 25861
271
        .word 142
272
        .word 190
273
        .word 3078
274
        .word 130
275
        .word 32560
276
        .word 170
277
        .word 2308931006
278
        .word 26703
279
        .word 13
280
        .word 19211
281
        .word 115
282
        .word 667594965
283
        .word 1495759348
284
        .word 205
285
        .word 19605
286
        .word 61
287
        .word 2772527081
288
        .word 16917
289
        .word 147
290
        .word 175
291
        .word 206
292
        .word 16033
293
        .word 2356
294
        .word 7643
295
        .word 97
296
        .word 2017990513
297
        .word 41
298
        .word 13752
299
        .word 109
300
        .word 165
301
        .word 225
302
        .word 2698
303
        .word 12859
304
        .word 12455
305
        .word 158
306
        .word 4136249385
307
        .word 3446419784
308
        .word 140
309
        .word 20679
310
        .word 23935
311
        .word 48162108
312
        .word 5302
313
        .word 126
314
        .word 80
315
        .word 741054488
316
        .word 188
317
        .word 116
318
        .word 64
319
        .word 177
320
        .word 141
321
        .word 16378
322
        .word 3662043152
323
        .word 19292
324
 
325
quotient:
326
        .word 9898014
327
        .word 1
328
        .word 32527
329
        .word 5419716
330
        .word 3497090
331
        .word 80482
332
        .word 0
333
        .word 81354
334
        .word 128443
335
        .word 18073681
336
        .word 112033
337
        .word 0
338
        .word 0
339
        .word 2
340
        .word 1626713
341
        .word 59237
342
        .word 0
343
        .word 53
344
        .word 6873927
345
        .word 19222853
346
        .word 69527789
347
        .word 0
348
        .word 13102202
349
        .word 0
350
        .word 0
351
        .word 0
352
        .word 11232674
353
        .word 80115
354
        .word 7946198
355
        .word 3
356
        .word 51613
357
        .word 24582202
358
        .word 0
359
        .word 1409006
360
        .word 0
361
        .word 3310136
362
        .word 1
363
        .word 7440827
364
        .word 23724581
365
        .word 78750199
366
        .word 549179
367
        .word 1
368
        .word 4
369
        .word 2
370
        .word 2
371
        .word 28577
372
        .word 13014
373
        .word 5305541
374
        .word 22477351
375
        .word 639003
376
        .word 24625556
377
        .word 129099
378
        .word 14724213
379
        .word 1
380
        .word 116226
381
        .word 273343588
382
        .word 44823
383
        .word 11089787
384
        .word 5
385
        .word 0
386
        .word 20358234
387
        .word 116085
388
        .word 63697959
389
        .word 0
390
        .word 157782
391
        .word 471599
392
        .word 13255218
393
        .word 12186459
394
        .word 181062
395
        .word 358994
396
        .word 435369
397
        .word 9773330
398
        .word 1
399
        .word 54879466
400
        .word 67480
401
        .word 16700782
402
        .word 820350
403
        .word 16756269
404
        .word 611635
405
        .word 97240
406
        .word 239453
407
        .word 4992115
408
        .word 0
409
        .word 0
410
        .word 19594266
411
        .word 71243
412
        .word 28046
413
        .word 33
414
        .word 136234
415
        .word 10903135
416
        .word 39846809
417
        .word 0
418
        .word 19638132
419
        .word 21144162
420
        .word 27884374
421
        .word 5158124
422
        .word 15482507
423
        .word 179581
424
        .word 1
425
        .word 110990
426
 
427
remainder:
428
        .word 203
429
        .word 1040539605
430
        .word 57
431
        .word 36
432
        .word 389
433
        .word 5648
434
        .word 219364165
435
        .word 11878
436
        .word 20648
437
        .word 15
438
        .word 6895
439
        .word 529260957
440
        .word 1235055289
441
        .word 182932993
442
        .word 1
443
        .word 17049
444
        .word 517066081
445
        .word 37600139
446
        .word 155
447
        .word 11
448
        .word 15
449
        .word 1210945747
450
        .word 103
451
        .word 1348406852
452
        .word 118818171
453
        .word 1692045936
454
        .word 85
455
        .word 14369
456
        .word 212
457
        .word 133573556
458
        .word 6270
459
        .word 35
460
        .word 3268423030
461
        .word 60
462
        .word 672245098
463
        .word 207
464
        .word 641249859
465
        .word 1
466
        .word 9
467
        .word 22
468
        .word 6875
469
        .word 248293263
470
        .word 167265760
471
        .word 593623578
472
        .word 395865189
473
        .word 6134
474
        .word 6105
475
        .word 131
476
        .word 1
477
        .word 3070
478
        .word 75
479
        .word 26673
480
        .word 162
481
        .word 1096187688
482
        .word 12451
483
        .word 0
484
        .word 9129
485
        .word 11
486
        .word 146290149
487
        .word 1293196760
488
        .word 106
489
        .word 3915
490
        .word 3
491
        .word 1091087744
492
        .word 10641
493
        .word 79
494
        .word 37
495
        .word 149
496
        .word 13092
497
        .word 1569
498
        .word 5628
499
        .word 57
500
        .word 1871199624
501
        .word 24
502
        .word 3292
503
        .word 31
504
        .word 13
505
        .word 94
506
        .word 2301
507
        .word 11055
508
        .word 10457
509
        .word 123
510
        .word 1132578971
511
        .word 2174830494
512
        .word 102
513
        .word 2294
514
        .word 14250
515
        .word 26388365
516
        .word 5222
517
        .word 109
518
        .word 3
519
        .word 353993505
520
        .word 91
521
        .word 5
522
        .word 16
523
        .word 31
524
        .word 91
525
        .word 2636
526
        .word 43982093
527
        .word 6227
528
 
529
op1_signed:
530
        .word 1173464398
531
        .word 644568570
532
        .word 1413618866
533
        .word 940280095
534
        .word 1307051796
535
        .word 69701148
536
        .word 791353789
537
        .word -1751134801
538
        .word -540034563
539
        .word -664201053
540
        .word 859052625
541
        .word 506263265
542
        .word 1672805452
543
        .word -940950084
544
        .word 639564287
545
        .word -320080770
546
        .word -194326606
547
        .word -1401122692
548
        .word 1361841711
549
        .word -1572666822
550
        .word 223085807
551
        .word -2143536785
552
        .word -771364638
553
        .word -392756254
554
        .word -2075946315
555
        .word -133598861
556
        .word 869612982
557
        .word 727395029
558
        .word -1173738546
559
        .word 1865699269
560
        .word 1001660457
561
        .word -1435705417
562
        .word 313397375
563
        .word 91734875
564
        .word 55211040
565
        .word -1298145437
566
        .word -1587928274
567
        .word 120185203
568
        .word 1253220522
569
        .word 664380448
570
        .word 659766337
571
        .word -1867423126
572
        .word 211715071
573
        .word 1172375319
574
        .word 1010876232
575
        .word 1866163921
576
        .word 1337698510
577
        .word -1489886717
578
        .word -844206754
579
        .word 1252556476
580
        .word 1062583479
581
        .word -2028701144
582
        .word -925730358
583
        .word 63629404
584
        .word 2084388372
585
        .word 1185701000
586
        .word 344972780
587
        .word 1506745295
588
        .word -1310164994
589
        .word 785548626
590
        .word -960828075
591
        .word -788757195
592
        .word 1742449807
593
        .word 1952581789
594
        .word -1868879050
595
        .word -727870971
596
        .word 457544035
597
        .word -2083100074
598
        .word 2092326142
599
        .word 456912800
600
        .word -1930624925
601
        .word 1981026677
602
        .word -641082819
603
        .word 1259278117
604
        .word 1481501124
605
        .word -444342667
606
        .word 1947675341
607
        .word -608834426
608
        .word -906130612
609
        .word -480045052
610
        .word 182898482
611
        .word 1025708506
612
        .word -363535658
613
        .word 1180470009
614
        .word -62562240
615
        .word 987486196
616
        .word -531865065
617
        .word 676720261
618
        .word 1125242878
619
        .word -1621168845
620
        .word 1990517921
621
        .word -1383494740
622
        .word -1522980151
623
        .word 434249114
624
        .word -129245145
625
        .word 97983477
626
        .word 658513595
627
        .word 1548110625
628
        .word 1140579073
629
        .word -1285950881
630
 
631
op2_signed:
632
        .word 1389891600
633
        .word 176
634
        .word -129
635
        .word -10300
636
        .word -24713
637
        .word 36
638
        .word 539501672
639
        .word -412262764
640
        .word -999517400
641
        .word 27
642
        .word -185
643
        .word 632355259
644
        .word 1914747195
645
        .word -202
646
        .word 152
647
        .word -151
648
        .word -49343821
649
        .word 161975794
650
        .word -172
651
        .word -3509
652
        .word 8811
653
        .word -135
654
        .word -224114196
655
        .word 5373
656
        .word -30158
657
        .word 735955126
658
        .word 7320
659
        .word -1137550910
660
        .word 413980723
661
        .word -28499
662
        .word -1858419248
663
        .word -31374
664
        .word 153
665
        .word -245
666
        .word -231
667
        .word 1065580722
668
        .word 114
669
        .word 25851
670
        .word 1113949699
671
        .word 1883394154
672
        .word 211
673
        .word 22075
674
        .word -143
675
        .word -1052684430
676
        .word -197
677
        .word -28563
678
        .word -12517
679
        .word 141
680
        .word -197
681
        .word -79
682
        .word 79
683
        .word -103
684
        .word 563090517
685
        .word -13711
686
        .word -2
687
        .word -250
688
        .word -130626268
689
        .word -1824933506
690
        .word 501
691
        .word 135
692
        .word -965460037
693
        .word 90
694
        .word -24983
695
        .word -5626
696
        .word -175
697
        .word -42
698
        .word -72
699
        .word 9948
700
        .word -29411
701
        .word 223
702
        .word 16237
703
        .word -192
704
        .word -297352066
705
        .word 2140975764
706
        .word -511619965
707
        .word -7170
708
        .word -380546211
709
        .word 1065203866
710
        .word -81584403
711
        .word -23445
712
        .word 213
713
        .word 31410
714
        .word -270351532
715
        .word -8040
716
        .word -13293
717
        .word 16010
718
        .word -223
719
        .word -60
720
        .word 9338
721
        .word -46
722
        .word 26045
723
        .word 21525
724
        .word 1705744137
725
        .word 1754448529
726
        .word -1602585578
727
        .word 1341015177
728
        .word 1
729
        .word -72
730
        .word -156
731
        .word 1932634409
732
 
733
quotient_signed:
734
        .word 0
735
        .word 3662321
736
        .word -10958285
737
        .word -91289
738
        .word -52889
739
        .word 1936143
740
        .word 1
741
        .word 4
742
        .word 0
743
        .word -24600039
744
        .word -4643527
745
        .word 0
746
        .word 0
747
        .word 4658168
748
        .word 4207659
749
        .word 2119740
750
        .word 3
751
        .word -8
752
        .word -7917684
753
        .word 448180
754
        .word 25319
755
        .word 15878050
756
        .word 3
757
        .word -73098
758
        .word 68835
759
        .word 0
760
        .word 118799
761
        .word 0
762
        .word -2
763
        .word -65465
764
        .word 0
765
        .word 45760
766
        .word 2048348
767
        .word -374428
768
        .word -239008
769
        .word -1
770
        .word -13929195
771
        .word 4649
772
        .word 1
773
        .word 0
774
        .word 3126854
775
        .word -84594
776
        .word -1480524
777
        .word -1
778
        .word -5131351
779
        .word -65335
780
        .word -106870
781
        .word -10566572
782
        .word 4285313
783
        .word -15855145
784
        .word 13450423
785
        .word 19696127
786
        .word -1
787
        .word -4640
788
        .word -1042194186
789
        .word -4742804
790
        .word -2
791
        .word 0
792
        .word -2615099
793
        .word 5818878
794
        .word 0
795
        .word -8763968
796
        .word -69745
797
        .word -347063
798
        .word 10679308
799
        .word 17330261
800
        .word -6354778
801
        .word -209398
802
        .word -71140
803
        .word 2048936
804
        .word -118902
805
        .word -10317847
806
        .word 2
807
        .word 0
808
        .word -2
809
        .word 61972
810
        .word -5
811
        .word 0
812
        .word 11
813
        .word 20475
814
        .word 858678
815
        .word 32655
816
        .word 1
817
        .word -146824
818
        .word 4706
819
        .word 61679
820
        .word 2385045
821
        .word -11278671
822
        .word 120501
823
        .word 35242800
824
        .word 76426
825
        .word -64273
826
        .word 0
827
        .word 0
828
        .word 0
829
        .word 0
830
        .word 658513595
831
        .word -21501536
832
        .word -7311404
833
        .word 0
834
 
835
remainder_signed:
836
        .word 1173464398
837
        .word 74
838
        .word 101
839
        .word 3395
840
        .word 5939
841
        .word 0
842
        .word 251852117
843
        .word -102083745
844
        .word -540034563
845
        .word 0
846
        .word 130
847
        .word 506263265
848
        .word 1672805452
849
        .word -148
850
        .word 119
851
        .word -30
852
        .word -46295143
853
        .word -105316340
854
        .word 63
855
        .word -3202
856
        .word 98
857
        .word -35
858
        .word -99022050
859
        .word -700
860
        .word -20385
861
        .word -133598861
862
        .word 4302
863
        .word 727395029
864
        .word -345777100
865
        .word 12234
866
        .word 1001660457
867
        .word -31177
868
        .word 131
869
        .word 15
870
        .word 192
871
        .word -232564715
872
        .word -44
873
        .word 3904
874
        .word 139270823
875
        .word 664380448
876
        .word 143
877
        .word -10576
878
        .word 139
879
        .word 119690889
880
        .word 85
881
        .word 316
882
        .word 6720
883
        .word -65
884
        .word -93
885
        .word 21
886
        .word 62
887
        .word -63
888
        .word -362639841
889
        .word 10364
890
        .word 0
891
        .word 0
892
        .word 83720244
893
        .word 1506745295
894
        .word -395
895
        .word 96
896
        .word -960828075
897
        .word -75
898
        .word 10472
899
        .word 5351
900
        .word -150
901
        .word -9
902
        .word 19
903
        .word -8770
904
        .word 27602
905
        .word 72
906
        .word -13151
907
        .word 53
908
        .word -46378687
909
        .word 1259278117
910
        .word 458261194
911
        .word -3427
912
        .word 44944286
913
        .word -608834426
914
        .word -8702179
915
        .word -8677
916
        .word 68
917
        .word 14956
918
        .word -93184126
919
        .word 5049
920
        .word -5382
921
        .word 5406
922
        .word -30
923
        .word 1
924
        .word 4540
925
        .word -45
926
        .word 2751
927
        .word -18415
928
        .word -1522980151
929
        .word 434249114
930
        .word -129245145
931
        .word 97983477
932
        .word 0
933
        .word 33
934
        .word 49
935
        .word -1285950881

powered by: WebSVN 2.1.0

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