1/* 2 * Copyright (c) 2002-2005 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; --- 259 unchanged lines hidden (view full) --- 268} 269 270void 271TimingSimpleCPU::sendData(Fault fault, RequestPtr req, 272 uint8_t *data, uint64_t *res, bool read) 273{ 274 _status = Running; 275 if (fault != NoFault) { |
276 if (req->isPrefetch()) 277 fault = NoFault; |
278 delete data; 279 delete req; 280 281 translationFault(fault); 282 return; 283 } 284 PacketPtr pkt; 285 buildPacket(pkt, req, read); --- 26 unchanged lines hidden (view full) --- 312 313void 314TimingSimpleCPU::sendSplitData(Fault fault1, Fault fault2, 315 RequestPtr req1, RequestPtr req2, RequestPtr req, 316 uint8_t *data, bool read) 317{ 318 _status = Running; 319 if (fault1 != NoFault || fault2 != NoFault) { |
320 if (req1->isPrefetch()) 321 fault1 = NoFault; 322 if (req2->isPrefetch()) 323 fault2 = NoFault; |
324 delete data; 325 delete req1; 326 delete req2; 327 if (fault1 != NoFault) 328 translationFault(fault1); 329 else if (fault2 != NoFault) 330 translationFault(fault2); 331 return; --- 29 unchanged lines hidden (view full) --- 361 } 362 } 363 } 364} 365 366void 367TimingSimpleCPU::translationFault(Fault fault) 368{ |
369 // fault may be NoFault in cases where a fault is suppressed, 370 // for instance prefetches. |
371 numCycles += tickToCycles(curTick - previousTick); 372 previousTick = curTick; 373 374 if (traceData) { 375 // Since there was a fault, we shouldn't trace this instruction. 376 delete traceData; 377 traceData = NULL; 378 } --- 695 unchanged lines hidden --- |