43#ifndef __CPU_PRED_INDIRECT_BASE_HH__
44#define __CPU_PRED_INDIRECT_BASE_HH__
49#include "params/IndirectPredictor.hh"
55namespace branch_prediction
62 typedef IndirectPredictorParams
Params;
81 Addr pc,
void * &i_history) = 0;
Abstract superclass for simulation objects.
IndirectPredictor(const Params ¶ms)
virtual void commit(ThreadID tid, InstSeqNum sn, void *&i_history)=0
A branch gets finally commited.
virtual void update(ThreadID tid, InstSeqNum sn, Addr pc, bool squash, bool taken, const PCStateBase &target, BranchType br_type, void *&i_history)=0
Updates the indirect predictor with history information of a branch.
IndirectPredictorParams Params
virtual const PCStateBase * lookup(ThreadID tid, InstSeqNum sn, Addr pc, void *&i_history)=0
Predicts the indirect target of an indirect branch.
virtual void squash(ThreadID tid, InstSeqNum sn, void *&i_history)=0
Squashes a branch.
const Params & params() const
enums::BranchType BranchType
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria 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.