From d2efb23ff74a3b68de1228653c28cb05c4eaebc1 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Thu, 25 Jul 2024 19:33:40 +0200 Subject: [PATCH] fixes cache behavior for fetches --- src/iss/arch/wt_cache.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/iss/arch/wt_cache.h b/src/iss/arch/wt_cache.h index 967d464..61e64fe 100644 --- a/src/iss/arch/wt_cache.h +++ b/src/iss/arch/wt_cache.h @@ -119,7 +119,7 @@ template iss::status iss::arch::wt_cache::read_cache(phys_ icache_ptr.reset(new cache::cache(size, line_sz, ways)); dcache_ptr.reset(new cache::cache(size, line_sz, ways)); } - if((a.val & io_addr_mask) != io_address) { + if((a.access & iss::access_type::FETCH)== iss::access_type::FETCH || (a.val & io_addr_mask) != io_address) { auto set_addr = (a.val & (size - 1)) >> util::ilog2(line_sz * ways); auto tag_addr = a.val >> util::ilog2(line_sz); auto& set = (is_fetch(a.access) ? icache_ptr : dcache_ptr)->sets[set_addr];