gem5
v21.1.0.1
|
#include <inst_res.hh>
Classes | |
union | MultiResult |
Public Types | |
enum | ResultType { ResultType::Scalar, ResultType::VecElem, ResultType::VecReg, ResultType::VecPredReg, ResultType::NumResultTypes, ResultType::Invalid } |
Public Member Functions | |
InstResult () | |
Default constructor creates an invalid result. More... | |
InstResult (const InstResult &)=default | |
template<typename T > | |
InstResult (T i, const ResultType &t) | |
Scalar result from scalar. More... | |
InstResult (const TheISA::VecRegContainer &v, const ResultType &t) | |
Vector result. More... | |
InstResult (const TheISA::VecPredRegContainer &v, const ResultType &t) | |
Predicate result. More... | |
InstResult & | operator= (const InstResult &that) |
bool | operator== (const InstResult &that) const |
Result comparison Two invalid results always differ. More... | |
bool | operator!= (const InstResult &that) const |
bool | isScalar () const |
Checks. More... | |
bool | isVector () const |
Is this a vector result?. More... | |
bool | isVecElem () const |
Is this a vector element result?. More... | |
bool | isPred () const |
Is this a predicate result?. More... | |
bool | isValid () const |
Is this a valid result?. More... | |
const uint64_t & | asInteger () const |
Explicit cast-like operations. More... | |
const uint64_t & | asIntegerNoAssert () const |
Cast to integer without checking type. More... | |
const TheISA::VecRegContainer & | asVector () const |
const TheISA::VecElem & | asVectorElem () const |
const TheISA::VecPredRegContainer & | asPred () const |
Private Attributes | |
MultiResult | result |
ResultType | type |
Definition at line 49 of file inst_res.hh.
|
strong |
Enumerator | |
---|---|
Scalar | |
VecElem | |
VecReg | |
VecPredReg | |
NumResultTypes | |
Invalid |
Definition at line 62 of file inst_res.hh.
|
inline |
Default constructor creates an invalid result.
Definition at line 78 of file inst_res.hh.
References gem5::MipsISA::Invalid.
|
default |
|
inlineexplicit |
Scalar result from scalar.
Definition at line 82 of file inst_res.hh.
References gem5::InstResult::MultiResult::dbl, gem5::ArmISA::i, gem5::InstResult::MultiResult::integer, and result.
|
inlineexplicit |
Vector result.
Definition at line 93 of file inst_res.hh.
References result, gem5::ArmISA::v, and gem5::InstResult::MultiResult::vector.
|
inlineexplicit |
Predicate result.
Definition at line 96 of file inst_res.hh.
References gem5::InstResult::MultiResult::pred, result, and gem5::ArmISA::v.
|
inline |
Explicit cast-like operations.
Definition at line 170 of file inst_res.hh.
References gem5::InstResult::MultiResult::integer, isScalar(), and result.
Referenced by gem5::Checker< gem5::RefCountingPtr >::copyResult(), and gem5::Checker< gem5::RefCountingPtr >::validateExecution().
|
inline |
Cast to integer without checking type.
This is required to have the o3 cpu checker happy, as it compares results as integers without being fully aware of their nature.
Definition at line 181 of file inst_res.hh.
References gem5::InstResult::MultiResult::integer, and result.
Referenced by gem5::Checker< gem5::RefCountingPtr >::validateExecution().
|
inline |
Definition at line 199 of file inst_res.hh.
References isPred(), panic_if, gem5::InstResult::MultiResult::pred, and result.
|
inline |
Definition at line 186 of file inst_res.hh.
References isVector(), panic_if, result, and gem5::InstResult::MultiResult::vector.
Referenced by gem5::Checker< gem5::RefCountingPtr >::copyResult().
|
inline |
Definition at line 192 of file inst_res.hh.
References isVecElem(), panic_if, result, and gem5::InstResult::MultiResult::vecElem.
Referenced by gem5::Checker< gem5::RefCountingPtr >::copyResult().
|
inline |
Is this a predicate result?.
Definition at line 162 of file inst_res.hh.
References type, and VecPredReg.
Referenced by asPred().
|
inline |
Checks.
Is this a scalar result?.
Definition at line 156 of file inst_res.hh.
Referenced by asInteger(), gem5::Checker< gem5::RefCountingPtr >::copyResult(), and gem5::Checker< gem5::RefCountingPtr >::validateExecution().
|
inline |
Is this a valid result?.
Definition at line 164 of file inst_res.hh.
Referenced by gem5::Checker< gem5::RefCountingPtr >::copyResult().
|
inline |
Is this a vector element result?.
Definition at line 160 of file inst_res.hh.
Referenced by asVectorElem(), and gem5::Checker< gem5::RefCountingPtr >::copyResult().
|
inline |
Is this a vector result?.
Definition at line 158 of file inst_res.hh.
Referenced by asVector(), gem5::Checker< gem5::RefCountingPtr >::copyResult(), and gem5::Checker< gem5::RefCountingPtr >::validateExecution().
|
inline |
Definition at line 149 of file inst_res.hh.
References operator==().
|
inline |
Definition at line 100 of file inst_res.hh.
References gem5::InstResult::MultiResult::integer, Invalid, panic, gem5::InstResult::MultiResult::pred, result, Scalar, type, gem5::InstResult::MultiResult::vecElem, VecElem, VecPredReg, VecReg, and gem5::InstResult::MultiResult::vector.
|
inline |
Result comparison Two invalid results always differ.
Definition at line 130 of file inst_res.hh.
References gem5::InstResult::MultiResult::integer, Invalid, panic, gem5::InstResult::MultiResult::pred, result, Scalar, type, gem5::InstResult::MultiResult::vecElem, VecElem, VecPredReg, VecReg, and gem5::InstResult::MultiResult::vector.
Referenced by operator!=().
|
private |
Definition at line 73 of file inst_res.hh.
Referenced by asInteger(), asIntegerNoAssert(), asPred(), asVector(), asVectorElem(), InstResult(), operator=(), and operator==().
|
private |
Definition at line 74 of file inst_res.hh.
Referenced by isPred(), isScalar(), isValid(), isVecElem(), isVector(), operator=(), and operator==().