Fix some problems with stats reset & floss counters.

arch/alpha/isa_desc:
    Keep m5 pseudo-instructions (like resetstats) from taking effect
    on misspeculated paths.

--HG--
extra : convert_revision : 7f0b0490164bca377ff2b14abc35a6c26bac9e6d
This commit is contained in:
Steve Reinhardt 2003-10-26 22:37:14 -08:00
parent 5e0b617283
commit ced22d81a6

View file

@ -2388,27 +2388,39 @@ decode OPCODE default Unknown::unknown() {
0x1e: hw_rei({{ xc->hwrei(); }});
// M5 special opcodes use the reserved 0x01 opcode space
0x01: decode M5FUNC{
0x01: decode M5FUNC {
0x00: arm({{
Annotate::ARM(xc);
xc->kernelStats.arm();
if (!xc->misspeculating()) {
Annotate::ARM(xc);
xc->kernelStats.arm();
}
}});
0x01: quiesce({{
Annotate::QUIESCE(xc);
xc->setStatus(ExecContext::Suspended);
xc->kernelStats.quiesce();
if (!xc->misspeculating()) {
Annotate::QUIESCE(xc);
xc->setStatus(ExecContext::Suspended);
xc->kernelStats.quiesce();
}
}});
0x10: ivlb({{
Annotate::BeginInterval(xc);
xc->kernelStats.ivlb();
if (!xc->misspeculating()) {
Annotate::BeginInterval(xc);
xc->kernelStats.ivlb();
}
}}, No_OpClass);
0x11: ivle({{
if (!xc->misspeculating())
Annotate::EndInterval(xc);
}}, No_OpClass);
0x11: ivle({{ Annotate::EndInterval(xc); }}, No_OpClass);
0x20: m5exit({{
if (!xc->misspeculating())
m5_exit();
}}, No_OpClass);
0x30: initparam({{ Ra = xc->cpu->system->init_param; }});
0x40: resetstats({{ Statistics::reset(); }});
0x40: resetstats({{
if (!xc->misspeculating())
Statistics::reset();
}});
}
}