cache.cc (11334:9bd2e84abdca) cache.cc (11352:4e195fb9ec4f)
1/*
2 * Copyright (c) 2010-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

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

961 cmd = cpu_pkt->isLLSC() ? MemCmd::SCUpgradeReq : MemCmd::UpgradeReq;
962 } else if (cpu_pkt->cmd == MemCmd::SCUpgradeFailReq ||
963 cpu_pkt->cmd == MemCmd::StoreCondFailReq) {
964 // Even though this SC will fail, we still need to send out the
965 // request and get the data to supply it to other snoopers in the case
966 // where the determination the StoreCond fails is delayed due to
967 // all caches not being on the same local bus.
968 cmd = MemCmd::SCUpgradeFailReq;
1/*
2 * Copyright (c) 2010-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

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

961 cmd = cpu_pkt->isLLSC() ? MemCmd::SCUpgradeReq : MemCmd::UpgradeReq;
962 } else if (cpu_pkt->cmd == MemCmd::SCUpgradeFailReq ||
963 cpu_pkt->cmd == MemCmd::StoreCondFailReq) {
964 // Even though this SC will fail, we still need to send out the
965 // request and get the data to supply it to other snoopers in the case
966 // where the determination the StoreCond fails is delayed due to
967 // all caches not being on the same local bus.
968 cmd = MemCmd::SCUpgradeFailReq;
969 } else if (cpu_pkt->cmd == MemCmd::WriteLineReq) {
969 } else if (cpu_pkt->cmd == MemCmd::WriteLineReq ||
970 cpu_pkt->cmd == MemCmd::InvalidateReq) {
970 // forward as invalidate to all other caches, this gives us
971 // the line in Exclusive state, and invalidates all other
972 // copies
973 cmd = MemCmd::InvalidateReq;
974 } else {
975 // block is invalid
976 cmd = needsWritable ? MemCmd::ReadExReq :
977 (isReadOnly ? MemCmd::ReadCleanReq : MemCmd::ReadSharedReq);

--- 1686 unchanged lines hidden ---
971 // forward as invalidate to all other caches, this gives us
972 // the line in Exclusive state, and invalidates all other
973 // copies
974 cmd = MemCmd::InvalidateReq;
975 } else {
976 // block is invalid
977 cmd = needsWritable ? MemCmd::ReadExReq :
978 (isReadOnly ? MemCmd::ReadCleanReq : MemCmd::ReadSharedReq);

--- 1686 unchanged lines hidden ---