67c67
< Counter order, bool cpuSide, bool markPending)
---
> Counter order, Target::Source source, bool markPending)
69c69
< if (cpuSide) {
---
> if (source != Target::FromSnoop) {
87c87
< push_back(Target(pkt, readyTime, order, cpuSide, markPending));
---
> push_back(Target(pkt, readyTime, order, source, markPending));
144c144,151
< ccprintf(os, "%s%s: ", prefix, i->isCpuSide() ? "cpu" : "mem");
---
> const char *s;
> switch (i->source) {
> case Target::FromCPU: s = "FromCPU";
> case Target::FromSnoop: s = "FromSnoop";
> case Target::FromPrefetcher: s = "FromPrefetcher";
> default: s = "";
> }
> ccprintf(os, "%s%s: ", prefix, s);
165,166d171
< // Don't know of a case where we would allocate a new MSHR for a
< // snoop (mem-side request), so set cpuSide to true here.
168c173,177
< targets->add(target, whenReady, _order, true, true);
---
> // Don't know of a case where we would allocate a new MSHR for a
> // snoop (mem-side request), so set source according to request here
> Target::Source source = (target->cmd == MemCmd::HardPFReq) ?
> Target::FromPrefetcher : Target::FromCPU;
> targets->add(target, whenReady, _order, source, true);
232a242,246
>
> // assume we'd never issue a prefetch when we've got an
> // outstanding miss
> assert(pkt->cmd != MemCmd::HardPFReq);
>
237c251
< deferredTargets->add(pkt, whenReady, _order, true, true);
---
> deferredTargets->add(pkt, whenReady, _order, Target::FromCPU, true);
243c257
< targets->add(pkt, whenReady, _order, true, !inService);
---
> targets->add(pkt, whenReady, _order, Target::FromCPU, !inService);
294c308
< targets->add(cp_pkt, curTick, _order, false,
---
> targets->add(cp_pkt, curTick, _order, Target::FromSnoop,