41#ifndef __MEM_RUBY_STRUCTURES_TBETABLE_HH__
42#define __MEM_RUBY_STRUCTURES_TBETABLE_HH__
45#include <unordered_map>
79 void print(std::ostream& out)
const;
87 std::unordered_map<Addr, ENTRY>
m_map;
95inline std::ostream& {
…}
108 assert(m_map.size() <= m_number_of_TBEs);
109 return !!m_map.count(address);
116 assert(!isPresent(address));
117 assert(m_map.size() < m_number_of_TBEs);
118 assert(m_block_size > 0);
119 m_map.emplace(address, ENTRY(m_block_size));
126 assert(isPresent(address));
127 assert(m_map.size() > 0);
128 m_map.erase(address);
143 if (m_map.find(address) != m_map.end())
return &(m_map.find(address)->second);
79 void print(std::ostream& out)
const; {
…}
std::unordered_map< Addr, ENTRY > m_map
TBETable(const TBETable &obj)
void setBlockSize(const int block_size)
bool areNSlotsAvailable(int n, Tick current_time) const
bool isPresent(Addr address) const
TBETable(int number_of_TBEs)
ENTRY * lookup(Addr address)
void print(std::ostream &out) const
void allocate(Addr address)
void deallocate(Addr address)
TBETable & operator=(const TBETable &obj)
static constexpr std::enable_if_t< std::is_integral_v< T >, int > floorLog2(T x)
Addr makeLineAddress(Addr addr, int cacheLineBits)
Copyright (c) 2024 Arm Limited All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
std::ostream & operator<<(std::ostream &os, const BaseSemihosting::InPlaceArg &ipa)