summaryrefslogtreecommitdiff
path: root/src/bench.c
blob: eb7e0e5898f2573c502f4ccd4b655688ee064e02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Project: Salis
// Author:  Paul Oliver
// Email:   contact@pauloliver.dev

/*
 * Simple benchmark test helps measure simulation speed by stepping the
 * simulator N times and printing results.
 */

#if ACTION != ACT_BENCH
#error Using bench UI with unsupported action
#endif

int main() {
    printf("Salis Benchmark Test\n\n");

    salis_init("", SEED);
    salis_step(BENCH_STEPS);

    printf("seed        => %#lx\n", SEED);
    printf("g_steps     => %#lx\n", g_steps);
    printf("g_syncs     => %#lx\n", g_syncs);

    for (int i = 0; i < CORE_COUNT; ++i) {
        putchar('\n');
        printf("core %d mall => %#lx\n", i, g_cores[i].mall);
        printf("core %d mut0 => %#lx\n", i, g_cores[i].muta[0]);
        printf("core %d mut1 => %#lx\n", i, g_cores[i].muta[1]);
        printf("core %d mut2 => %#lx\n", i, g_cores[i].muta[2]);
        printf("core %d mut3 => %#lx\n", i, g_cores[i].muta[3]);
        printf("core %d pnum => %#lx\n", i, g_cores[i].pnum);
        printf("core %d pcap => %#lx\n", i, g_cores[i].pcap);
        printf("core %d pfst => %#lx\n", i, g_cores[i].pfst);
        printf("core %d plst => %#lx\n", i, g_cores[i].plst);
        printf("core %d pcur => %#lx\n", i, g_cores[i].pcur);
        printf("core %d psli => %#lx\n", i, g_cores[i].psli);
        printf("core %d ncyc => %#lx\n", i, g_cores[i].ncyc);
        printf("core %d ivpt => %#lx\n", i, g_cores[i].ivpt);
        putchar('\n');

        for (int j = 0; j < 32; ++j) {
            printf("%02x ", g_cores[i].mvec[j]);
        }

        putchar('\n');
    }

    salis_free();
}