mshr.cc (6221:58a3c04e6344) mshr.cc (7465:f97b62be544f)
1/*
2 * Copyright (c) 2002-2005 The Regents of The University of Michigan
1/*
2 * Copyright (c) 2002-2005 The Regents of The University of Michigan
3 * Copyright (c) 2010 Advancec Micro Devices, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;
9 * redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the

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

66MSHR::TargetList::add(PacketPtr pkt, Tick readyTime,
67 Counter order, Target::Source source, bool markPending)
68{
69 if (source != Target::FromSnoop) {
70 if (pkt->needsExclusive()) {
71 needsExclusive = true;
72 }
73
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer;
10 * redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the

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

67MSHR::TargetList::add(PacketPtr pkt, Tick readyTime,
68 Counter order, Target::Source source, bool markPending)
69{
70 if (source != Target::FromSnoop) {
71 if (pkt->needsExclusive()) {
72 needsExclusive = true;
73 }
74
74 if (pkt->cmd == MemCmd::UpgradeReq) {
75 if (pkt->isUpgrade()) {
75 hasUpgrade = true;
76 }
77 }
78
79 if (markPending) {
80 MSHR *mshr = dynamic_cast<MSHR*>(pkt->senderState);
81 if (mshr != NULL) {
82 assert(!mshr->downstreamPending);

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

94 if (!hasUpgrade)
95 return;
96
97 Iterator end_i = end();
98 for (Iterator i = begin(); i != end_i; ++i) {
99 if (i->pkt->cmd == MemCmd::UpgradeReq) {
100 i->pkt->cmd = MemCmd::ReadExReq;
101 DPRINTF(Cache, "Replacing UpgradeReq with ReadExReq\n");
76 hasUpgrade = true;
77 }
78 }
79
80 if (markPending) {
81 MSHR *mshr = dynamic_cast<MSHR*>(pkt->senderState);
82 if (mshr != NULL) {
83 assert(!mshr->downstreamPending);

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

95 if (!hasUpgrade)
96 return;
97
98 Iterator end_i = end();
99 for (Iterator i = begin(); i != end_i; ++i) {
100 if (i->pkt->cmd == MemCmd::UpgradeReq) {
101 i->pkt->cmd = MemCmd::ReadExReq;
102 DPRINTF(Cache, "Replacing UpgradeReq with ReadExReq\n");
103 } else if (i->pkt->cmd == MemCmd::SCUpgradeReq) {
104 i->pkt->cmd = MemCmd::SCUpgradeFailReq;
105 DPRINTF(Cache, "Replacing SCUpgradeReq with SCUpgradeFailReq\n");
102 }
103 }
104
105 hasUpgrade = false;
106}
107
108
109void

--- 330 unchanged lines hidden ---
106 }
107 }
108
109 hasUpgrade = false;
110}
111
112
113void

--- 330 unchanged lines hidden ---