mshr.cc (10582:c04dc66e4316) mshr.cc (10679:204a0f53035e)
1/*
2 * Copyright (c) 2012-2013 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

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

233 assert(downstreamPending);
234 downstreamPending = false;
235 // recursively clear flag on any MSHRs we will be forwarding
236 // responses to
237 targets.clearDownstreamPending();
238}
239
240bool
1/*
2 * Copyright (c) 2012-2013 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

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

233 assert(downstreamPending);
234 downstreamPending = false;
235 // recursively clear flag on any MSHRs we will be forwarding
236 // responses to
237 targets.clearDownstreamPending();
238}
239
240bool
241MSHR::markInService(PacketPtr pkt)
241MSHR::markInService(bool pending_dirty_resp)
242{
243 assert(!inService);
244 if (isForwardNoResponse()) {
245 // we just forwarded the request packet & don't expect a
246 // response, so get rid of it
247 assert(getNumTargets() == 1);
248 popTarget();
249 return true;
250 }
251
242{
243 assert(!inService);
244 if (isForwardNoResponse()) {
245 // we just forwarded the request packet & don't expect a
246 // response, so get rid of it
247 assert(getNumTargets() == 1);
248 popTarget();
249 return true;
250 }
251
252 assert(pkt != NULL);
253 inService = true;
252 inService = true;
254 pendingDirty = targets.needsExclusive ||
255 (!pkt->sharedAsserted() && pkt->memInhibitAsserted());
253 pendingDirty = targets.needsExclusive || pending_dirty_resp;
256 postInvalidate = postDowngrade = false;
257
258 if (!downstreamPending) {
259 // let upstream caches know that the request has made it to a
260 // level where it's going to get a response
261 targets.clearDownstreamPending();
262 }
263 return false;

--- 226 unchanged lines hidden ---
254 postInvalidate = postDowngrade = false;
255
256 if (!downstreamPending) {
257 // let upstream caches know that the request has made it to a
258 // level where it's going to get a response
259 targets.clearDownstreamPending();
260 }
261 return false;

--- 226 unchanged lines hidden ---