#include "arch/predecoder.hh"
#include "arch/tlb.hh"
+#include "base/hashmap.hh"
#include "config/the_isa.hh"
#include "cpu/inorder/inorder_dyn_inst.hh"
#include "cpu/inorder/pipeline_traits.hh"
cachePortUnit(_cachePortUnit)
{ }
- bool snoopRangeSent;
-
protected:
/** Atomic version of receive. Panics. */
Tick recvAtomic(PacketPtr pkt);
- /** Functional version of receive. Panics. */
+ /** Functional version of receive.*/
void recvFunctional(PacketPtr pkt);
- /** Receives status change. Other than range changing, panics. */
- void recvStatusChange(Status status);
-
- /** Returns the address ranges of this device. */
- void getDeviceAddressRanges(AddrRangeList &resp,
- AddrRangeList &snoop)
- { resp.clear(); snoop.clear(); }
+ /** Receives range changes. */
+ void recvRangeChange();
- /** Timing version of receive. Handles setting fetch to the
- * proper status to start fetching. */
+ /** Timing version of receive */
bool recvTiming(PacketPtr pkt);
/** Handles doing a retry of a failed fetch. */
bool processSquash(CacheReqPacket *cache_pkt);
+ void trap(Fault fault, ThreadID tid, DynInstPtr inst);
+
void recvRetry();
/** Returns a specific port. */
}
bool tlbBlocked[ThePipeline::MaxThreads];
+ InstSeqNum tlbBlockSeqNum[ThePipeline::MaxThreads];
TheISA::TLB* tlb();
-
TheISA::TLB *_tlb;
};