Make timer test more thorough
authorAndrew Waterman <waterman@cs.berkeley.edu>
Thu, 4 Dec 2014 01:47:55 +0000 (17:47 -0800)
committerAndrew Waterman <waterman@cs.berkeley.edu>
Thu, 4 Dec 2014 01:47:55 +0000 (17:47 -0800)
isa/rv64si/timer.S

index 5f755e443e701f8bdcee3b0ce9a03835fa90631c..87399a6fda0885642a8db31f4492ac25e5373b51 100644 (file)
@@ -12,18 +12,17 @@ RVTEST_RV64S
 RVTEST_CODE_BEGIN
 
   # clear pending IPIs then enable interrupts
-  li s9, 0
+  li s8, 0         # number of taken timer interrupts
+  li s9, 10        # how many interrupts to run for
   la a0, handler
   csrw evec, a0
-  csrw count, x0
-  li a1, 5000
-  csrw compare, a1
+  csrw compare, 1
+  csrw count, 0
   li a0, SR_EI | (1 << (IRQ_TIMER + SR_IM_SHIFT))
   csrs status, a0
 
   # advance an LFSR 1000 times
   li s0, 1023
-  li s1, 1023
   li s4, 0
 1:srl s2,s0,3
   xor s2,s2,s0
@@ -34,14 +33,19 @@ RVTEST_CODE_BEGIN
   sll s0,s0,54
   srl s0,s0,54
   add s4, s4, 1
-  bne s0,s1,1b
+  bltu s8, s9, 1b
 
   csrc status, SR_EI
 
+  # make sure the LFSR was computed correctly
+  li s1, 1023
+  remu s4, s4, s1
+  la s1, lfsr
+  sll s4, s4, 2
+  add s1, s1, s4
+  lw s1, (s1)
   li TESTNUM, 2
-  beqz s9, fail    # make sure we took at least one interrupt
-  li TESTNUM, 3
-  bne s4, s1, fail # make sure the LFSR period was correct
+  bne s0, s1, fail
 
   RVTEST_PASS
 
@@ -50,14 +54,1041 @@ RVTEST_CODE_BEGIN
 handler:
   csrr t0, cause
   li t1, 0x8000000000000007
+  li TESTNUM, 3
   bne t0, t1, fail
 
-  csrr t0, compare
-  addi t0, t0, 99
+  csrr t0, count
+  addi t0, t0, 999
   csrw compare, t0
 
-  add s9, s9, 1
+  add s8, s8, 1
 
   sret
 
