diff --git a/src/arch/generic/decode_cache.cc b/src/arch/generic/decode_cache.cc index 782dfca43f..0f7a9d991b 100644 --- a/src/arch/generic/decode_cache.cc +++ b/src/arch/generic/decode_cache.cc @@ -46,7 +46,7 @@ BasicDecodeCache::decode(TheISA::Decoder *decoder, if (si && (si->machInst == mach_inst)) return si; - DecodeCache::InstMap::iterator iter = instMap.find(mach_inst); + auto iter = instMap.find(mach_inst); if (iter != instMap.end()) { si = iter->second; return si; diff --git a/src/arch/generic/decode_cache.hh b/src/arch/generic/decode_cache.hh index c6bce72265..ebfaa0645f 100644 --- a/src/arch/generic/decode_cache.hh +++ b/src/arch/generic/decode_cache.hh @@ -47,7 +47,7 @@ namespace GenericISA class BasicDecodeCache { private: - DecodeCache::InstMap instMap; + DecodeCache::InstMap instMap; DecodeCache::AddrMap decodePages; public: diff --git a/src/arch/riscv/decoder.hh b/src/arch/riscv/decoder.hh index 91fe7873e2..750321167e 100644 --- a/src/arch/riscv/decoder.hh +++ b/src/arch/riscv/decoder.hh @@ -48,7 +48,7 @@ class ISA; class Decoder { private: - DecodeCache::InstMap instMap; + DecodeCache::InstMap instMap; bool aligned; bool mid; bool more; diff --git a/src/arch/x86/decoder.cc b/src/arch/x86/decoder.cc index 835d5e25d2..54701bb730 100644 --- a/src/arch/x86/decoder.cc +++ b/src/arch/x86/decoder.cc @@ -681,7 +681,7 @@ Decoder::InstCacheMap Decoder::instCacheMap; StaticInstPtr Decoder::decode(ExtMachInst mach_inst, Addr addr) { - DecodeCache::InstMap::iterator iter = instMap->find(mach_inst); + auto iter = instMap->find(mach_inst); if (iter != instMap->end()) return iter->second; diff --git a/src/arch/x86/decoder.hh b/src/arch/x86/decoder.hh index a60aa469ab..3630ea8c8d 100644 --- a/src/arch/x86/decoder.hh +++ b/src/arch/x86/decoder.hh @@ -229,8 +229,9 @@ class Decoder typedef std::unordered_map AddrCacheMap; AddrCacheMap addrCacheMap; - DecodeCache::InstMap *instMap; - typedef std::unordered_map InstCacheMap; + DecodeCache::InstMap *instMap; + typedef std::unordered_map< + CacheKey, DecodeCache::InstMap *> InstCacheMap; static InstCacheMap instCacheMap; public: @@ -277,7 +278,7 @@ class Decoder if (imIter != instCacheMap.end()) { instMap = imIter->second; } else { - instMap = new DecodeCache::InstMap; + instMap = new DecodeCache::InstMap; instCacheMap[m5Reg] = instMap; } } diff --git a/src/cpu/decode_cache.hh b/src/cpu/decode_cache.hh index c451cbb699..2d33455e04 100644 --- a/src/cpu/decode_cache.hh +++ b/src/cpu/decode_cache.hh @@ -47,7 +47,8 @@ namespace DecodeCache { /// Hash for decoded instructions. -typedef std::unordered_map InstMap; +template +using InstMap = std::unordered_map; /// A sparse map from an Addr to a Value, stored in page chunks. template