From 52540b1b785aac9b307dfcc976527d94899deb94 Mon Sep 17 00:00:00 2001 From: Brad Beckmann Date: Tue, 10 Jul 2012 22:51:54 -0700 Subject: [PATCH] x86: logSize and lruSeq are now optional ckpt params --- src/arch/x86/pagetable.cc | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/arch/x86/pagetable.cc b/src/arch/x86/pagetable.cc index bfd2efe61..40d5e0984 100644 --- a/src/arch/x86/pagetable.cc +++ b/src/arch/x86/pagetable.cc @@ -37,6 +37,7 @@ * Authors: Gabe Black */ +#include #include "arch/x86/isa_traits.hh" #include "arch/x86/pagetable.hh" #include "sim/serialize.hh" @@ -69,14 +70,25 @@ TlbEntry::unserialize(Checkpoint *cp, const std::string §ion) { UNSERIALIZE_SCALAR(paddr); UNSERIALIZE_SCALAR(vaddr); - UNSERIALIZE_SCALAR(logBytes); + // + // The logBytes scalar variable replaced the previous size variable. + // The following code maintains backwards compatibility with previous + // checkpoints using the old size variable. + // + if (UNSERIALIZE_OPT_SCALAR(logBytes) == false) { + int size; + UNSERIALIZE_SCALAR(size); + logBytes = log2(size); + } UNSERIALIZE_SCALAR(writable); UNSERIALIZE_SCALAR(user); UNSERIALIZE_SCALAR(uncacheable); UNSERIALIZE_SCALAR(global); UNSERIALIZE_SCALAR(patBit); UNSERIALIZE_SCALAR(noExec); - UNSERIALIZE_SCALAR(lruSeq); + if (UNSERIALIZE_OPT_SCALAR(lruSeq) == false) { + lruSeq = 0; + } } } -- 2.30.2