From 1511370d09a2dc93a9f7f6154440d28ed6309b49 Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Wed, 29 Oct 2003 00:41:24 -0800 Subject: More progress on checkpointing... we can now write out a checkpoint and read it back in, though most objects don't actually serialize any data. arch/alpha/alpha_memory.cc: arch/alpha/alpha_memory.hh: arch/alpha/isa_traits.hh: cpu/exec_context.cc: cpu/exec_context.hh: cpu/simple_cpu/simple_cpu.hh: dev/alpha_access.h: dev/alpha_console.cc: dev/alpha_console.hh: dev/console.cc: dev/console.hh: Change unserialize param from IniFile& to const IniFile*. cpu/simple_cpu/simple_cpu.cc: Change unserialize param from IniFile& to const IniFile*. Make unserialize call ExecContext::unserialize. sim/eventq.cc: Rename MainEventQueue (no spaces) for easier parsing in checkpoints. Disable event serialization for now, so we can focus on the easy stuff. sim/serialize.cc: Change paramIn and arrayParamIn param from IniFile& to const IniFile*. sim/serialize.hh: Change unserialize, paramIn, and arrayParamIn params from IniFile& to const IniFile*. --HG-- extra : convert_revision : 6e8853ed375eddec0e140c95a01dd51bd225f7b9 --- cpu/simple_cpu/simple_cpu.cc | 17 ++--------------- cpu/simple_cpu/simple_cpu.hh | 2 +- 2 files changed, 3 insertions(+), 16 deletions(-) (limited to 'cpu/simple_cpu') diff --git a/cpu/simple_cpu/simple_cpu.cc b/cpu/simple_cpu/simple_cpu.cc index 83e9e1fa2..27576d558 100644 --- a/cpu/simple_cpu/simple_cpu.cc +++ b/cpu/simple_cpu/simple_cpu.cc @@ -246,22 +246,9 @@ SimpleCPU::serialize(ostream &os) } void -SimpleCPU::unserialize(IniFile &db, const string &category) +SimpleCPU::unserialize(const IniFile *db, const string &category) { - string data; - - for (int i = 0; i < NumIntRegs; i++) { - stringstream buf; - ccprintf(buf, "R%02d", i); - db.findDefault(category, buf.str(), data); - to_number(data,xc->regs.intRegFile[i]); - } - for (int i = 0; i < NumFloatRegs; i++) { - stringstream buf; - ccprintf(buf, "F%02d", i); - db.findDefault(category, buf.str(), data); - to_number(data.c_str(), xc->regs.floatRegFile.q[i]); - } + xc->unserialize(db, category); // Read in Special registers diff --git a/cpu/simple_cpu/simple_cpu.hh b/cpu/simple_cpu/simple_cpu.hh index fa7386106..aee8159ce 100644 --- a/cpu/simple_cpu/simple_cpu.hh +++ b/cpu/simple_cpu/simple_cpu.hh @@ -260,7 +260,7 @@ class SimpleCPU : public BaseCPU void processCacheCompletion(); virtual void serialize(std::ostream &os); - virtual void unserialize(IniFile &db, const std::string §ion); + virtual void unserialize(const IniFile *db, const std::string §ion); template Fault read(Addr addr, T& data, unsigned flags); -- cgit v1.2.3