Go to the documentation of this file.
46 #ifndef __CPU_MINOR_DYN_INST_HH__
47 #define __CPU_MINOR_DYN_INST_HH__
148 std::ostream &
operator <<(std::ostream &
os,
const InstId &
id);
156 std::ostream &
operator <<(std::ostream &
os,
const MinorDynInst &inst);
178 std::unique_ptr<PCStateBase>
pc;
247 bool isBubble()
const {
return id.fetchSeqNum == 0; }
288 std::ostream &
operator <<(std::ostream &
os,
const MinorDynInst &inst);
static const InstSeqNum firstPredictionSeqNum
constexpr decltype(nullptr) NoFault
InstSeqNum fetchSeqNum
Fetch sequence number.
Id for lines and instructions.
trace::InstRecord * traceData
Trace information for this instruction's execution.
bool canEarlyIssue
Can this instruction be executed out of order.
std::vector< RegId > flatDestRegIdx
Flat register indices so that, when clearing the scoreboard, we have the same register indices as whe...
const StaticInstPtr staticInst
static MinorDynInstPtr bubbleInst
A prototypical bubble instruction.
void setPredicate(bool val)
bool readMemAccPredicate() const
Fault translationFault
Translation fault in case of a mem ref.
unsigned int fuIndex
Fields only set during execution.
void setMemAccPredicate(bool val)
Cycles extraCommitDelay
Extra delay at the end of the pipeline.
bool triedToPredict
Tried to predict the destination of this inst (if a control instruction or a sys call)
static const InstSeqNum firstFetchSeqNum
RefCountingPtr< MinorDynInst > MinorDynInstPtr
MinorDynInsts are currently reference counted.
bool isMemRef() const
Is this a real mem ref instruction.
static const InstSeqNum firstStreamSeqNum
First sequence numbers to use in initialisation of the pipeline and to be expected on the first line/...
bool memAccPredicate
Flag controlling conditional execution of the memory access associated with the instruction (only mea...
MinorDynInst(StaticInstPtr si, InstId id_=InstId(), Fault fault_=NoFault)
static const InstSeqNum firstLineSeqNum
bool readPredicate() const
Cycles is a wrapper class for representing cycle counts, i.e.
Interface for things with names.
Cycles minimumCommitCycle
Once issued, extraCommitDelay becomes minimumCommitCycle to account for delay in absolute time.
bool predictedTaken
This instruction was predicted to change control flow and the following instructions will have a newe...
bool operator==(const InstId &rhs)
std::shared_ptr< FaultBase > Fault
InstSeqNum streamSeqNum
The 'stream' this instruction belongs to.
static MinorDynInstPtr bubble()
There is a single bubble inst.
std::unique_ptr< PCStateBase > predictedTarget
Predicted branch target.
static const InstSeqNum firstExecSeqNum
bool inLSQ
This instruction is in the LSQ, not a functional unit.
bool isInst() const
Is this a real instruction.
InstId(ThreadID thread_id=0, InstSeqNum stream_seq_num=0, InstSeqNum prediction_seq_num=0, InstSeqNum line_seq_num=0, InstSeqNum fetch_seq_num=0, InstSeqNum exec_seq_num=0)
Very boring default constructor.
void minorTraceInst(const Named &named_object) const
Print (possibly verbose) instruction information for MinorTrace using the given Named object's name.
Fault fault
This is actually a fault masquerading as an instruction.
TimingExpr * extraCommitDelayExpr
bool isBubble() const
The BubbleIF interface.
Derive from RefCounted if you want to enable reference counting of this class.
bool isFault() const
Is this a fault rather than instruction.
InstSeqNum lineSeqNum
Line sequence number.
std::unique_ptr< PCStateBase > pc
The fetch address of this instruction.
Dynamic instruction for Minor.
void reportData(std::ostream &os) const
ReportIF interface.
std::ostream & operator<<(std::ostream &os, const InstId &id)
Print this id in the usual slash-separated format expected by MinorTrace.
bool isNoCostInst() const
Is this an instruction that can be executed ‘for free’ and needn't spend time in an FU.
bool isLastOpInInst() const
Assuming this is not a fault, is this instruction either a whole instruction or the last microop from...
bool predicate
Flag controlling conditional execution of the instruction.
InstSeqNum execSeqNum
'Execute' sequence number.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
InstSeqNum predictionSeqNum
The predicted qualifier to stream, attached by Fetch2 as a consequence of branch prediction.
InstSeqNum instToWaitFor
execSeqNum of the latest inst on which this inst depends.
int16_t ThreadID
Thread index/ID type.
ThreadID threadId
The thread to which this line/instruction belongs.
bool inStoreBuffer
The instruction has been sent to the store buffer.
Generated on Sun Jul 30 2023 01:56:52 for gem5 by doxygen 1.8.17