cpu.cc (9444:ab47fe7f03f0) cpu.cc (9448:569d1e8f74e4)
1/*
2 * Copyright (c) 2011-2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 1080 unchanged lines hidden (view full) ---

1089
1090 // Decrease funcExeInst by one as the normal commit will handle
1091 // incrementing it.
1092 --(this->thread[tid]->funcExeInst);
1093}
1094
1095template <class Impl>
1096void
1/*
2 * Copyright (c) 2011-2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 1080 unchanged lines hidden (view full) ---

1089
1090 // Decrease funcExeInst by one as the normal commit will handle
1091 // incrementing it.
1092 --(this->thread[tid]->funcExeInst);
1093}
1094
1095template <class Impl>
1096void
1097FullO3CPU<Impl>::serialize(std::ostream &os)
1097FullO3CPU<Impl>::serializeThread(std::ostream &os, ThreadID tid)
1098{
1098{
1099 Drainable::State so_state(getDrainState());
1100 SERIALIZE_ENUM(so_state);
1101 BaseCPU::serialize(os);
1102 nameOut(os, csprintf("%s.tickEvent", name()));
1103 tickEvent.serialize(os);
1104
1105 for (ThreadID i = 0; i < thread.size(); i++) {
1106 nameOut(os, csprintf("%s.xc.%i", name(), i));
1107 thread[i]->serialize(os);
1108 }
1099 thread[tid]->serialize(os);
1109}
1110
1111template <class Impl>
1112void
1100}
1101
1102template <class Impl>
1103void
1113FullO3CPU<Impl>::unserialize(Checkpoint *cp, const std::string &section)
1104FullO3CPU<Impl>::unserializeThread(Checkpoint *cp, const std::string &section,
1105 ThreadID tid)
1114{
1106{
1115 Drainable::State so_state;
1116 UNSERIALIZE_ENUM(so_state);
1117 BaseCPU::unserialize(cp, section);
1118 tickEvent.unserialize(cp, csprintf("%s.tickEvent", section));
1119
1120 for (ThreadID i = 0; i < thread.size(); i++) {
1121 thread[i]->unserialize(cp,
1122 csprintf("%s.xc.%i", section, i));
1123 if (thread[i]->status() == ThreadContext::Active)
1124 activateThread(i);
1125 }
1107 thread[tid]->unserialize(cp, section);
1126}
1127
1128template <class Impl>
1129unsigned int
1130FullO3CPU<Impl>::drain(DrainManager *drain_manager)
1131{
1132 // If the CPU isn't doing anything, then return immediately.
1133 if (switchedOut()) {

--- 671 unchanged lines hidden ---
1108}
1109
1110template <class Impl>
1111unsigned int
1112FullO3CPU<Impl>::drain(DrainManager *drain_manager)
1113{
1114 // If the CPU isn't doing anything, then return immediately.
1115 if (switchedOut()) {

--- 671 unchanged lines hidden ---