timing.cc (4986:b7c82ad6b3ef) timing.cc (4997:e7380529bd2d)
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;

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

559TimingSimpleCPU::IcachePort::ITickEvent::process()
560{
561 cpu->completeIfetch(pkt);
562}
563
564bool
565TimingSimpleCPU::IcachePort::recvTiming(PacketPtr pkt)
566{
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;

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

559TimingSimpleCPU::IcachePort::ITickEvent::process()
560{
561 cpu->completeIfetch(pkt);
562}
563
564bool
565TimingSimpleCPU::IcachePort::recvTiming(PacketPtr pkt)
566{
567 if (pkt->isResponse() && !pkt->wasNacked()) {
567 if (pkt->isResponse()) {
568 // delay processing of returned data until next CPU clock edge
569 Tick next_tick = cpu->nextCycle(curTick);
570
571 if (next_tick == curTick)
572 cpu->completeIfetch(pkt);
573 else
574 tickEvent.schedule(pkt, next_tick);
575

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

653 // Ports)
654 cpu->tcBase()->connectMemPorts();
655#endif
656}
657
658bool
659TimingSimpleCPU::DcachePort::recvTiming(PacketPtr pkt)
660{
568 // delay processing of returned data until next CPU clock edge
569 Tick next_tick = cpu->nextCycle(curTick);
570
571 if (next_tick == curTick)
572 cpu->completeIfetch(pkt);
573 else
574 tickEvent.schedule(pkt, next_tick);
575

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

653 // Ports)
654 cpu->tcBase()->connectMemPorts();
655#endif
656}
657
658bool
659TimingSimpleCPU::DcachePort::recvTiming(PacketPtr pkt)
660{
661 if (pkt->isResponse() && !pkt->wasNacked()) {
661 if (pkt->isResponse()) {
662 // delay processing of returned data until next CPU clock edge
663 Tick next_tick = cpu->nextCycle(curTick);
664
665 if (next_tick == curTick)
666 cpu->completeDataAccess(pkt);
667 else
668 tickEvent.schedule(pkt, next_tick);
669

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

722 params->clock = clock;
723 params->phase = phase;
724 params->functionTrace = function_trace;
725 params->functionTraceStart = function_trace_start;
726 params->system = system;
727 params->cpu_id = cpu_id;
728 params->tracer = tracer;
729
662 // delay processing of returned data until next CPU clock edge
663 Tick next_tick = cpu->nextCycle(curTick);
664
665 if (next_tick == curTick)
666 cpu->completeDataAccess(pkt);
667 else
668 tickEvent.schedule(pkt, next_tick);
669

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

722 params->clock = clock;
723 params->phase = phase;
724 params->functionTrace = function_trace;
725 params->functionTraceStart = function_trace_start;
726 params->system = system;
727 params->cpu_id = cpu_id;
728 params->tracer = tracer;
729
730#if FULL_SYSTEM
731 params->itb = itb;
732 params->dtb = dtb;
730 params->itb = itb;
731 params->dtb = dtb;
732#if FULL_SYSTEM
733 params->profile = profile;
734 params->do_quiesce = do_quiesce;
735 params->do_checkpoint_insts = do_checkpoint_insts;
736 params->do_statistics_insts = do_statistics_insts;
737#else
738 if (workload.size() != 1)
739 panic("only one workload allowed");
740 params->process = workload[0];
741#endif
742
743 TimingSimpleCPU *cpu = new TimingSimpleCPU(params);
744 return cpu;
745}
733 params->profile = profile;
734 params->do_quiesce = do_quiesce;
735 params->do_checkpoint_insts = do_checkpoint_insts;
736 params->do_statistics_insts = do_statistics_insts;
737#else
738 if (workload.size() != 1)
739 panic("only one workload allowed");
740 params->process = workload[0];
741#endif
742
743 TimingSimpleCPU *cpu = new TimingSimpleCPU(params);
744 return cpu;
745}