gem5  v21.1.0.2
Public Member Functions | Protected Member Functions | Private Attributes | Friends | List of all members
gem5::ArmISA::BrkPoint Class Reference

#include <self_debug.hh>

Public Member Functions

 BrkPoint (MiscRegIndex ctrl_index, MiscRegIndex val_index, SelfDebug *_conf, bool ctx_aw, bool lva, bool vmid16, bool aarch32)
 
bool testLinkedBk (ThreadContext *tc, Addr vaddr, ExceptionLevel el)
 
bool test (ThreadContext *tc, Addr pc, ExceptionLevel el, DBGBCR ctr, bool from_link)
 
bool testAddrMatch (ThreadContext *tc, Addr pc, uint8_t bas)
 
bool testAddrMissMatch (ThreadContext *tc, Addr pc, uint8_t bas)
 
bool testContextMatch (ThreadContext *tc, bool ctx1, bool low_ctx)
 
bool testContextMatch (ThreadContext *tc, bool ctx1)
 
bool testVMIDMatch (ThreadContext *tc)
 
const DBGBCR getControlReg (ThreadContext *tc)
 
bool isEnabled (ThreadContext *tc, ExceptionLevel el, uint8_t hmc, uint8_t ssc, uint8_t pmc)
 
bool isActive (Addr vaddr)
 
void updateControl (DBGBCR val)
 

Protected Member Functions

Addr getAddrfromReg (ThreadContext *tc) const
 
RegVal getContextfromReg (ThreadContext *tc, bool ctxid1) const
 
vmid_t getVMIDfromReg (ThreadContext *tc, bool vs)
 

Private Attributes

MiscRegIndex ctrlRegIndex
 
MiscRegIndex valRegIndex
 
SelfDebug * conf
 
bool isCntxtAware
 
bool VMID16enabled
 
Addr activePc
 
bool enable
 
int maxAddrSize
 
bool onUse
 

Friends

class SelfDebug
 

Detailed Description

Definition at line 61 of file self_debug.hh.

Constructor & Destructor Documentation

◆ BrkPoint()

gem5::ArmISA::BrkPoint::BrkPoint ( MiscRegIndex  ctrl_index,
MiscRegIndex  val_index,
SelfDebug *  _conf,
bool  ctx_aw,
bool  lva,
bool  vmid16,
bool  aarch32 
)
inline

Definition at line 77 of file self_debug.hh.

References maxAddrSize, and onUse.

Member Function Documentation

◆ getAddrfromReg()

Addr gem5::ArmISA::BrkPoint::getAddrfromReg ( ThreadContext *  tc) const
inlineprotected

◆ getContextfromReg()

RegVal gem5::ArmISA::BrkPoint::getContextfromReg ( ThreadContext *  tc,
bool  ctxid1 
) const
inlineprotected

Definition at line 101 of file self_debug.hh.

References gem5::bits(), gem5::ThreadContext::readMiscReg(), and valRegIndex.

Referenced by testContextMatch().

◆ getControlReg()

const DBGBCR gem5::ArmISA::BrkPoint::getControlReg ( ThreadContext *  tc)
inline

Definition at line 120 of file self_debug.hh.

References ctrlRegIndex, and gem5::ThreadContext::readMiscReg().

Referenced by testLinkedBk().

◆ getVMIDfromReg()

vmid_t gem5::BrkPoint::getVMIDfromReg ( ThreadContext *  tc,
bool  vs 
)
protected

◆ isActive()

bool gem5::ArmISA::BrkPoint::isActive ( Addr  vaddr)
inline

Definition at line 129 of file self_debug.hh.

References activePc, and gem5::MipsISA::vaddr.

◆ isEnabled()

bool gem5::BrkPoint::isEnabled ( ThreadContext *  tc,
ExceptionLevel  el,
uint8_t  hmc,
uint8_t  ssc,
uint8_t  pmc 
)

◆ test()

bool gem5::BrkPoint::test ( ThreadContext *  tc,
Addr  pc,
ExceptionLevel  el,
DBGBCR  ctr,
bool  from_link 
)

◆ testAddrMatch()

bool gem5::BrkPoint::testAddrMatch ( ThreadContext *  tc,
Addr  pc,
uint8_t  bas 
)

◆ testAddrMissMatch()

bool gem5::BrkPoint::testAddrMissMatch ( ThreadContext *  tc,
Addr  pc,
uint8_t  bas 
)

◆ testContextMatch() [1/2]

bool gem5::BrkPoint::testContextMatch ( ThreadContext *  tc,
bool  ctx1 
)

Definition at line 421 of file self_debug.cc.

References testContextMatch().

◆ testContextMatch() [2/2]

bool gem5::BrkPoint::testContextMatch ( ThreadContext *  tc,
bool  ctx1,
bool  low_ctx 
)

◆ testLinkedBk()

bool gem5::BrkPoint::testLinkedBk ( ThreadContext *  tc,
Addr  vaddr,
ExceptionLevel  el 
)

Definition at line 211 of file self_debug.cc.

References gem5::ArmISA::el, enable, getControlReg(), test(), and gem5::MipsISA::vaddr.

Referenced by test().

◆ testVMIDMatch()

bool gem5::BrkPoint::testVMIDMatch ( ThreadContext *  tc)

◆ updateControl()

void gem5::ArmISA::BrkPoint::updateControl ( DBGBCR  val)
inline

Definition at line 141 of file self_debug.hh.

References enable, and gem5::X86ISA::val.

Referenced by gem5::ArmISA::SelfDebug::init().

Friends And Related Function Documentation

◆ SelfDebug

friend class SelfDebug
friend

Definition at line 75 of file self_debug.hh.

Member Data Documentation

◆ activePc

Addr gem5::ArmISA::BrkPoint::activePc
private

Definition at line 69 of file self_debug.hh.

Referenced by isActive().

◆ conf

SelfDebug* gem5::ArmISA::BrkPoint::conf
private

Definition at line 66 of file self_debug.hh.

Referenced by isEnabled(), test(), and testContextMatch().

◆ ctrlRegIndex

MiscRegIndex gem5::ArmISA::BrkPoint::ctrlRegIndex
private

Definition at line 64 of file self_debug.hh.

Referenced by getControlReg().

◆ enable

bool gem5::ArmISA::BrkPoint::enable
private

Definition at line 70 of file self_debug.hh.

Referenced by testLinkedBk(), and updateControl().

◆ isCntxtAware

bool gem5::ArmISA::BrkPoint::isCntxtAware
private

Definition at line 67 of file self_debug.hh.

Referenced by testContextMatch().

◆ maxAddrSize

int gem5::ArmISA::BrkPoint::maxAddrSize
private

Definition at line 71 of file self_debug.hh.

Referenced by BrkPoint(), getAddrfromReg(), testAddrMatch(), and testAddrMissMatch().

◆ onUse

bool gem5::ArmISA::BrkPoint::onUse
private

Definition at line 72 of file self_debug.hh.

Referenced by BrkPoint().

◆ valRegIndex

MiscRegIndex gem5::ArmISA::BrkPoint::valRegIndex
private

Definition at line 65 of file self_debug.hh.

Referenced by getAddrfromReg(), getContextfromReg(), and getVMIDfromReg().

◆ VMID16enabled

bool gem5::ArmISA::BrkPoint::VMID16enabled
private

Definition at line 68 of file self_debug.hh.

Referenced by getVMIDfromReg(), and testVMIDMatch().


The documentation for this class was generated from the following files:

Generated on Tue Sep 21 2021 12:28:27 for gem5 by doxygen 1.8.17