diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2007-11-19 22:47:08 -0500 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2007-11-19 22:47:08 -0500 |
commit | ac50694d1acb87a6537f8c34637f412680201e50 (patch) | |
tree | fa8f118f591ceb242a4f09709f1b884cbaebfc6c /src/arch | |
parent | 8026ecbb8e9f93894b15ac5422c58ecedfbf9fdf (diff) | |
download | gem5-ac50694d1acb87a6537f8c34637f412680201e50.tar.xz |
Serialization: Serialize SPARC PTEs last so their nameOut() calls don't interfere with other serialization in the TLB.
--HG--
extra : convert_revision : 8a8478a200cd3c65b2ac98944d1278454811d38f
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/sparc/tlb.cc | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/arch/sparc/tlb.cc b/src/arch/sparc/tlb.cc index b6880ff94..52791e12a 100644 --- a/src/arch/sparc/tlb.cc +++ b/src/arch/sparc/tlb.cc @@ -1363,11 +1363,6 @@ TLB::serialize(std::ostream &os) SERIALIZE_SCALAR(cntr); SERIALIZE_ARRAY(free_list, cntr); - for (int x = 0; x < size; x++) { - nameOut(os, csprintf("%s.PTE%d", name(), x)); - tlb[x].serialize(os); - } - SERIALIZE_SCALAR(c0_tsb_ps0); SERIALIZE_SCALAR(c0_tsb_ps1); SERIALIZE_SCALAR(c0_config); @@ -1376,6 +1371,11 @@ TLB::serialize(std::ostream &os) SERIALIZE_SCALAR(cx_config); SERIALIZE_SCALAR(sfsr); SERIALIZE_SCALAR(tag_access); + + for (int x = 0; x < size; x++) { + nameOut(os, csprintf("%s.PTE%d", name(), x)); + tlb[x].serialize(os); + } } void @@ -1398,14 +1398,6 @@ TLB::unserialize(Checkpoint *cp, const std::string §ion) for (int x = 0; x < cntr; x++) freeList.push_back(&tlb[free_list[x]]); - lookupTable.clear(); - for (int x = 0; x < size; x++) { - tlb[x].unserialize(cp, csprintf("%s.PTE%d", section, x)); - if (tlb[x].valid) - lookupTable.insert(tlb[x].range, &tlb[x]); - - } - UNSERIALIZE_SCALAR(c0_tsb_ps0); UNSERIALIZE_SCALAR(c0_tsb_ps1); UNSERIALIZE_SCALAR(c0_config); @@ -1414,6 +1406,14 @@ TLB::unserialize(Checkpoint *cp, const std::string §ion) UNSERIALIZE_SCALAR(cx_config); UNSERIALIZE_SCALAR(sfsr); UNSERIALIZE_SCALAR(tag_access); + + lookupTable.clear(); + for (int x = 0; x < size; x++) { + tlb[x].unserialize(cp, csprintf("%s.PTE%d", section, x)); + if (tlb[x].valid) + lookupTable.insert(tlb[x].range, &tlb[x]); + + } } void |