Lines Matching refs:pkt
59 BasePrefetcher::PrefetchInfo::PrefetchInfo(PacketPtr pkt, Addr addr, bool miss)
60 : address(addr), pc(pkt->req->hasPC() ? pkt->req->getPC() : 0),
61 masterId(pkt->req->masterId()), validPC(pkt->req->hasPC()),
62 secure(pkt->isSecure()), size(pkt->req->getSize()), write(pkt->isWrite()),
63 paddress(pkt->req->getPaddr()), cacheMiss(miss)
65 unsigned int req_size = pkt->req->getSize();
70 Addr offset = pkt->req->getPaddr() - pkt->getAddr();
71 std::memcpy(data, &(pkt->getConstPtr<uint8_t>()[offset]), req_size);
83 BasePrefetcher::PrefetchListener::notify(const PacketPtr &pkt)
86 parent.notifyFill(pkt);
88 parent.probeNotify(pkt, miss);
127 BasePrefetcher::observeAccess(const PacketPtr &pkt, bool miss) const
129 bool fetch = pkt->req->isInstFetch();
130 bool read = pkt->isRead();
131 bool inv = pkt->isInvalidate();
133 if (pkt->req->isUncacheable()) return false;
139 if (pkt->cmd == MemCmd::CleanEvict) return false;
203 BasePrefetcher::probeNotify(const PacketPtr &pkt, bool miss)
207 if (pkt->cmd.isSWPrefetch()) return;
208 if (pkt->req->isCacheMaintenance()) return;
209 if (pkt->isWrite() && cache != nullptr && cache->coalesce()) return;
210 if (!pkt->req->hasPaddr()) {
214 if (hasBeenPrefetched(pkt->getAddr(), pkt->isSecure())) {
219 if (observeAccess(pkt, miss)) {
220 if (useVirtualAddresses && pkt->req->hasVaddr()) {
221 PrefetchInfo pfi(pkt, pkt->req->getVaddr(), miss);
222 notify(pkt, pfi);
224 PrefetchInfo pfi(pkt, pkt->req->getPaddr(), miss);
225 notify(pkt, pfi);