diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mem/page_table.cc | 12 | ||||
-rw-r--r-- | src/sim/serialize.cc | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/mem/page_table.cc b/src/mem/page_table.cc index 4bc3a4434..88cfdfeb7 100644 --- a/src/mem/page_table.cc +++ b/src/mem/page_table.cc @@ -222,6 +222,16 @@ PageTable::unserialize(Checkpoint *cp, const std::string §ion) entry->unserialize(cp, csprintf("%s.Entry%d", process->name(), i)); pTable[vaddr] = *entry; ++i; - } + } + + process->M5_pid = pTable[vaddr].asn; + +#if THE_ISA == ALPHA_ISA + // The IPR_DTB_ASN misc reg must be set in Alpha for the tlb to work + // correctly + int id = process->contextIds[0]; + ThreadContext *tc = process->system->getThreadContext(id); + tc->setMiscRegNoEffect(IPR_DTB_ASN, process->M5_pid << 57); +#endif } diff --git a/src/sim/serialize.cc b/src/sim/serialize.cc index 5ae9128e5..1663d18bc 100644 --- a/src/sim/serialize.cc +++ b/src/sim/serialize.cc @@ -422,7 +422,7 @@ Serializable::serializeAll(const string &cpt_dir) time_t t = time(NULL); if (!outstream.is_open()) fatal("Unable to open file %s for writing\n", cpt_file.c_str()); - outstream << "// checkpoint generated: " << ctime(&t); + outstream << "## checkpoint generated: " << ctime(&t); globals.serialize(outstream); SimObject::serializeAll(outstream); |