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