| gem5
    | 
Forward data betwen Execute and Fetch1 carrying change-of-address/stream information. More...
#include <pipe_data.hh>
| Public Types | |
| enum | Reason { NoBranch, CorrectlyPredictedBranch, UnpredictedBranch, BranchPrediction, BadlyPredictedBranchTarget, BadlyPredictedBranch, SuspendThread, Interrupt, HaltFetch } | 
| Public Member Functions | |
| BranchData () | |
| BranchData (Reason reason_, ThreadID thread_id, InstSeqNum new_stream_seq_num, InstSeqNum new_prediction_seq_num, TheISA::PCState target, MinorDynInstPtr inst_) | |
| bool | isBubble () const | 
| bool | isStreamChange () const | 
| As static isStreamChange but on this branch data.  More... | |
| bool | isBranch () const | 
| As static isBranch but on this branch data.  More... | |
| void | reportData (std::ostream &os) const | 
| ReportIF interface.  More... | |
| Static Public Member Functions | |
| static bool | isStreamChange (const BranchData::Reason reason) | 
| Is a request with this reason actually a request to change the PC rather than a bubble or branch prediction information.  More... | |
| static bool | isBranch (const BranchData::Reason reason) | 
| Is a request with this reason actually a 'real' branch, that is, a stream change that's not just an instruction to Fetch1 to halt or wake up.  More... | |
| static BranchData | bubble () | 
| BubbleIF interface.  More... | |
| Public Attributes | |
| Reason | reason | 
| Explanation for this branch.  More... | |
| ThreadID | threadId | 
| ThreadID associated with branch.  More... | |
| InstSeqNum | newStreamSeqNum | 
| Sequence number of new stream/prediction to be adopted.  More... | |
| InstSeqNum | newPredictionSeqNum | 
| TheISA::PCState | target | 
| Starting PC of that stream.  More... | |
| MinorDynInstPtr | inst | 
| Instruction which caused this branch.  More... | |
Forward data betwen Execute and Fetch1 carrying change-of-address/stream information.
Definition at line 64 of file pipe_data.hh.
| Enumerator | |
|---|---|
| NoBranch | |
| CorrectlyPredictedBranch | |
| UnpredictedBranch | |
| BranchPrediction | |
| BadlyPredictedBranchTarget | |
| BadlyPredictedBranch | |
| SuspendThread | |
| Interrupt | |
| HaltFetch | |
Definition at line 67 of file pipe_data.hh.
| 
 | inline | 
Definition at line 127 of file pipe_data.hh.
Referenced by bubble().
| 
 | inline | 
Definition at line 133 of file pipe_data.hh.
| 
 | inlinestatic | 
BubbleIF interface.
Definition at line 149 of file pipe_data.hh.
References BranchData().
Referenced by Minor::Execute::evaluate().
| 
 | static | 
Is a request with this reason actually a 'real' branch, that is, a stream change that's not just an instruction to Fetch1 to halt or wake up.
Definition at line 111 of file pipe_data.cc.
References BadlyPredictedBranch, BadlyPredictedBranchTarget, BranchPrediction, CorrectlyPredictedBranch, HaltFetch, Interrupt, NoBranch, SuspendThread, and UnpredictedBranch.
| 
 | inline | 
As static isBranch but on this branch data.
Definition at line 156 of file pipe_data.hh.
References isBranch(), and reason.
Referenced by isBranch().
| 
 | inline | 
Definition at line 150 of file pipe_data.hh.
References NoBranch, and reason.
Referenced by Minor::Execute::commitInst(), Minor::Fetch2::evaluate(), Minor::Execute::evaluate(), Minor::Fetch1::evaluate(), and reportData().
| 
 | static | 
Is a request with this reason actually a request to change the PC rather than a bubble or branch prediction information.
Definition at line 83 of file pipe_data.cc.
References BadlyPredictedBranch, BadlyPredictedBranchTarget, BranchPrediction, CorrectlyPredictedBranch, HaltFetch, Interrupt, NoBranch, SuspendThread, and UnpredictedBranch.
Referenced by Minor::Execute::commit(), Minor::Fetch2::evaluate(), and Minor::Fetch1::evaluate().
| 
 | inline | 
As static isStreamChange but on this branch data.
Definition at line 153 of file pipe_data.hh.
References isStreamChange(), and reason.
Referenced by isStreamChange(), and Minor::Execute::updateBranchData().
| void Minor::BranchData::reportData | ( | std::ostream & | os | ) | const | 
ReportIF interface.
Definition at line 139 of file pipe_data.cc.
References inst, isBubble(), newPredictionSeqNum, newStreamSeqNum, reason, and target.
| MinorDynInstPtr Minor::BranchData::inst | 
Instruction which caused this branch.
Definition at line 124 of file pipe_data.hh.
Referenced by Minor::operator<<(), reportData(), and Minor::Fetch2::updateBranchPrediction().
| InstSeqNum Minor::BranchData::newPredictionSeqNum | 
Definition at line 118 of file pipe_data.hh.
Referenced by Minor::operator<<(), reportData(), and Minor::Fetch1::updateExpectedSeqNums().
| InstSeqNum Minor::BranchData::newStreamSeqNum | 
Sequence number of new stream/prediction to be adopted.
Definition at line 117 of file pipe_data.hh.
Referenced by Minor::Fetch1::evaluate(), Minor::operator<<(), reportData(), and Minor::Fetch1::updateExpectedSeqNums().
| Reason Minor::BranchData::reason | 
Explanation for this branch.
Definition at line 111 of file pipe_data.hh.
Referenced by Minor::Fetch1::changeStream(), isBranch(), isBubble(), isStreamChange(), Minor::operator<<(), reportData(), and Minor::Fetch2::updateBranchPrediction().
| TheISA::PCState Minor::BranchData::target | 
Starting PC of that stream.
Definition at line 121 of file pipe_data.hh.
Referenced by Minor::Fetch1::changeStream(), Minor::operator<<(), Minor::Fetch2::predictBranch(), reportData(), and Minor::Fetch2::updateBranchPrediction().
| ThreadID Minor::BranchData::threadId | 
ThreadID associated with branch.
Definition at line 114 of file pipe_data.hh.
Referenced by Minor::Fetch1::changeStream(), Minor::Fetch2::evaluate(), Minor::Fetch1::evaluate(), and Minor::Fetch1::updateExpectedSeqNums().