29 #ifndef __CPU_PRED_INDIRECT_HH__ 30 #define __CPU_PRED_INDIRECT_HH__ 34 #include "arch/isa_traits.hh" 35 #include "config/the_isa.hh" 38 #include "params/SimpleIndirectPredictor.hh" 84 : pcAddr(br_addr), targetAddr(tgt_addr), seqNum(seq_num) { }
102 #endif // __CPU_PRED_INDIRECT_HH__ void changeDirectionPrediction(ThreadID tid, void *indirect_history, bool actually_taken)
const unsigned ghrNumBits
std::vector< std::vector< IPredEntry > > targetCache
Addr getSetIndex(Addr br_addr, unsigned ghr, ThreadID tid)
std::vector< ThreadInfo > threadInfo
bool lookup(Addr br_addr, TheISA::PCState &br_target, ThreadID tid)
void commit(InstSeqNum seq_num, ThreadID tid, void *indirect_history)
void genIndirectInfo(ThreadID tid, void *&indirect_history)
const Params * params() const
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::deque< HistoryEntry > pathHist
void deleteIndirectInfo(ThreadID tid, void *indirect_history)
int16_t ThreadID
Thread index/ID type.
void recordIndirect(Addr br_addr, Addr tgt_addr, InstSeqNum seq_num, ThreadID tid)
void squash(InstSeqNum seq_num, ThreadID tid)
void updateDirectionInfo(ThreadID tid, bool actually_taken)
const unsigned pathLength
HistoryEntry(Addr br_addr, Addr tgt_addr, InstSeqNum seq_num)
void recordTarget(InstSeqNum seq_num, void *indirect_history, const TheISA::PCState &target, ThreadID tid)
GenericISA::DelaySlotPCState< MachInst > PCState
Addr getTag(Addr br_addr)
SimpleIndirectPredictor(const SimpleIndirectPredictorParams *params)