gem5
v20.1.0.0
|
#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 VecRegContainer &v, const ResultType &t) | |
Vector result. More... | |
InstResult (const 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 VecRegContainer & | asVector () const |
const VecElem & | asVectorElem () const |
const VecPredRegContainer & | asPred () const |
Private Types | |
using | VecRegContainer = TheISA::VecRegContainer |
using | VecElem = TheISA::VecElem |
using | VecPredRegContainer = TheISA::VecPredRegContainer |
Private Attributes | |
MultiResult | result |
ResultType | type |
Definition at line 46 of file inst_res.hh.
|
private |
Definition at line 48 of file inst_res.hh.
|
private |
Definition at line 49 of file inst_res.hh.
|
private |
Definition at line 47 of file inst_res.hh.
|
strong |
Enumerator | |
---|---|
Scalar | |
VecElem | |
VecReg | |
VecPredReg | |
NumResultTypes | |
Invalid |
Definition at line 60 of file inst_res.hh.
|
inline |
Default constructor creates an invalid result.
Definition at line 75 of file inst_res.hh.
|
default |
|
inlineexplicit |
Scalar result from scalar.
Definition at line 79 of file inst_res.hh.
References InstResult::MultiResult::dbl, ArmISA::i, InstResult::MultiResult::integer, and result.
|
inlineexplicit |
Vector result.
Definition at line 90 of file inst_res.hh.
References result, ArmISA::v, and InstResult::MultiResult::vector.
|
inlineexplicit |
Predicate result.
Definition at line 93 of file inst_res.hh.
References InstResult::MultiResult::pred, result, and ArmISA::v.
|
inline |
Explicit cast-like operations.
Definition at line 166 of file inst_res.hh.
References InstResult::MultiResult::integer, isScalar(), and result.
Referenced by Checker< O3CPUImpl >::copyResult(), and Checker< O3CPUImpl >::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 177 of file inst_res.hh.
References InstResult::MultiResult::integer, and result.
Referenced by Checker< O3CPUImpl >::validateExecution().
|
inline |
Definition at line 195 of file inst_res.hh.
References isPred(), panic_if, InstResult::MultiResult::pred, and result.
|
inline |
Definition at line 182 of file inst_res.hh.
References isVector(), panic_if, result, and InstResult::MultiResult::vector.
Referenced by Checker< O3CPUImpl >::copyResult().
|
inline |
Definition at line 188 of file inst_res.hh.
References isVecElem(), panic_if, result, and InstResult::MultiResult::vecElem.
Referenced by Checker< O3CPUImpl >::copyResult().
|
inline |
Is this a predicate result?.
Definition at line 158 of file inst_res.hh.
References type, and VecPredReg.
Referenced by asPred().
|
inline |
Checks.
Is this a scalar result?.
Definition at line 152 of file inst_res.hh.
Referenced by asInteger(), Checker< O3CPUImpl >::copyResult(), and Checker< O3CPUImpl >::validateExecution().
|
inline |
Is this a valid result?.
Definition at line 160 of file inst_res.hh.
Referenced by Checker< O3CPUImpl >::copyResult().
|
inline |
Is this a vector element result?.
Definition at line 156 of file inst_res.hh.
Referenced by asVectorElem(), and Checker< O3CPUImpl >::copyResult().
|
inline |
Is this a vector result?.
Definition at line 154 of file inst_res.hh.
Referenced by asVector(), Checker< O3CPUImpl >::copyResult(), and Checker< O3CPUImpl >::validateExecution().
|
inline |
Definition at line 145 of file inst_res.hh.
References operator==().
|
inline |
Definition at line 96 of file inst_res.hh.
References InstResult::MultiResult::integer, Invalid, panic, InstResult::MultiResult::pred, result, Scalar, type, InstResult::MultiResult::vecElem, VecElem, VecPredReg, VecReg, and InstResult::MultiResult::vector.
|
inline |
Result comparison Two invalid results always differ.
Definition at line 126 of file inst_res.hh.
References InstResult::MultiResult::integer, Invalid, panic, InstResult::MultiResult::pred, result, Scalar, type, InstResult::MultiResult::vecElem, VecElem, VecPredReg, VecReg, and InstResult::MultiResult::vector.
Referenced by operator!=().
|
private |
Definition at line 70 of file inst_res.hh.
Referenced by asInteger(), asIntegerNoAssert(), asPred(), asVector(), asVectorElem(), InstResult(), operator=(), and operator==().
|
private |
Definition at line 71 of file inst_res.hh.
Referenced by isPred(), isScalar(), isValid(), isVecElem(), isVector(), operator=(), and operator==().