gem5
v19.0.0.0
|
Generic predicate register container. More...
#include <vec_pred_reg.hh>
Public Types | |
using | Container = std::array< bool, NumBits > |
Public Member Functions | |
VecPredRegContainer () | |
VecPredRegContainer (const VecPredRegContainer &)=default | |
MyClass & | operator= (const MyClass &that) |
MyClass & | operator= (const std::vector< uint8_t > &that) |
Required for de-serialization. More... | |
void | reset () |
Resets the predicate register to an all-false register. More... | |
void | set () |
Sets the predicate register to an all-true value. More... | |
template<size_t N2, bool P2> | |
bool | operator== (const VecPredRegContainer< N2, P2 > &that) const |
Equality operator, required to compare thread contexts. More... | |
template<size_t N2, bool P2> | |
bool | operator!= (const VecPredRegContainer< N2, P2 > &that) const |
Inequality operator, required to compare thread contexts. More... | |
bool & | operator[] (size_t idx) |
Returns a reference to a specific element of the internal container. More... | |
const bool & | operator[] (size_t idx) const |
Returns a const reference to a specific element of the internal container. More... | |
uint8_t | get_bits (size_t idx, uint8_t nbits) const |
Returns a subset of bits starting from a specific element in the container. More... | |
void | set_bits (size_t idx, uint8_t nbits, uint8_t bval) |
Set a subset of bits starting from a specific element in the container. More... | |
const std::string | print () const |
Returns a string representation of the register content. More... | |
template<typename VecElem , size_t NumElems = (Packed ? NumBits : NumBits / sizeof(VecElem))> | |
VecPredRegT< VecElem, NumElems, Packed, true > | as () const |
Create a view of this container. More... | |
template<typename VecElem , size_t NumElems = (Packed ? NumBits : NumBits / sizeof(VecElem))> | |
VecPredRegT< VecElem, NumElems, Packed, false > | as () |
Static Public Attributes | |
static constexpr size_t | NUM_BITS = NumBits |
Private Types | |
using | MyClass = VecPredRegContainer< NumBits, Packed > |
Private Attributes | |
Container | container |
Friends | |
std::ostream & | operator<< (std::ostream &os, const MyClass &v) |
Generic predicate register container.
This generic class implements the Model in an MVC pattern, similarly to
NumBits | Size of the container in bits. |
Packed | See . |
Definition at line 51 of file vec_pred_reg.hh.
using VecPredRegContainer< NumBits, Packed >::Container = std::array<bool, NumBits> |
Definition at line 242 of file vec_pred_reg.hh.
|
private |
Definition at line 247 of file vec_pred_reg.hh.
|
inline |
Definition at line 250 of file vec_pred_reg.hh.
|
default |
|
inline |
Create a view of this container.
If NumElems is provided, the size of the container is bounds-checked, otherwise the size is inferred from the container size.
VecElem | Type of the vector elements. |
NumElems | Number of vector elements making up the view. |
Definition at line 356 of file vec_pred_reg.hh.
|
inline |
Definition at line 368 of file vec_pred_reg.hh.
|
inline |
Returns a subset of bits starting from a specific element in the container.
Definition at line 311 of file vec_pred_reg.hh.
|
inline |
Inequality operator, required to compare thread contexts.
Definition at line 296 of file vec_pred_reg.hh.
|
inline |
Definition at line 254 of file vec_pred_reg.hh.
|
inline |
Required for de-serialization.
Definition at line 264 of file vec_pred_reg.hh.
|
inline |
Equality operator, required to compare thread contexts.
Definition at line 288 of file vec_pred_reg.hh.
|
inline |
Returns a reference to a specific element of the internal container.
Definition at line 302 of file vec_pred_reg.hh.
|
inline |
Returns a const reference to a specific element of the internal container.
Definition at line 306 of file vec_pred_reg.hh.
|
inline |
Returns a string representation of the register content.
Definition at line 336 of file vec_pred_reg.hh.
Referenced by SimpleThread::getWritableVecPredReg(), SimpleThread::readVecPredReg(), PhysRegFile::setVecPredReg(), and SimpleThread::setVecPredReg().
|
inline |
Resets the predicate register to an all-false register.
Definition at line 273 of file vec_pred_reg.hh.
|
inline |
Sets the predicate register to an all-true value.
Definition at line 280 of file vec_pred_reg.hh.
|
inline |
Set a subset of bits starting from a specific element in the container.
Definition at line 326 of file vec_pred_reg.hh.
|
friend |
Definition at line 339 of file vec_pred_reg.hh.
|
private |
|
static |
Definition at line 241 of file vec_pred_reg.hh.