gem5  v21.2.1.1
Public Member Functions | Static Public Attributes | Private Attributes | List of all members
gem5::ArmISA::HTMCheckpoint Class Reference

#include <htm.hh>

Inheritance diagram for gem5::ArmISA::HTMCheckpoint:
gem5::BaseHTMCheckpoint

Public Member Functions

 HTMCheckpoint ()
 
void reset () override
 Resets the checkpoint once a transaction has completed. More...
 
void save (ThreadContext *tc) override
 Every ISA implementing HTM support should override the save method. More...
 
void restore (ThreadContext *tc, HtmFailureFaultCause cause) override
 Every ISA implementing HTM support should override the restore method. More...
 
void destinationRegister (RegIndex dest)
 
void cancelReason (uint16_t reason)
 
- Public Member Functions inherited from gem5::BaseHTMCheckpoint
 BaseHTMCheckpoint ()
 
virtual ~BaseHTMCheckpoint ()
 
bool valid () const
 
uint64_t newHtmUid ()
 Generates a new HTM identifier (used when starting a new transaction) More...
 
uint64_t getHtmUid () const
 Returns the current HTM identifier. More...
 
void setHtmUid (uint64_t new_htm_uid)
 Sets the current HTM identifier. More...
 

Static Public Attributes

const static int MAX_HTM_DEPTH = 255
 

Private Attributes

uint8_t rt
 
Addr nPc
 
std::array< RegVal, NUM_ARCH_INTREGS > x
 
std::array< VecRegContainer, NumVecRegsz
 
std::array< VecPredRegContainer, NumVecRegsp
 
Addr sp
 
uint16_t tcreason
 
uint32_t fpcr
 
uint32_t fpsr
 
uint32_t iccPmrEl1
 
uint8_t nzcv
 
uint8_t daif
 
PCState pcstateckpt
 

Additional Inherited Members

- Protected Attributes inherited from gem5::BaseHTMCheckpoint
bool _valid
 

Detailed Description

Definition at line 58 of file htm.hh.

Constructor & Destructor Documentation

◆ HTMCheckpoint()

gem5::ArmISA::HTMCheckpoint::HTMCheckpoint ( )
inline

Definition at line 61 of file htm.hh.

Member Function Documentation

◆ cancelReason()

void gem5::ArmISA::HTMCheckpoint::cancelReason ( uint16_t  reason)
inline

Definition at line 72 of file htm.hh.

References tcreason.

◆ destinationRegister()

void gem5::ArmISA::HTMCheckpoint::destinationRegister ( RegIndex  dest)
inline

Definition at line 71 of file htm.hh.

References rt.

◆ reset()

void gem5::ArmISA::HTMCheckpoint::reset ( )
overridevirtual

Resets the checkpoint once a transaction has completed.

The method is bringing up the checkpoint to a known reset state so that it can be reused. ISA specific checkpoints inheriting from this class should override this method so that they can reset their own ISA specific state.

Reimplemented from gem5::BaseHTMCheckpoint.

Definition at line 48 of file htm.cc.

References daif, fpcr, fpsr, gem5::ArmISA::i, iccPmrEl1, nPc, gem5::ArmISA::NumVecPredRegs, gem5::ArmISA::NumVecRegs, nzcv, p, pcstateckpt, gem5::BaseHTMCheckpoint::reset(), rt, sp, tcreason, x, and z.

◆ restore()

void gem5::ArmISA::HTMCheckpoint::restore ( ThreadContext tc,
HtmFailureFaultCause  cause 
)
overridevirtual

Every ISA implementing HTM support should override the restore method.

This is called once a transaction gets aborted and the architectural state needs to be reverted. This will restore the checkpointed arch state.

Parameters
tcthread context to be restored
causethe reason why the transaction has been aborted

Reimplemented from gem5::BaseHTMCheckpoint.

Definition at line 99 of file htm.cc.

References gem5::bits(), gem5::ArmISA::daif, gem5::EXCEPTION, gem5::EXPLICIT, gem5::MEMORY, gem5::ArmISA::MISCREG_DAIF, gem5::ArmISA::MISCREG_FPCR, gem5::ArmISA::MISCREG_FPSR, gem5::ArmISA::MISCREG_NZCV, gem5::ArmISA::n, gem5::NEST, gem5::ArmISA::NumVecPredRegs, gem5::ArmISA::NumVecRegs, gem5::OTHER, gem5::MipsISA::p, panic, gem5::ThreadContext::pcState(), gem5::replaceBits(), gem5::BaseHTMCheckpoint::restore(), gem5::ArmISA::rt, gem5::ThreadContext::setIntReg(), gem5::ThreadContext::setMiscReg(), gem5::ThreadContext::setVecPredReg(), gem5::ThreadContext::setVecReg(), gem5::SIZE, gem5::ArmISA::sp, gem5::VecPredRegClass, gem5::VecRegClass, gem5::RiscvISA::x, and gem5::ArmISA::z.

◆ save()

void gem5::ArmISA::HTMCheckpoint::save ( ThreadContext tc)
overridevirtual

Member Data Documentation

◆ daif

uint8_t gem5::ArmISA::HTMCheckpoint::daif
private

Definition at line 86 of file htm.hh.

Referenced by reset().

◆ fpcr

uint32_t gem5::ArmISA::HTMCheckpoint::fpcr
private

Definition at line 82 of file htm.hh.

Referenced by reset().

◆ fpsr

uint32_t gem5::ArmISA::HTMCheckpoint::fpsr
private

Definition at line 83 of file htm.hh.

Referenced by reset().

◆ iccPmrEl1

uint32_t gem5::ArmISA::HTMCheckpoint::iccPmrEl1
private

Definition at line 84 of file htm.hh.

Referenced by reset().

◆ MAX_HTM_DEPTH

const static int gem5::ArmISA::HTMCheckpoint::MAX_HTM_DEPTH = 255
static

Definition at line 65 of file htm.hh.

◆ nPc

Addr gem5::ArmISA::HTMCheckpoint::nPc
private

Definition at line 76 of file htm.hh.

Referenced by reset().

◆ nzcv

uint8_t gem5::ArmISA::HTMCheckpoint::nzcv
private

Definition at line 85 of file htm.hh.

Referenced by reset().

◆ p

std::array<VecPredRegContainer, NumVecRegs> gem5::ArmISA::HTMCheckpoint::p
private

Definition at line 79 of file htm.hh.

Referenced by reset().

◆ pcstateckpt

PCState gem5::ArmISA::HTMCheckpoint::pcstateckpt
private

Definition at line 87 of file htm.hh.

Referenced by reset().

◆ rt

uint8_t gem5::ArmISA::HTMCheckpoint::rt
private

Definition at line 75 of file htm.hh.

Referenced by destinationRegister(), and reset().

◆ sp

Addr gem5::ArmISA::HTMCheckpoint::sp
private

Definition at line 80 of file htm.hh.

Referenced by reset().

◆ tcreason

uint16_t gem5::ArmISA::HTMCheckpoint::tcreason
private

Definition at line 81 of file htm.hh.

Referenced by cancelReason(), and reset().

◆ x

std::array<RegVal, NUM_ARCH_INTREGS> gem5::ArmISA::HTMCheckpoint::x
private

Definition at line 77 of file htm.hh.

Referenced by reset().

◆ z

std::array<VecRegContainer, NumVecRegs> gem5::ArmISA::HTMCheckpoint::z
private

Definition at line 78 of file htm.hh.

Referenced by reset().


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

Generated on Wed May 4 2022 12:14:55 for gem5 by doxygen 1.8.17