From: Brad Beckmann Date: Wed, 11 Jul 2012 05:51:54 +0000 (-0700) Subject: x86: logSize and lruSeq are now optional ckpt params X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=52540b1b785aac9b307dfcc976527d94899deb94;p=gem5.git x86: logSize and lruSeq are now optional ckpt params --- 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; + } } }