gem5
v22.1.0.0
|
Public Member Functions | |
PredictorHistory (const InstSeqNum &seq_num, Addr instPC, bool pred_taken, void *bp_history, void *indirect_history, ThreadID _tid, const StaticInstPtr &inst) | |
Makes a predictor history struct that contains any information needed to update the predictor, BTB, and RAS. More... | |
PredictorHistory (const PredictorHistory &other) | |
bool | operator== (const PredictorHistory &entry) const |
Public Attributes | |
InstSeqNum | seqNum |
The sequence number for the predictor history entry. More... | |
Addr | pc |
The PC associated with the sequence number. More... | |
void * | bpHistory = nullptr |
Pointer to the history object passed back from the branch predictor. More... | |
void * | indirectHistory = nullptr |
std::unique_ptr< PCStateBase > | RASTarget |
The RAS target (only valid if a return). More... | |
unsigned | RASIndex = 0 |
The RAS index of the instruction (only valid if a call). More... | |
ThreadID | tid |
The thread id. More... | |
bool | predTaken |
Whether or not it was predicted taken. More... | |
bool | usedRAS = false |
Whether or not the RAS was used. More... | |
bool | pushedRAS = false |
bool | wasCall = false |
Whether or not the instruction was a call. More... | |
bool | wasReturn = false |
Whether or not the instruction was a return. More... | |
bool | wasIndirect = false |
Wether this instruction was an indirect branch. More... | |
Addr | target = MaxAddr |
Target of the branch. More... | |
const StaticInstPtr | inst |
The branch instrction. More... | |
Definition at line 202 of file bpred_unit.hh.
|
inline |
Makes a predictor history struct that contains any information needed to update the predictor, BTB, and RAS.
Definition at line 208 of file bpred_unit.hh.
|
inline |
Definition at line 217 of file bpred_unit.hh.
References RASTarget, and gem5::ArmISA::set.
|
inline |
Definition at line 229 of file bpred_unit.hh.
References seqNum.
void* gem5::branch_prediction::BPredUnit::PredictorHistory::bpHistory = nullptr |
Pointer to the history object passed back from the branch predictor.
It is used to update or restore state of the branch predictor.
Definition at line 244 of file bpred_unit.hh.
void* gem5::branch_prediction::BPredUnit::PredictorHistory::indirectHistory = nullptr |
Definition at line 246 of file bpred_unit.hh.
const StaticInstPtr gem5::branch_prediction::BPredUnit::PredictorHistory::inst |
The branch instrction.
Definition at line 281 of file bpred_unit.hh.
Addr gem5::branch_prediction::BPredUnit::PredictorHistory::pc |
The PC associated with the sequence number.
Definition at line 238 of file bpred_unit.hh.
bool gem5::branch_prediction::BPredUnit::PredictorHistory::predTaken |
Whether or not it was predicted taken.
Definition at line 258 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict().
bool gem5::branch_prediction::BPredUnit::PredictorHistory::pushedRAS = false |
Definition at line 264 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict().
unsigned gem5::branch_prediction::BPredUnit::PredictorHistory::RASIndex = 0 |
The RAS index of the instruction (only valid if a call).
Definition at line 252 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict().
std::unique_ptr<PCStateBase> gem5::branch_prediction::BPredUnit::PredictorHistory::RASTarget |
The RAS target (only valid if a return).
Definition at line 249 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict(), and PredictorHistory().
InstSeqNum gem5::branch_prediction::BPredUnit::PredictorHistory::seqNum |
The sequence number for the predictor history entry.
Definition at line 235 of file bpred_unit.hh.
Referenced by operator==().
Target of the branch.
First it is predicted, and fixed later if necessary
Definition at line 278 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict().
ThreadID gem5::branch_prediction::BPredUnit::PredictorHistory::tid |
The thread id.
Definition at line 255 of file bpred_unit.hh.
bool gem5::branch_prediction::BPredUnit::PredictorHistory::usedRAS = false |
Whether or not the RAS was used.
Definition at line 261 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict().
bool gem5::branch_prediction::BPredUnit::PredictorHistory::wasCall = false |
Whether or not the instruction was a call.
Definition at line 267 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict().
bool gem5::branch_prediction::BPredUnit::PredictorHistory::wasIndirect = false |
Wether this instruction was an indirect branch.
Definition at line 273 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict().
bool gem5::branch_prediction::BPredUnit::PredictorHistory::wasReturn = false |
Whether or not the instruction was a return.
Definition at line 270 of file bpred_unit.hh.
Referenced by gem5::branch_prediction::BPredUnit::predict().