cpu.cc (6711:c79d72abdbe5) | cpu.cc (7507:b1ac6773e83d) |
---|---|
1/* 2 * Copyright (c) 2004-2006 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 1129 unchanged lines hidden (view full) --- 1138 BaseCPU::takeOverFrom(oldCPU, fetch.getIcachePort(), iew.getDcachePort()); 1139 1140 fetch.takeOverFrom(); 1141 decode.takeOverFrom(); 1142 rename.takeOverFrom(); 1143 iew.takeOverFrom(); 1144 commit.takeOverFrom(); 1145 | 1/* 2 * Copyright (c) 2004-2006 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 1129 unchanged lines hidden (view full) --- 1138 BaseCPU::takeOverFrom(oldCPU, fetch.getIcachePort(), iew.getDcachePort()); 1139 1140 fetch.takeOverFrom(); 1141 decode.takeOverFrom(); 1142 rename.takeOverFrom(); 1143 iew.takeOverFrom(); 1144 commit.takeOverFrom(); 1145 |
1146 assert(!tickEvent.scheduled()); | 1146 assert(!tickEvent.scheduled() || tickEvent.squashed()); |
1147 1148 // @todo: Figure out how to properly select the tid to put onto 1149 // the active threads list. 1150 ThreadID tid = 0; 1151 1152 list<ThreadID>::iterator isActive = 1153 std::find(activeThreads.begin(), activeThreads.end(), tid); 1154 --- 8 unchanged lines hidden (view full) --- 1163 1164 // Set all statuses to active, schedule the CPU's tick event. 1165 // @todo: Fix up statuses so this is handled properly 1166 ThreadID size = threadContexts.size(); 1167 for (ThreadID i = 0; i < size; ++i) { 1168 ThreadContext *tc = threadContexts[i]; 1169 if (tc->status() == ThreadContext::Active && _status != Running) { 1170 _status = Running; | 1147 1148 // @todo: Figure out how to properly select the tid to put onto 1149 // the active threads list. 1150 ThreadID tid = 0; 1151 1152 list<ThreadID>::iterator isActive = 1153 std::find(activeThreads.begin(), activeThreads.end(), tid); 1154 --- 8 unchanged lines hidden (view full) --- 1163 1164 // Set all statuses to active, schedule the CPU's tick event. 1165 // @todo: Fix up statuses so this is handled properly 1166 ThreadID size = threadContexts.size(); 1167 for (ThreadID i = 0; i < size; ++i) { 1168 ThreadContext *tc = threadContexts[i]; 1169 if (tc->status() == ThreadContext::Active && _status != Running) { 1170 _status = Running; |
1171 schedule(tickEvent, nextCycle()); | 1171 reschedule(tickEvent, nextCycle(), true); |
1172 } 1173 } 1174 if (!tickEvent.scheduled()) 1175 schedule(tickEvent, nextCycle()); 1176} 1177 1178template <class Impl> 1179TheISA::MiscReg --- 485 unchanged lines hidden --- | 1172 } 1173 } 1174 if (!tickEvent.scheduled()) 1175 schedule(tickEvent, nextCycle()); 1176} 1177 1178template <class Impl> 1179TheISA::MiscReg --- 485 unchanged lines hidden --- |