timing.cc (4224:7e828583f2cb) timing.cc (4433:4722c6787f69)
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;

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

569
570 if (next_tick == curTick)
571 cpu->completeIfetch(pkt);
572 else
573 tickEvent.schedule(pkt, next_tick);
574
575 return true;
576 }
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;

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

569
570 if (next_tick == curTick)
571 cpu->completeIfetch(pkt);
572 else
573 tickEvent.schedule(pkt, next_tick);
574
575 return true;
576 }
577 else {
578 //Snooping a Coherence Request, do nothing
579 return true;
577 else if (pkt->result == Packet::Nacked) {
578 assert(cpu->_status == IcacheWaitResponse);
579 pkt->reinitNacked();
580 if (!sendTiming(pkt)) {
581 cpu->_status = IcacheRetry;
582 cpu->ifetch_pkt = pkt;
583 }
580 }
584 }
585 //Snooping a Coherence Request, do nothing
586 return true;
581}
582
583void
584TimingSimpleCPU::IcachePort::recvRetry()
585{
586 // we shouldn't get a retry unless we have a packet that we're
587 // waiting to transmit
588 assert(cpu->ifetch_pkt != NULL);

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

658
659 if (next_tick == curTick)
660 cpu->completeDataAccess(pkt);
661 else
662 tickEvent.schedule(pkt, next_tick);
663
664 return true;
665 }
587}
588
589void
590TimingSimpleCPU::IcachePort::recvRetry()
591{
592 // we shouldn't get a retry unless we have a packet that we're
593 // waiting to transmit
594 assert(cpu->ifetch_pkt != NULL);

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

664
665 if (next_tick == curTick)
666 cpu->completeDataAccess(pkt);
667 else
668 tickEvent.schedule(pkt, next_tick);
669
670 return true;
671 }
666 else {
667 //Snooping a coherence req, do nothing
668 return true;
672 else if (pkt->result == Packet::Nacked) {
673 assert(cpu->_status == DcacheWaitResponse);
674 pkt->reinitNacked();
675 if (!sendTiming(pkt)) {
676 cpu->_status = DcacheRetry;
677 cpu->dcache_pkt = pkt;
678 }
669 }
679 }
680 //Snooping a Coherence Request, do nothing
681 return true;
670}
671
672void
673TimingSimpleCPU::DcachePort::DTickEvent::process()
674{
675 cpu->completeDataAccess(pkt);
676}
677

--- 124 unchanged lines hidden ---
682}
683
684void
685TimingSimpleCPU::DcachePort::DTickEvent::process()
686{
687 cpu->completeDataAccess(pkt);
688}
689

--- 124 unchanged lines hidden ---