Go to the documentation of this file.
29 #ifndef __CPU_DECODE_CACHE_HH__
30 #define __CPU_DECODE_CACHE_HH__
32 #include <unordered_map>
42 namespace decode_cache
46 template <
typename EMI>
47 using InstMap = std::unordered_map<EMI, StaticInstPtr>;
50 template<
class Value, Addr CacheChunkShift = 12>
74 typedef typename std::unordered_map<Addr, CacheChunk *>
ChunkMap;
75 typedef typename ChunkMap::iterator
ChunkIt;
100 if (
recent[0]->first == chunk_addr)
103 recent[1]->first == chunk_addr) {
118 CacheChunk *newChunk =
new CacheChunk;
119 typename ChunkMap::value_type to_insert(chunk_addr, newChunk);
142 #endif // __CPU_DECODE_CACHE_HH__
CacheChunk * getChunk(Addr addr)
Attempt to find the CacheChunk which goes with a particular address.
std::unordered_map< EMI, StaticInstPtr > InstMap
Hash for decoded instructions.
static constexpr Addr chunkOffset(Addr addr)
static constexpr Addr CacheChunkBytes
static constexpr Addr chunkStart(Addr addr)
std::unordered_map< Addr, CacheChunk * > ChunkMap
A sparse map from an Addr to a Value, stored in page chunks.
void update(ChunkIt recentest)
Update the mini cache of recent lookups.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi)
ChunkMap::iterator ChunkIt
Value items[CacheChunkBytes]
Value & lookup(Addr addr)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Generated on Tue Sep 21 2021 12:24:47 for gem5 by doxygen 1.8.17