Line 136... |
Line 136... |
void printotherstats(int which)
|
void printotherstats(int which)
|
{
|
{
|
int i, all = 0, dependall = 0;
|
int i, all = 0, dependall = 0;
|
|
|
printf ("\n");
|
printf ("\n");
|
if (config.cpu.bpb) {
|
if (config.bpb.enabled) {
|
struct branchstat bf;
|
struct branchstat bf;
|
struct branchstat bnf;
|
struct branchstat bnf;
|
long bf_all, bnf_all;
|
long bf_all, bnf_all;
|
bf.taken = mstats.bf[1][0] + mstats.bf[1][1];
|
bf.taken = mstats.bf[1][0] + mstats.bf[1][1];
|
bf.nottaken = mstats.bf[0][0] + mstats.bf[0][1];
|
bf.nottaken = mstats.bf[0][0] + mstats.bf[0][1];
|
Line 161... |
Line 161... |
printf("bf: %d (%d%%) taken,", bnf.taken, (bnf.taken * 100) / SD(bnf_all));
|
printf("bf: %d (%d%%) taken,", bnf.taken, (bnf.taken * 100) / SD(bnf_all));
|
printf(" %d (%d%%) not taken,", bnf.nottaken, (bnf.nottaken * 100) / SD(bnf_all));
|
printf(" %d (%d%%) not taken,", bnf.nottaken, (bnf.nottaken * 100) / SD(bnf_all));
|
printf(" %d (%d%%) forward,", bnf.forward, (bnf.forward * 100) / SD(bnf_all));
|
printf(" %d (%d%%) forward,", bnf.forward, (bnf.forward * 100) / SD(bnf_all));
|
printf(" %d (%d%%) backward\n", bnf.backward, (bnf.backward * 100) / SD(bnf_all));
|
printf(" %d (%d%%) backward\n", bnf.backward, (bnf.backward * 100) / SD(bnf_all));
|
|
|
printf("StaticBP bnf(%s): correct %d%%\n", config.cpu.sbp_bnf_fwd ? "forward" : "backward",
|
printf("StaticBP bnf(%s): correct %d%%\n", config.bpb.sbp_bnf_fwd ? "forward" : "backward",
|
(mstats.bnf[0][config.cpu.sbp_bnf_fwd] * 100) / SD(bnf_all));
|
(mstats.bnf[0][config.bpb.sbp_bnf_fwd] * 100) / SD(bnf_all));
|
printf("StaticBP bf(%s): correct %d%%\n", config.cpu.sbp_bf_fwd ? "forward" : "backward",
|
printf("StaticBP bf(%s): correct %d%%\n", config.bpb.sbp_bf_fwd ? "forward" : "backward",
|
(mstats.bnf[1][config.cpu.sbp_bf_fwd] * 100) / SD(bf_all));
|
(mstats.bnf[1][config.bpb.sbp_bf_fwd] * 100) / SD(bf_all));
|
printf("BPB: hit %d (correct %d%%), miss %d\n", mstats.bpb.hit, (mstats.bpb.correct * 100) / SD(mstats.bpb.hit), mstats.bpb.miss);
|
printf("BPB: hit %d (correct %d%%), miss %d\n", mstats.bpb.hit, (mstats.bpb.correct * 100) / SD(mstats.bpb.hit), mstats.bpb.miss);
|
} else
|
} else
|
printf("BPB simulation disabled. Enable it to see BPB analysis\n");
|
printf("BPB simulation disabled. Enable it to see BPB analysis\n");
|
|
|
if (config.cpu.btic) {
|
if (config.bpb.btic) {
|
printf("BTIC: hit %d(%d%%), miss %d\n", mstats.btic.hit, (mstats.btic.hit * 100) / SD(mstats.btic.hit + mstats.btic.miss), mstats.btic.miss);
|
printf("BTIC: hit %d(%d%%), miss %d\n", mstats.btic.hit, (mstats.btic.hit * 100) / SD(mstats.btic.hit + mstats.btic.miss), mstats.btic.miss);
|
} else
|
} else
|
printf("BTIC simulation disabled. Enabled it to see BTIC analysis\n");
|
printf("BTIC simulation disabled. Enabled it to see BTIC analysis\n");
|
|
|
if (testsprbits(SPR_UPR, SPR_UPR_ICP)) {
|
if (testsprbits(SPR_UPR, SPR_UPR_ICP)) {
|