+.data
+lfsr:
+.word 1023
+.word 511
+.word 255
+.word 127
+.word 63
+.word 31
+.word 15
+.word 7
+.word 515
+.word 769
+.word 896
+.word 448
+.word 224
+.word 112
+.word 56
+.word 540
+.word 782
+.word 903
+.word 963
+.word 993
+.word 1008
+.word 504
+.word 764
+.word 894
+.word 959
+.word 479
+.word 239
+.word 119
+.word 571
+.word 285
+.word 142
+.word 583
+.word 803
+.word 913
+.word 968
+.word 996
+.word 498
+.word 249
+.word 124
+.word 574
+.word 799
+.word 399
+.word 199
+.word 611
+.word 817
+.word 920
+.word 972
+.word 998
+.word 499
+.word 761
+.word 380
+.word 702
+.word 863
+.word 431
+.word 215
+.word 619
+.word 309
+.word 666
+.word 845
+.word 422
+.word 211
+.word 617
+.word 308
+.word 154
+.word 589
+.word 294
+.word 147
+.word 585
+.word 292
+.word 146
+.word 73
+.word 36
+.word 18
+.word 9
+.word 4
+.word 2
+.word 1
+.word 512
+.word 256
+.word 128
+.word 64
+.word 32
+.word 16
+.word 8
+.word 516
+.word 258
+.word 129
+.word 576
+.word 288
+.word 144
+.word 72
+.word 548
+.word 274
+.word 137
+.word 68
+.word 34
+.word 17
+.word 520
+.word 772
+.word 386
+.word 193
+.word 608
+.word 304
+.word 152
+.word 588
+.word 806
+.word 403
+.word 713
+.word 356
+.word 178
+.word 89
+.word 44
+.word 534
+.word 267
+.word 133
+.word 578
+.word 289
+.word 656
+.word 328
+.word 676
+.word 338
+.word 169
+.word 84
+.word 42
+.word 533
+.word 778
+.word 901
+.word 962
+.word 481
+.word 752
+.word 376
+.word 700
+.word 862
+.word 943
+.word 471
+.word 747
+.word 373
+.word 698
+.word 861
+.word 430
+.word 727
+.word 875
+.word 437
+.word 730
+.word 877
+.word 438
+.word 219
+.word 109
+.word 54
+.word 27
+.word 13
+.word 6
+.word 3
+.word 513
+.word 768
+.word 384
+.word 192
+.word 96
+.word 48
+.word 24
+.word 524
+.word 774
+.word 387
+.word 705
+.word 864
+.word 432
+.word 216
+.word 620
+.word 822
+.word 411
+.word 205
+.word 102
+.word 51
+.word 537
+.word 268
+.word 646
+.word 323
+.word 673
+.word 848
+.word 424
+.word 724
+.word 362
+.word 693
+.word 858
+.word 941
+.word 470
+.word 235
+.word 117
+.word 570
+.word 797
+.word 398
+.word 711
+.word 867
+.word 945
+.word 984
+.word 1004
+.word 1014
+.word 507
+.word 253
+.word 126
+.word 575
+.word 287
+.word 143
+.word 71
+.word 547
+.word 785
+.word 904
+.word 964
+.word 482
+.word 241
+.word 632
+.word 828
+.word 926
+.word 975
+.word 487
+.word 755
+.word 889
+.word 444
+.word 734
+.word 879
+.word 439
+.word 731
+.word 365
+.word 182
+.word 91
+.word 45
+.word 22
+.word 11
+.word 5
+.word 514
+.word 257
+.word 640
+.word 320
+.word 160
+.word 80
+.word 40
+.word 532
+.word 266
+.word 645
+.word 834
+.word 417
+.word 720
+.word 360
+.word 692
+.word 346
+.word 685
+.word 342
+.word 171
+.word 85
+.word 554
+.word 789
+.word 906
+.word 965
+.word 994
+.word 497
+.word 760
+.word 892
+.word 958
+.word 991
+.word 495
+.word 247
+.word 635
+.word 317
+.word 158
+.word 591
+.word 295
+.word 659
+.word 841
+.word 420
+.word 210
+.word 105
+.word 52
+.word 26
+.word 525
+.word 262
+.word 131
+.word 577
+.word 800
+.word 400
+.word 200
+.word 612
+.word 306
+.word 153
+.word 76
+.word 550
+.word 275
+.word 649
+.word 324
+.word 162
+.word 81
+.word 552
+.word 788
+.word 394
+.word 709
+.word 866
+.word 433
+.word 728
+.word 876
+.word 950
+.word 475
+.word 237
+.word 118
+.word 59
+.word 29
+.word 14
+.word 519
+.word 771
+.word 897
+.word 960
+.word 480
+.word 240
+.word 120
+.word 572
+.word 798
+.word 911
+.word 455
+.word 739
+.word 881
+.word 952
+.word 988
+.word 1006
+.word 1015
+.word 1019
+.word 509
+.word 254
+.word 639
+.word 319
+.word 159
+.word 79
+.word 39
+.word 531
+.word 777
+.word 388
+.word 194
+.word 97
+.word 560
+.word 280
+.word 652
+.word 838
+.word 419
+.word 721
+.word 872
+.word 948
+.word 474
+.word 749
+.word 374
+.word 187
+.word 93
+.word 46
+.word 535
+.word 779
+.word 389
+.word 706
+.word 353
+.word 688
+.word 344
+.word 684
+.word 854
+.word 427
+.word 213
+.word 618
+.word 821
+.word 922
+.word 973
+.word 486
+.word 243
+.word 633
+.word 316
+.word 670
+.word 847
+.word 423
+.word 723
+.word 873
+.word 436
+.word 218
+.word 621
+.word 310
+.word 155
+.word 77
+.word 38
+.word 19
+.word 521
+.word 260
+.word 130
+.word 65
+.word 544
+.word 272
+.word 136
+.word 580
+.word 290
+.word 145
+.word 584
+.word 804
+.word 402
+.word 201
+.word 100
+.word 50
+.word 25
+.word 12
+.word 518
+.word 259
+.word 641
+.word 832
+.word 416
+.word 208
+.word 104
+.word 564
+.word 282
+.word 653
+.word 326
+.word 163
+.word 593
+.word 808
+.word 916
+.word 458
+.word 741
+.word 882
+.word 441
+.word 220
+.word 622
+.word 823
+.word 923
+.word 461
+.word 230
+.word 115
+.word 569
+.word 284
+.word 654
+.word 839
+.word 931
+.word 977
+.word 1000
+.word 1012
+.word 506
+.word 765
+.word 382
+.word 703
+.word 351
+.word 175
+.word 87
+.word 555
+.word 277
+.word 650
+.word 837
+.word 930
+.word 465
+.word 744
+.word 884
+.word 442
+.word 733
+.word 366
+.word 695
+.word 859
+.word 429
+.word 214
+.word 107
+.word 53
+.word 538
+.word 781
+.word 390
+.word 195
+.word 609
+.word 816
+.word 408
+.word 716
+.word 870
+.word 435
+.word 729
+.word 364
+.word 694
+.word 347
+.word 173
+.word 86
+.word 43
+.word 21
+.word 522
+.word 773
+.word 898
+.word 449
+.word 736
+.word 368
+.word 184
+.word 604
+.word 814
+.word 919
+.word 971
+.word 485
+.word 754
+.word 377
+.word 188
+.word 606
+.word 815
+.word 407
+.word 715
+.word 357
+.word 690
+.word 345
+.word 172
+.word 598
+.word 299
+.word 149
+.word 586
+.word 805
+.word 914
+.word 457
+.word 228
+.word 114
+.word 57
+.word 28
+.word 526
+.word 775
+.word 899
+.word 961
+.word 992
+.word 496
+.word 248
+.word 636
+.word 830
+.word 927
+.word 463
+.word 231
+.word 627
+.word 825
+.word 412
+.word 718
+.word 871
+.word 947
+.word 985
+.word 492
+.word 758
+.word 379
+.word 189
+.word 94
+.word 559
+.word 279
+.word 651
+.word 325
+.word 674
+.word 337
+.word 680
+.word 852
+.word 426
+.word 725
+.word 874
+.word 949
+.word 986
+.word 1005
+.word 502
+.word 251
+.word 125
+.word 62
+.word 543
+.word 271
+.word 135
+.word 579
+.word 801
+.word 912
+.word 456
+.word 740
+.word 370
+.word 185
+.word 92
+.word 558
+.word 791
+.word 907
+.word 453
+.word 738
+.word 369
+.word 696
+.word 860
+.word 942
+.word 983
+.word 1003
+.word 501
+.word 762
+.word 893
+.word 446
+.word 735
+.word 367
+.word 183
+.word 603
+.word 301
+.word 150
+.word 75
+.word 37
+.word 530
+.word 265
+.word 132
+.word 66
+.word 33
+.word 528
+.word 264
+.word 644
+.word 322
+.word 161
+.word 592
+.word 296
+.word 660
+.word 330
+.word 677
+.word 850
+.word 425
+.word 212
+.word 106
+.word 565
+.word 794
+.word 909
+.word 454
+.word 227
+.word 625
+.word 824
+.word 924
+.word 974
+.word 999
+.word 1011
+.word 1017
+.word 508
+.word 766
+.word 895
+.word 447
+.word 223
+.word 111
+.word 55
+.word 539
+.word 269
+.word 134
+.word 67
+.word 545
+.word 784
+.word 392
+.word 708
+.word 354
+.word 177
+.word 600
+.word 812
+.word 918
+.word 459
+.word 229
+.word 626
+.word 313
+.word 156
+.word 590
+.word 807
+.word 915
+.word 969
+.word 484
+.word 242
+.word 121
+.word 60
+.word 542
+.word 783
+.word 391
+.word 707
+.word 865
+.word 944
+.word 472
+.word 748
+.word 886
+.word 443
+.word 221
+.word 110
+.word 567
+.word 795
+.word 397
+.word 198
+.word 99
+.word 561
+.word 792
+.word 908
+.word 966
+.word 483
+.word 753
+.word 888
+.word 956
+.word 990
+.word 1007
+.word 503
+.word 763
+.word 381
+.word 190
+.word 607
+.word 303
+.word 151
+.word 587
+.word 293
+.word 658
+.word 329
+.word 164
+.word 82
+.word 41
+.word 20
+.word 10
+.word 517
+.word 770
+.word 385
+.word 704
+.word 352
+.word 176
+.word 88
+.word 556
+.word 790
+.word 395
+.word 197
+.word 610
+.word 305
+.word 664
+.word 844
+.word 934
+.word 467
+.word 745
+.word 372
+.word 186
+.word 605
+.word 302
+.word 663
+.word 843
+.word 421
+.word 722
+.word 361
+.word 180
+.word 90
+.word 557
+.word 278
+.word 139
+.word 69
+.word 546
+.word 273
+.word 648
+.word 836
+.word 418
+.word 209
+.word 616
+.word 820
+.word 410
+.word 717
+.word 358
+.word 179
+.word 601
+.word 300
+.word 662
+.word 331
+.word 165
+.word 594
+.word 297
+.word 148
+.word 74
+.word 549
+.word 786
+.word 393
+.word 196
+.word 98
+.word 49
+.word 536
+.word 780
+.word 902
+.word 451
+.word 737
+.word 880
+.word 440
+.word 732
+.word 878
+.word 951
+.word 987
+.word 493
+.word 246
+.word 123
+.word 61
+.word 30
+.word 527
+.word 263
+.word 643
+.word 833
+.word 928
+.word 464
+.word 232
+.word 628
+.word 314
+.word 669
+.word 334
+.word 679
+.word 851
+.word 937
+.word 468
+.word 234
+.word 629
+.word 826
+.word 925
+.word 462
+.word 743
+.word 883
+.word 953
+.word 476
+.word 750
+.word 887
+.word 955
+.word 477
+.word 238
+.word 631
+.word 827
+.word 413
+.word 206
+.word 615
+.word 819
+.word 921
+.word 460
+.word 742
+.word 371
+.word 697
+.word 348
+.word 686
+.word 855
+.word 939
+.word 469
+.word 746
+.word 885
+.word 954
+.word 989
+.word 494
+.word 759
+.word 891
+.word 445
+.word 222
+.word 623
+.word 311
+.word 667
+.word 333
+.word 166
+.word 83
+.word 553
+.word 276
+.word 138
+.word 581
+.word 802
+.word 401
+.word 712
+.word 868
+.word 434
+.word 217
+.word 108
+.word 566
+.word 283
+.word 141
+.word 70
+.word 35
+.word 529
+.word 776
+.word 900
+.word 450
+.word 225
+.word 624
+.word 312
+.word 668
+.word 846
+.word 935
+.word 979
+.word 1001
+.word 500
+.word 250
+.word 637
+.word 318
+.word 671
+.word 335
+.word 167
+.word 595
+.word 809
+.word 404
+.word 202
+.word 613
+.word 818
+.word 409
+.word 204
+.word 614
+.word 307
+.word 665
+.word 332
+.word 678
+.word 339
+.word 681
+.word 340
+.word 170
+.word 597
+.word 810
+.word 917
+.word 970
+.word 997
+.word 1010
+.word 505
+.word 252
+.word 638
+.word 831
+.word 415
+.word 207
+.word 103
+.word 563
+.word 793
+.word 396
+.word 710
+.word 355
+.word 689
+.word 856
+.word 940
+.word 982
+.word 491
+.word 245
+.word 634
+.word 829
+.word 414
+.word 719
+.word 359
+.word 691
+.word 857
+.word 428
+.word 726
+.word 363
+.word 181
+.word 602
+.word 813
+.word 406
+.word 203
+.word 101
+.word 562
+.word 281
+.word 140
+.word 582
+.word 291
+.word 657
+.word 840
+.word 932
+.word 466
+.word 233
+.word 116
+.word 58
+.word 541
+.word 270
+.word 647
+.word 835
+.word 929
+.word 976
+.word 488
+.word 756
+.word 378
+.word 701
+.word 350
+.word 687
+.word 343
+.word 683
+.word 341
+.word 682
+.word 853
+.word 938
+.word 981
+.word 1002
+.word 1013
+.word 1018
+.word 1021
+.word 510
+.word 767
+.word 383
+.word 191
+.word 95
+.word 47
+.word 23
+.word 523
+.word 261
+.word 642
+.word 321
+.word 672
+.word 336
+.word 168
+.word 596
+.word 298
+.word 661
+.word 842
+.word 933
+.word 978
+.word 489
+.word 244
+.word 122
+.word 573
+.word 286
+.word 655
+.word 327
+.word 675
+.word 849
+.word 936
+.word 980
+.word 490
+.word 757
+.word 890
+.word 957
+.word 478
+.word 751
+.word 375
+.word 699
+.word 349
+.word 174
+.word 599
+.word 811
+.word 405
+.word 714
+.word 869
+.word 946
+.word 473
+.word 236
+.word 630
+.word 315
+.word 157
+.word 78
+.word 551
+.word 787
+.word 905
+.word 452
+.word 226
+.word 113
+.word 568
+.word 796
+.word 910
+.word 967
+.word 995
+.word 1009
+.word 1016
+.word 1020
+.word 1022
+
 RVTEST_CODE_END