gem5
v20.1.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 @VecRegT. |
Definition at line 47 of file vec_pred_reg.hh.
using VecPredRegContainer< NumBits, Packed >::Container = std::array<bool, NumBits> |
Definition at line 238 of file vec_pred_reg.hh.
|
private |
Definition at line 243 of file vec_pred_reg.hh.
|
inline |
Definition at line 246 of file vec_pred_reg.hh.
|
default |
|
inline |
Definition at line 364 of file vec_pred_reg.hh.
|
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 352 of file vec_pred_reg.hh.
Referenced by Trace::TarmacTracerRecordV8::TraceRegEntryV8::updatePred().
|
inline |
Returns a subset of bits starting from a specific element in the container.
Definition at line 307 of file vec_pred_reg.hh.
|
inline |
Inequality operator, required to compare thread contexts.
Definition at line 292 of file vec_pred_reg.hh.
|
inline |
Definition at line 250 of file vec_pred_reg.hh.
|
inline |
Required for de-serialization.
Definition at line 260 of file vec_pred_reg.hh.
|
inline |
Equality operator, required to compare thread contexts.
Definition at line 284 of file vec_pred_reg.hh.
Referenced by VecPredRegContainer< TheISA::VecPredRegSizeBits, TheISA::VecPredRegHasPackedRepr >::operator!=().
|
inline |
Returns a reference to a specific element of the internal container.
Definition at line 298 of file vec_pred_reg.hh.
|
inline |
Returns a const reference to a specific element of the internal container.
Definition at line 302 of file vec_pred_reg.hh.
|
inline |
Returns a string representation of the register content.
Definition at line 332 of file vec_pred_reg.hh.
Referenced by SimpleThread::getWritableVecPredReg(), and SimpleThread::readVecPredReg().
|
inline |
Resets the predicate register to an all-false register.
Definition at line 269 of file vec_pred_reg.hh.
|
inline |
Sets the predicate register to an all-true value.
Definition at line 276 of file vec_pred_reg.hh.
|
inline |
Set a subset of bits starting from a specific element in the container.
Definition at line 322 of file vec_pred_reg.hh.
|
friend |
Definition at line 335 of file vec_pred_reg.hh.
|
private |
Definition at line 241 of file vec_pred_reg.hh.
Referenced by VecPredRegContainer< TheISA::VecPredRegSizeBits, TheISA::VecPredRegHasPackedRepr >::get_bits(), VecPredRegContainer< TheISA::VecPredRegSizeBits, TheISA::VecPredRegHasPackedRepr >::operator=(), VecPredRegContainer< TheISA::VecPredRegSizeBits, TheISA::VecPredRegHasPackedRepr >::operator==(), VecPredRegContainer< TheISA::VecPredRegSizeBits, TheISA::VecPredRegHasPackedRepr >::operator[](), VecPredRegContainer< TheISA::VecPredRegSizeBits, TheISA::VecPredRegHasPackedRepr >::reset(), VecPredRegContainer< TheISA::VecPredRegSizeBits, TheISA::VecPredRegHasPackedRepr >::set(), and VecPredRegContainer< TheISA::VecPredRegSizeBits, TheISA::VecPredRegHasPackedRepr >::set_bits().
|
staticconstexpr |
Definition at line 237 of file vec_pred_reg.hh.
Referenced by VecPredRegContainer< TheISA::VecPredRegSizeBits, TheISA::VecPredRegHasPackedRepr >::operator=().