35a36
> #include "cpu/quiesce_event.hh"
795a797,798
> DPRINTF(O3CPU, "Switching out\n");
> BaseCPU::switchOut(_sampler);
865a869
> iew.switchOut();
933a938,976
> void
> FullO3CPU<Impl>::serialize(std::ostream &os)
> {
> BaseCPU::serialize(os);
> nameOut(os, csprintf("%s.tickEvent", name()));
> tickEvent.serialize(os);
>
> // Use SimpleThread's ability to checkpoint to make it easier to
> // write out the registers. Also make this static so it doesn't
> // get instantiated multiple times (causes a panic in statistics).
> static CPUExecContext temp;
>
> for (int i = 0; i < thread.size(); i++) {
> nameOut(os, csprintf("%s.xc.%i", name(), i));
> temp.copyXC(thread[i]->getXCProxy());
> temp.serialize(os);
> }
> }
>
> template <class Impl>
> void
> FullO3CPU<Impl>::unserialize(Checkpoint *cp, const std::string &section)
> {
> BaseCPU::unserialize(cp, section);
> tickEvent.unserialize(cp, csprintf("%s.tickEvent", section));
>
> // Use SimpleThread's ability to checkpoint to make it easier to
> // read in the registers. Also make this static so it doesn't
> // get instantiated multiple times (causes a panic in statistics).
> static CPUExecContext temp;
>
> for (int i = 0; i < thread.size(); i++) {
> temp.copyXC(thread[i]->getXCProxy());
> temp.unserialize(cp, csprintf("%s.xc.%i", section, i));
> thread[i]->getXCProxy()->copyArchRegs(temp.getProxy());
> }
> }
>
> template <class Impl>