Merge zizzer:/z/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/.automount/zazzer/z/rdreslin/m5bk/timing_L1 --HG-- extra : convert_revision : e7d839327b07393bfcda0b77758b0832eaf1c1c0
This commit is contained in:
commit
45eb26e67c
4 changed files with 21 additions and 15 deletions
|
@ -68,24 +68,27 @@ AlphaTLB::~AlphaTLB()
|
||||||
AlphaISA::PTE *
|
AlphaISA::PTE *
|
||||||
AlphaTLB::lookup(Addr vpn, uint8_t asn) const
|
AlphaTLB::lookup(Addr vpn, uint8_t asn) const
|
||||||
{
|
{
|
||||||
DPRINTF(TLB, "lookup %#x, asn %#x\n", vpn, (int)asn);
|
// assume not found...
|
||||||
|
AlphaISA::PTE *retval = NULL;
|
||||||
|
|
||||||
PageTable::const_iterator i = lookupTable.find(vpn);
|
PageTable::const_iterator i = lookupTable.find(vpn);
|
||||||
if (i == lookupTable.end())
|
if (i != lookupTable.end()) {
|
||||||
return NULL;
|
|
||||||
|
|
||||||
while (i->first == vpn) {
|
while (i->first == vpn) {
|
||||||
int index = i->second;
|
int index = i->second;
|
||||||
AlphaISA::PTE *pte = &table[index];
|
AlphaISA::PTE *pte = &table[index];
|
||||||
assert(pte->valid);
|
assert(pte->valid);
|
||||||
if (vpn == pte->tag && (pte->asma || pte->asn == asn))
|
if (vpn == pte->tag && (pte->asma || pte->asn == asn)) {
|
||||||
return pte;
|
retval = pte;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// not found...
|
DPRINTF(TLB, "lookup %#x, asn %#x -> %s ppn %#x\n", vpn, (int)asn,
|
||||||
return NULL;
|
retval ? "hit" : "miss", retval ? retval->ppn : 0);
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -175,6 +175,9 @@ static const Addr PageOffset = PageBytes - 1;
|
||||||
|
|
||||||
static StaticInstPtr<AlphaISA> decodeInst(MachInst);
|
static StaticInstPtr<AlphaISA> decodeInst(MachInst);
|
||||||
|
|
||||||
|
// return a no-op instruction... used for instruction fetch faults
|
||||||
|
static const MachInst NoopMachInst;
|
||||||
|
|
||||||
enum annotes {
|
enum annotes {
|
||||||
ANNOTE_NONE = 0,
|
ANNOTE_NONE = 0,
|
||||||
// An impossible number for instruction annotations
|
// An impossible number for instruction annotations
|
||||||
|
|
|
@ -110,7 +110,7 @@ baseFlags = [
|
||||||
'IICMore',
|
'IICMore',
|
||||||
'MSHR',
|
'MSHR',
|
||||||
'Chains',
|
'Chains',
|
||||||
'Dispatch',
|
'Pipeline',
|
||||||
'Stats',
|
'Stats',
|
||||||
'StatEvents',
|
'StatEvents',
|
||||||
'Context',
|
'Context',
|
||||||
|
|
|
@ -154,7 +154,7 @@ class ExecutionTraceParamContext : public ParamContext
|
||||||
ExecutionTraceParamContext exeTraceParams("exetrace");
|
ExecutionTraceParamContext exeTraceParams("exetrace");
|
||||||
|
|
||||||
Param<bool> exe_trace_spec(&exeTraceParams, "speculative",
|
Param<bool> exe_trace_spec(&exeTraceParams, "speculative",
|
||||||
"capture speculative instructions", false);
|
"capture speculative instructions", true);
|
||||||
|
|
||||||
Param<bool> exe_trace_print_cycle(&exeTraceParams, "print_cycle",
|
Param<bool> exe_trace_print_cycle(&exeTraceParams, "print_cycle",
|
||||||
"print cycle number", true);
|
"print cycle number", true);
|
||||||
|
|
Loading…
Reference in a new issue