timing.cc (7911:267e1e16e51b) timing.cc (7945:32758425de8c)
1/*
2 * Copyright (c) 2010 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

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

747 // Need to wait for cache to respond
748 _status = IcacheWaitResponse;
749 // ownership of packet transferred to memory system
750 ifetch_pkt = NULL;
751 }
752 } else {
753 delete req;
754 // fetch fault: advance directly to next instruction (fault handler)
1/*
2 * Copyright (c) 2010 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

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

747 // Need to wait for cache to respond
748 _status = IcacheWaitResponse;
749 // ownership of packet transferred to memory system
750 ifetch_pkt = NULL;
751 }
752 } else {
753 delete req;
754 // fetch fault: advance directly to next instruction (fault handler)
755 _status = Running;
755 advanceInst(fault);
756 }
757
758 numCycles += tickToCycles(curTick() - previousTick);
759 previousTick = curTick();
760}
761
762

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

800 completeDrain();
801 return;
802 }
803
804 preExecute();
805 if (curStaticInst && curStaticInst->isMemRef()) {
806 // load or store: just send to dcache
807 Fault fault = curStaticInst->initiateAcc(this, traceData);
756 advanceInst(fault);
757 }
758
759 numCycles += tickToCycles(curTick() - previousTick);
760 previousTick = curTick();
761}
762
763

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

801 completeDrain();
802 return;
803 }
804
805 preExecute();
806 if (curStaticInst && curStaticInst->isMemRef()) {
807 // load or store: just send to dcache
808 Fault fault = curStaticInst->initiateAcc(this, traceData);
808 if (_status != Running) {
809 // instruction will complete in dcache response callback
810 assert(_status == DcacheWaitResponse ||
811 _status == DcacheRetry || DTBWaitResponse);
812 assert(fault == NoFault);
813 } else {
809
810 // If we're not running now the instruction will complete in a dcache
811 // response callback or the instruction faulted and has started an
812 // ifetch
813 if (_status == Running) {
814 if (fault != NoFault && traceData) {
815 // If there was a fault, we shouldn't trace this instruction.
816 delete traceData;
817 traceData = NULL;
818 }
819
820 postExecute();
821 // @todo remove me after debugging with legion done

--- 298 unchanged lines hidden ---
814 if (fault != NoFault && traceData) {
815 // If there was a fault, we shouldn't trace this instruction.
816 delete traceData;
817 traceData = NULL;
818 }
819
820 postExecute();
821 // @todo remove me after debugging with legion done

--- 298 unchanged lines hidden ---