1097c1097
< FullO3CPU<Impl>::serialize(std::ostream &os)
---
> FullO3CPU<Impl>::serializeThread(std::ostream &os, ThreadID tid)
1099,1108c1099
< Drainable::State so_state(getDrainState());
< SERIALIZE_ENUM(so_state);
< BaseCPU::serialize(os);
< nameOut(os, csprintf("%s.tickEvent", name()));
< tickEvent.serialize(os);
<
< for (ThreadID i = 0; i < thread.size(); i++) {
< nameOut(os, csprintf("%s.xc.%i", name(), i));
< thread[i]->serialize(os);
< }
---
> thread[tid]->serialize(os);
1113c1104,1105
< FullO3CPU<Impl>::unserialize(Checkpoint *cp, const std::string &section)
---
> FullO3CPU<Impl>::unserializeThread(Checkpoint *cp, const std::string &section,
> ThreadID tid)
1115,1125c1107
< Drainable::State so_state;
< UNSERIALIZE_ENUM(so_state);
< BaseCPU::unserialize(cp, section);
< tickEvent.unserialize(cp, csprintf("%s.tickEvent", section));
<
< for (ThreadID i = 0; i < thread.size(); i++) {
< thread[i]->unserialize(cp,
< csprintf("%s.xc.%i", section, i));
< if (thread[i]->status() == ThreadContext::Active)
< activateThread(i);
< }
---
> thread[tid]->unserialize(cp, section);