Go to the documentation of this file.
52 os <<
"UnpredictedBranch";
55 os <<
"BranchPrediction";
58 os <<
"CorrectlyPredictedBranch";
61 os <<
"BadlyPredictedBranch";
64 os <<
"BadlyPredictedBranchTarget";
70 os <<
"SuspendThread";
144 <<
";0x" << std::hex <<
target.instAddr() << std::dec
153 os << branch.
reason <<
" target: 0x"
154 << std::hex << branch.
target.instAddr() << std::dec
155 <<
' ' << *branch.
inst
179 line =
new uint8_t[width_];
225 numInsts(
width), threadId(tid)
TheISA::PCState target
Starting PC of that stream.
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)
void reportData(std::ostream &os) const
ReportIF interface.
RequestPtr req
A pointer to the original request.
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.
static MinorDynInstPtr bubble()
There is a single bubble inst.
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
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.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
ForwardInstData & operator=(const ForwardInstData &src)
Copy the inst array only as far as numInsts.
T * getPtr()
get a pointer to the data ptr.
void resize(unsigned int width)
Resize a bubble/empty ForwardInstData and fill with bubbles.
Generated on Wed Sep 30 2020 14:02:08 for gem5 by doxygen 1.8.17