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; --- 1212 unchanged lines hidden (view full) --- 1221 // miss) 1222 if (fetchStatus[tid] == IcacheWaitResponse) { 1223 panic("Fetch should have exited prior to this!"); 1224 } 1225 1226 // Send the fault to commit. This thread will not do anything 1227 // until commit handles the fault. The only other way it can 1228 // wake up is if a squash comes along and changes the PC. |
1229 assert(numInst < fetchWidth); 1230 // Get a sequence number. 1231 inst_seq = cpu->getAndIncrementInstSeq(); 1232 // We will use a nop in order to carry the fault. 1233 ext_inst = TheISA::NoopMachInst; 1234 1235 // Create a new DynInst from the dummy nop. 1236 DynInstPtr instruction = new DynInst(ext_inst, --- 15 unchanged lines hidden (view full) --- 1252 1253 toDecode->insts[numInst] = instruction; 1254 toDecode->size++; 1255 1256 DPRINTF(Fetch, "[tid:%i]: Blocked, need to handle the trap.\n",tid); 1257 1258 fetchStatus[tid] = TrapPending; 1259 status_change = true; |
1260 |
1261 DPRINTF(Fetch, "[tid:%i]: fault (%s) detected @ PC %08p", 1262 tid, fault->name(), PC[tid]); 1263 } 1264} 1265 1266template<class Impl> 1267void 1268DefaultFetch<Impl>::recvRetry() --- 170 unchanged lines hidden --- |