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:
Ron Dreslinski 2005-02-25 15:12:05 -05:00
commit 45eb26e67c
4 changed files with 21 additions and 15 deletions

View file

@ -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) {
int index = i->second;
AlphaISA::PTE *pte = &table[index];
assert(pte->valid);
if (vpn == pte->tag && (pte->asma || pte->asn == asn)) {
retval = pte;
break;
}
while (i->first == vpn) { ++i;
int index = i->second; }
AlphaISA::PTE *pte = &table[index];
assert(pte->valid);
if (vpn == pte->tag && (pte->asma || pte->asn == asn))
return pte;
++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;
} }

View file

@ -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

View file

@ -110,7 +110,7 @@ baseFlags = [
'IICMore', 'IICMore',
'MSHR', 'MSHR',
'Chains', 'Chains',
'Dispatch', 'Pipeline',
'Stats', 'Stats',
'StatEvents', 'StatEvents',
'Context', 'Context',

View file

@ -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);