base.cc (13216:6ae030076b29) base.cc (13222:0dbcc7d7d66f)
1/*
2 * Copyright (c) 2012-2013, 2018 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

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

47 */
48
49#include "mem/cache/base.hh"
50
51#include "base/compiler.hh"
52#include "base/logging.hh"
53#include "debug/Cache.hh"
54#include "debug/CachePort.hh"
1/*
2 * Copyright (c) 2012-2013, 2018 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

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

47 */
48
49#include "mem/cache/base.hh"
50
51#include "base/compiler.hh"
52#include "base/logging.hh"
53#include "debug/Cache.hh"
54#include "debug/CachePort.hh"
55#include "debug/CacheRepl.hh"
55#include "debug/CacheVerbose.hh"
56#include "mem/cache/mshr.hh"
57#include "mem/cache/prefetch/base.hh"
58#include "mem/cache/queue_entry.hh"
59#include "params/BaseCache.hh"
60#include "sim/core.hh"
61
62class BaseMasterPort;

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

1232 // Find replacement victim
1233 std::vector<CacheBlk*> evict_blks;
1234 CacheBlk *victim = tags->findVictim(addr, is_secure, evict_blks);
1235
1236 // It is valid to return nullptr if there is no victim
1237 if (!victim)
1238 return nullptr;
1239
56#include "debug/CacheVerbose.hh"
57#include "mem/cache/mshr.hh"
58#include "mem/cache/prefetch/base.hh"
59#include "mem/cache/queue_entry.hh"
60#include "params/BaseCache.hh"
61#include "sim/core.hh"
62
63class BaseMasterPort;

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

1233 // Find replacement victim
1234 std::vector<CacheBlk*> evict_blks;
1235 CacheBlk *victim = tags->findVictim(addr, is_secure, evict_blks);
1236
1237 // It is valid to return nullptr if there is no victim
1238 if (!victim)
1239 return nullptr;
1240
1241 // Print victim block's information
1242 DPRINTF(CacheRepl, "Replacement victim: %s\n", victim->print());
1243
1240 // Check for transient state allocations. If any of the entries listed
1241 // for eviction has a transient state, the allocation fails
1242 for (const auto& blk : evict_blks) {
1243 if (blk->isValid()) {
1244 Addr repl_addr = regenerateBlkAddr(blk);
1245 MSHR *repl_mshr = mshrQueue.findMatch(repl_addr, blk->isSecure());
1246 if (repl_mshr) {
1247 // must be an outstanding upgrade or clean request

--- 1107 unchanged lines hidden ---
1244 // Check for transient state allocations. If any of the entries listed
1245 // for eviction has a transient state, the allocation fails
1246 for (const auto& blk : evict_blks) {
1247 if (blk->isValid()) {
1248 Addr repl_addr = regenerateBlkAddr(blk);
1249 MSHR *repl_mshr = mshrQueue.findMatch(repl_addr, blk->isSecure());
1250 if (repl_mshr) {
1251 // must be an outstanding upgrade or clean request

--- 1107 unchanged lines hidden ---