42#ifndef __CPU_PRED_CONDITIONAL_BASE_HH__
43#define __CPU_PRED_CONDITIONAL_BASE_HH__
48#include "params/ConditionalPredictor.hh"
61 typedef ConditionalPredictorParams
Params;
93 bool taken,
Addr target,
95 void * &bp_history) = 0;
120 void * &bp_history,
bool squashed,
139 bool uncond,
void * &bp_history);
virtual void branchPlaceholder(ThreadID tid, Addr pc, bool uncond, void *&bp_history)
Special function for the decoupled front-end.
ConditionalPredictorParams Params
virtual void update(ThreadID tid, Addr pc, bool taken, void *&bp_history, bool squashed, const StaticInstPtr &inst, Addr target)=0
Updates the BP with taken/not taken information.
const unsigned instShiftAmt
Number of bits to shift instructions by for predictor addresses.
ConditionalPredictor(const Params ¶ms)
virtual void squash(ThreadID tid, void *&bp_history)=0
virtual void updateHistories(ThreadID tid, Addr pc, bool uncond, bool taken, Addr target, const StaticInstPtr &inst, void *&bp_history)=0
Ones done with the prediction this function updates the path and global history.
virtual bool lookup(ThreadID tid, Addr pc, void *&bp_history)=0
Looks up a given conditional branch PC of in the BP to see if it is taken or not taken.
const Params & params() const
SimObject(const Params &p)
Copyright (c) 2024 Arm Limited All rights reserved.
int16_t ThreadID
Thread index/ID type.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
RefCountingPtr< StaticInst > StaticInstPtr