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