summaryrefslogtreecommitdiff
path: root/src/mem/cache/cache.cc
diff options
context:
space:
mode:
authorDaniel R. Carvalho <odanrc@yahoo.com.br>2018-03-06 11:48:21 +0100
committerDaniel Carvalho <odanrc@yahoo.com.br>2018-03-09 09:50:56 +0000
commitee16a95ec8a7f2d207320670a135065981033f61 (patch)
tree060c40d22e411bf198c279faadec2e1e895d9bfe /src/mem/cache/cache.cc
parenta883aef55f2b9f33e60ce72a3e053e0c7af0f21e (diff)
downloadgem5-ee16a95ec8a7f2d207320670a135065981033f61.tar.xz
mem-cache: Use CacheBlk parameter on address regeneration
Skewed caches need to know the way to regenerate a block address. Change-Id: I62c61ac9509eff2f37bad36862751956db7a6e40 Reviewed-on: https://gem5-review.googlesource.com/8782 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Diffstat (limited to 'src/mem/cache/cache.cc')
-rw-r--r--src/mem/cache/cache.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc
index 7bf073419..85c96772c 100644
--- a/src/mem/cache/cache.cc
+++ b/src/mem/cache/cache.cc
@@ -1659,8 +1659,8 @@ Cache::writebackBlk(CacheBlk *blk)
writebacks[Request::wbMasterId]++;
- Request *req = new Request(tags->regenerateBlkAddr(blk->tag, blk->set),
- blkSize, 0, Request::wbMasterId);
+ Request *req = new Request(tags->regenerateBlkAddr(blk), blkSize, 0,
+ Request::wbMasterId);
if (blk->isSecure())
req->setFlags(Request::SECURE);
@@ -1694,8 +1694,8 @@ Cache::writebackBlk(CacheBlk *blk)
PacketPtr
Cache::writecleanBlk(CacheBlk *blk, Request::Flags dest, PacketId id)
{
- Request *req = new Request(tags->regenerateBlkAddr(blk->tag, blk->set),
- blkSize, 0, Request::wbMasterId);
+ Request *req = new Request(tags->regenerateBlkAddr(blk), blkSize, 0,
+ Request::wbMasterId);
if (blk->isSecure()) {
req->setFlags(Request::SECURE);
}
@@ -1737,7 +1737,7 @@ Cache::cleanEvictBlk(CacheBlk *blk)
assert(blk && blk->isValid() && !blk->isDirty());
// Creating a zero sized write, a message to the snoop filter
Request *req =
- new Request(tags->regenerateBlkAddr(blk->tag, blk->set), blkSize, 0,
+ new Request(tags->regenerateBlkAddr(blk), blkSize, 0,
Request::wbMasterId);
if (blk->isSecure())
req->setFlags(Request::SECURE);
@@ -1780,8 +1780,8 @@ Cache::writebackVisitor(CacheBlk &blk)
if (blk.isDirty()) {
assert(blk.isValid());
- Request request(tags->regenerateBlkAddr(blk.tag, blk.set),
- blkSize, 0, Request::funcMasterId);
+ Request request(tags->regenerateBlkAddr(&blk), blkSize, 0,
+ Request::funcMasterId);
request.taskId(blk.task_id);
if (blk.isSecure()) {
request.setFlags(Request::SECURE);
@@ -1823,7 +1823,7 @@ Cache::allocateBlock(Addr addr, bool is_secure, PacketList &writebacks)
return nullptr;
if (blk->isValid()) {
- Addr repl_addr = tags->regenerateBlkAddr(blk->tag, blk->set);
+ Addr repl_addr = tags->regenerateBlkAddr(blk);
MSHR *repl_mshr = mshrQueue.findMatch(repl_addr, blk->isSecure());
if (repl_mshr) {
// must be an outstanding upgrade request