gem5 v24.0.0.0
|
Vector Register Abstraction This generic class is the model in a particularization of MVC, to vector registers. More...
#include <vec_reg.hh>
Public Types | |
using | Container = std::array<uint8_t, SIZE> |
Public Member Functions | |
VecRegContainer () | |
VecRegContainer (const VecRegContainer &)=default | |
void | zero () |
Zero the container. | |
template<size_t S2> | |
bool | operator== (const VecRegContainer< S2 > &that) const |
Equality operator. | |
template<size_t S2> | |
bool | operator!= (const VecRegContainer< S2 > &that) const |
Inequality operator. | |
VecRegContainer< SIZE > & | operator= (const VecRegContainer< SIZE > &that) |
Assignment operators. | |
Static Public Member Functions | |
static constexpr size_t | size () |
Public Attributes | |
friend | ShowParam< VecRegContainer< SIZE > > |
Used for serialization. | |
Private Attributes | |
Container | container |
template<typename VecElem > | |
VecElem * | as () |
View interposers. | |
template<typename VecElem > | |
const VecElem * | as () const |
std::string | getString (const uint64_t &size) const |
std::ostream & | operator<< (std::ostream &os, const VecRegContainer< SIZE > &v) |
Vector Register Abstraction This generic class is the model in a particularization of MVC, to vector registers.
The model has functionality to create views of itself, or a portion through the method 'as
Sz | Size of the container in bytes. |
Definition at line 125 of file vec_reg.hh.
using gem5::VecRegContainer< SIZE >::Container = std::array<uint8_t, SIZE> |
Definition at line 134 of file vec_reg.hh.
|
inline |
Definition at line 140 of file vec_reg.hh.
|
default |
|
inline |
View interposers.
Create a view of this container as a vector of VecElems with an optional amount of elements. If the amount of elements is provided, the size of the container is checked, to test bounds. If it is not provided, the length is inferred from the container size and the element size.
VecElem | Type of each element of the vector for the view. |
NumElem | Amount of elements in the view. |
Definition at line 191 of file vec_reg.hh.
References gem5::VecRegContainer< SIZE >::container, and gem5::SIZE.
Referenced by gem5::RiscvISA::VlSegDeIntrlvMicroInst::execute(), gem5::RiscvISA::VMaskMergeMicroInst::execute(), gem5::RiscvISA::VsSegIntrlvMicroInst::execute(), gem5::guest_abi::Argument< Aapcs64, Float, typename std::enable_if_t< std::is_floating_point_v< Float >||IsAapcs64ShortVectorV< Float > > >::get(), gem5::ArmISA::RemoteGDB::AArch64GdbRegCache::getRegs(), gem5::trace::TarmacParserRecord::TarmacParserRecordEvent::process(), gem5::ArmISA::RemoteGDB::AArch64GdbRegCache::setRegs(), TwoDifferentVecRegs::SetUp(), TEST(), gem5::trace::ArmNativeTrace::ThreadState::update(), gem5::ArmV8KvmCPU::updateKvmState(), gem5::ArmV8KvmCPU::updateThreadContext(), and gem5::trace::TarmacTracerRecordV8::TraceRegEntryV8::updateVec().
|
inline |
Definition at line 200 of file vec_reg.hh.
References gem5::VecRegContainer< SIZE >::container, and gem5::SIZE.
|
inline |
Definition at line 224 of file vec_reg.hh.
References gem5::ArmISA::b, gem5::VecRegContainer< SIZE >::container, gem5::X86ISA::count, gem5::ArmISA::s, and gem5::VecRegContainer< SIZE >::size().
|
inline |
Inequality operator.
Required to compare thread contexts.
Definition at line 173 of file vec_reg.hh.
References gem5::VecRegContainer< SIZE >::operator==().
|
inline |
Assignment operators.
From VecRegContainer
Definition at line 150 of file vec_reg.hh.
References gem5::VecRegContainer< SIZE >::container, and gem5::SIZE.
|
inline |
Equality operator.
Required to compare thread contexts.
Definition at line 163 of file vec_reg.hh.
References gem5::VecRegContainer< SIZE >::container, and gem5::SIZE.
Referenced by gem5::VecRegContainer< SIZE >::operator!=().
|
inlinestaticconstexpr |
Definition at line 133 of file vec_reg.hh.
References gem5::SIZE.
Referenced by gem5::VecRegContainer< SIZE >::getString(), and TwoDifferentVecRegs::SetUp().
|
inline |
Zero the container.
Definition at line 144 of file vec_reg.hh.
References gem5::VecRegContainer< SIZE >::container, and gem5::SIZE.
Referenced by gem5::Iris::ThreadContext::readVecReg().
|
friend |
Definition at line 207 of file vec_reg.hh.
|
private |
Definition at line 137 of file vec_reg.hh.
Referenced by gem5::VecRegContainer< SIZE >::as(), gem5::VecRegContainer< SIZE >::as(), gem5::VecRegContainer< SIZE >::getString(), gem5::VecRegContainer< SIZE >::operator=(), gem5::VecRegContainer< SIZE >::operator==(), gem5::ShowParam< VecRegContainer< Sz > >::show(), and gem5::VecRegContainer< SIZE >::zero().
friend gem5::VecRegContainer< SIZE >::ShowParam< VecRegContainer< SIZE > > |
Used for serialization.
Definition at line 245 of file vec_reg.hh.