|
gem5
v20.1.0.5
|
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=().