gem5  v22.1.0.0
Public Types | Public Member Functions | Private Attributes | Static Private Attributes | List of all members
gem5::RegClass Class Reference

#include <reg_class.hh>

Public Types

using iterator = RegClassIterator
 

Public Member Functions

constexpr RegClass (RegClassType type, const char *new_name, size_t num_regs, const debug::Flag &debug_flag)
 
constexpr RegClass needsFlattening () const
 
constexpr RegClass ops (const RegClassOps &new_ops) const
 
template<class RegType >
constexpr RegClass regType () const
 
constexpr RegClassType type () const
 
constexpr const char * name () const
 
constexpr size_t numRegs () const
 
constexpr size_t regBytes () const
 
constexpr size_t regShift () const
 
constexpr const debug::Flagdebug () const
 
constexpr bool isFlat () const
 
std::string regName (const RegId &id) const
 
std::string valString (const void *val) const
 
RegId flatten (const BaseISA &isa, const RegId &id) const
 
iterator begin () const
 
iterator end () const
 
constexpr RegId operator[] (RegIndex idx) const
 

Private Attributes

RegClassType _type
 
const char * _name
 
size_t _numRegs
 
size_t _regBytes = sizeof(RegVal)
 
size_t _regShift = ceilLog2(sizeof(RegVal))
 
const RegClassOps_ops = &defaultOps
 
const debug::FlagdebugFlag
 
bool _flat = true
 

Static Private Attributes

static RegClassOps defaultOps
 

Detailed Description

Definition at line 182 of file reg_class.hh.

Member Typedef Documentation

◆ iterator

Definition at line 253 of file reg_class.hh.

Constructor & Destructor Documentation

◆ RegClass()

constexpr gem5::RegClass::RegClass ( RegClassType  type,
const char *  new_name,
size_t  num_regs,
const debug::Flag debug_flag 
)
inlineconstexpr

Definition at line 202 of file reg_class.hh.

Member Function Documentation

◆ begin()

RegClassIterator gem5::RegClass::begin ( ) const
inline

Definition at line 338 of file reg_class.hh.

◆ debug()

constexpr const debug::Flag& gem5::RegClass::debug ( ) const
inlineconstexpr

Definition at line 238 of file reg_class.hh.

References debugFlag.

◆ end()

RegClassIterator gem5::RegClass::end ( ) const
inline

Definition at line 344 of file reg_class.hh.

References numRegs().

◆ flatten()

RegId gem5::RegClass::flatten ( const BaseISA isa,
const RegId id 
) const
inline

Definition at line 248 of file reg_class.hh.

References _ops, gem5::RegClassOps::flatten(), gem5::ArmISA::id, and isFlat().

Referenced by gem5::RegId::flatten().

◆ isFlat()

constexpr bool gem5::RegClass::isFlat ( ) const
inlineconstexpr

Definition at line 239 of file reg_class.hh.

References _flat.

Referenced by flatten(), and gem5::RegId::isFlat().

◆ name()

constexpr const char* gem5::RegClass::name ( ) const
inlineconstexpr

Definition at line 234 of file reg_class.hh.

References _name.

Referenced by gem5::RegId::className().

◆ needsFlattening()

constexpr RegClass gem5::RegClass::needsFlattening ( ) const
inlineconstexpr

Definition at line 208 of file reg_class.hh.

References _flat.

◆ numRegs()

constexpr size_t gem5::RegClass::numRegs ( ) const
inlineconstexpr

Definition at line 235 of file reg_class.hh.

References _numRegs.

Referenced by end(), and gem5::o3::SimpleRenameMap::init().

◆ operator[]()

constexpr RegId gem5::RegClass::operator[] ( RegIndex  idx) const
inlineconstexpr

Definition at line 350 of file reg_class.hh.

◆ ops()

constexpr RegClass gem5::RegClass::ops ( const RegClassOps new_ops) const
inlineconstexpr

Definition at line 216 of file reg_class.hh.

References _ops.

◆ regBytes()

constexpr size_t gem5::RegClass::regBytes ( ) const
inlineconstexpr

◆ regName()

std::string gem5::RegClass::regName ( const RegId id) const
inline

Definition at line 241 of file reg_class.hh.

References _ops, and gem5::RegClassOps::regName().

◆ regShift()

constexpr size_t gem5::RegClass::regShift ( ) const
inlineconstexpr

Definition at line 237 of file reg_class.hh.

References _regShift.

◆ regType()

template<class RegType >
constexpr RegClass gem5::RegClass::regType ( ) const
inlineconstexpr

Definition at line 225 of file reg_class.hh.

References _regBytes, _regShift, and gem5::ceilLog2().

◆ type()

constexpr RegClassType gem5::RegClass::type ( ) const
inlineconstexpr

Definition at line 233 of file reg_class.hh.

References _type.

Referenced by gem5::RegId::classValue(), and gem5::RegId::is().

◆ valString()

std::string gem5::RegClass::valString ( const void *  val) const
inline

Member Data Documentation

◆ _flat

bool gem5::RegClass::_flat = true
private

Definition at line 199 of file reg_class.hh.

Referenced by isFlat(), and needsFlattening().

◆ _name

const char* gem5::RegClass::_name
private

Definition at line 186 of file reg_class.hh.

Referenced by name().

◆ _numRegs

size_t gem5::RegClass::_numRegs
private

Definition at line 188 of file reg_class.hh.

Referenced by numRegs().

◆ _ops

const RegClassOps* gem5::RegClass::_ops = &defaultOps
private

Definition at line 196 of file reg_class.hh.

Referenced by flatten(), ops(), regName(), and valString().

◆ _regBytes

size_t gem5::RegClass::_regBytes = sizeof(RegVal)
private

Definition at line 189 of file reg_class.hh.

Referenced by regBytes(), and regType().

◆ _regShift

size_t gem5::RegClass::_regShift = ceilLog2(sizeof(RegVal))
private

Definition at line 193 of file reg_class.hh.

Referenced by regShift(), and regType().

◆ _type

RegClassType gem5::RegClass::_type
private

Definition at line 185 of file reg_class.hh.

Referenced by type().

◆ debugFlag

const debug::Flag& gem5::RegClass::debugFlag
private

Definition at line 197 of file reg_class.hh.

Referenced by debug().

◆ defaultOps

RegClassOps gem5::RegClass::defaultOps
inlinestaticprivate

Definition at line 195 of file reg_class.hh.


The documentation for this class was generated from the following file:

Generated on Wed Dec 21 2022 10:23:13 for gem5 by doxygen 1.9.1