diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2010-11-08 13:58:25 -0600 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2010-11-08 13:58:25 -0600 |
commit | a1e82259759ce7290269aeca6742098f1adbf2fd (patch) | |
tree | 2f93b2fe1d64c24cac0e5405f9f5a7b388c57592 /src/arch/arm/tlb.cc | |
parent | 432fa0aad6092d6a9252f6a9c83c8b36509c1341 (diff) | |
download | gem5-a1e82259759ce7290269aeca6742098f1adbf2fd.tar.xz |
ARM: Add checkpointing support
Diffstat (limited to 'src/arch/arm/tlb.cc')
-rw-r--r-- | src/arch/arm/tlb.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/arch/arm/tlb.cc b/src/arch/arm/tlb.cc index 239d5d8a2..4f1279404 100644 --- a/src/arch/arm/tlb.cc +++ b/src/arch/arm/tlb.cc @@ -245,14 +245,24 @@ TLB::flushMva(Addr mva) void TLB::serialize(ostream &os) { - panic("Implement Serialize\n"); + DPRINTF(Checkpoint, "Serializing Arm TLB\n"); + + SERIALIZE_SCALAR(_attr); + for(int i = 0; i < size; i++){ + nameOut(os, csprintf("%s.TlbEntry%d", name(), i)); + table[i].serialize(os); + } } void TLB::unserialize(Checkpoint *cp, const string §ion) { + DPRINTF(Checkpoint, "Unserializing Arm TLB\n"); - panic("Need to properly unserialize TLB\n"); + UNSERIALIZE_SCALAR(_attr); + for(int i = 0; i < size; i++){ + table[i].unserialize(cp, csprintf("%s.TlbEntry%d", section, i)); + } } void |