queued.cc (12749:223c83ed9979) queued.cc (13416:d90887d0c889)
1/*
2 * Copyright (c) 2014-2015 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

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

58QueuedPrefetcher::~QueuedPrefetcher()
59{
60 // Delete the queued prefetch packets
61 for (DeferredPacket &p : pfq) {
62 delete p.pkt;
63 }
64}
65
1/*
2 * Copyright (c) 2014-2015 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

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

58QueuedPrefetcher::~QueuedPrefetcher()
59{
60 // Delete the queued prefetch packets
61 for (DeferredPacket &p : pfq) {
62 delete p.pkt;
63 }
64}
65
66Tick
66void
67QueuedPrefetcher::notify(const PacketPtr &pkt)
68{
69 // Verify this access type is observed by prefetcher
70 if (observeAccess(pkt)) {
71 Addr blk_addr = pkt->getBlockAddr(blkSize);
72 bool is_secure = pkt->isSecure();
73
74 // Squash queued prefetches if demand miss to same line

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

105 if (pf_pkt != nullptr) {
106 if (tagPrefetch && pkt->req->hasPC()) {
107 // Tag prefetch packet with accessing pc
108 pf_pkt->req->setPC(pkt->req->getPC());
109 }
110 }
111 }
112 }
67QueuedPrefetcher::notify(const PacketPtr &pkt)
68{
69 // Verify this access type is observed by prefetcher
70 if (observeAccess(pkt)) {
71 Addr blk_addr = pkt->getBlockAddr(blkSize);
72 bool is_secure = pkt->isSecure();
73
74 // Squash queued prefetches if demand miss to same line

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

105 if (pf_pkt != nullptr) {
106 if (tagPrefetch && pkt->req->hasPC()) {
107 // Tag prefetch packet with accessing pc
108 pf_pkt->req->setPC(pkt->req->getPC());
109 }
110 }
111 }
112 }
113
114 return pfq.empty() ? MaxTick : pfq.front().tick;
115}
116
117PacketPtr
118QueuedPrefetcher::getPacket()
119{
120 DPRINTF(HWPrefetch, "Requesting a prefetch to issue.\n");
121
122 if (pfq.empty()) {

--- 159 unchanged lines hidden ---
113}
114
115PacketPtr
116QueuedPrefetcher::getPacket()
117{
118 DPRINTF(HWPrefetch, "Requesting a prefetch to issue.\n");
119
120 if (pfq.empty()) {

--- 159 unchanged lines hidden ---