Go to the documentation of this file.
50 #ifndef __CPU_MINOR_PIPE_DATA_HH__
51 #define __CPU_MINOR_PIPE_DATA_HH__
165 std::ostream &
operator <<(std::ostream &
os,
const BranchData &branch);
const ThreadID InvalidThreadID
ThreadID threadId
ThreadID associated with branch.
TheISA::PCState target
Starting PC of that stream.
ThreadID threadId
Thread associated with these instructions.
MinorDynInstPtr inst
Instruction which caused this branch.
Forward flowing data between Fetch2,Decode,Execute carrying a packet of instructions of a width appro...
void bubbleFill()
Fill with bubbles from 0 to width() - 1.
bool isStreamChange() const
As static isStreamChange but on this branch data.
int16_t ThreadID
Thread index/ID type.
void adoptPacketData(Packet *packet)
Use the data from a packet as line instead of allocating new space.
InstSeqNum newStreamSeqNum
Sequence number of new stream/prediction to be adopted.
ForwardInstData(unsigned int width=0, ThreadID tid=InvalidThreadID)
Line fetch data in the forward direction.
void reportData(std::ostream &os) const
ReportIF interface.
void freeLine()
Free this ForwardLineData line.
Reason reason
Explanation for this branch.
InstId id
Thread, stream, prediction ...
@ BadlyPredictedBranchTarget
@ CorrectlyPredictedBranch
unsigned int lineWidth
Explicit line width, don't rely on data.size.
void reportData(std::ostream &os) const
ReportIF interface.
Packet * packet
Packet from which the line is taken.
Fault fault
This line has a fault.
bool isBranch() const
As static isBranch but on this branch data.
Dynamic instruction for Minor.
Addr lineBaseAddr
First byte address in the line.
void reportData(std::ostream &os) const
ReportIF interface.
void setFault(Fault fault_)
Set fault and possible clear the bubble flag.
std::shared_ptr< FaultBase > Fault
unsigned int width() const
Number of instructions carried by this object.
bool isBubble() const
BubbleIF interface.
MinorDynInstPtr insts[MAX_FORWARD_INSTS]
Array of carried insts, ref counted.
unsigned int numInsts
The number of insts slots that can be expected to be valid insts.
void allocateLine(unsigned int width_)
In-place initialise a ForwardLineData, freeing and overridding the line.
constexpr decltype(nullptr) NoFault
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool isFault() const
This is a fault, not a line.
InstSeqNum newPredictionSeqNum
bool bubbleFlag
This line is a bubble.
const unsigned int MAX_FORWARD_INSTS
Maximum number of instructions that can be carried by the pipeline.
Forward data betwen Execute and Fetch1 carrying change-of-address/stream information.
std::ostream & operator<<(std::ostream &os, const InstId &id)
Print this id in the usual slash-separated format expected by MinorTrace.
static ForwardLineData bubble()
BubbleIF interface.
GenericISA::DelaySlotPCState< MachInst > PCState
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
static BranchData bubble()
BubbleIF interface.
TheISA::PCState pc
PC of the first requested inst within this line.
ForwardInstData & operator=(const ForwardInstData &src)
Copy the inst array only as far as numInsts.
void resize(unsigned int width)
Resize a bubble/empty ForwardInstData and fill with bubbles.
Id for lines and instructions.
BranchData(Reason reason_, ThreadID thread_id, InstSeqNum new_stream_seq_num, InstSeqNum new_prediction_seq_num, TheISA::PCState target, MinorDynInstPtr inst_)
Generated on Wed Sep 30 2020 14:02:08 for gem5 by doxygen 1.8.17