gem5 v24.0.0.0
|
#include <htm.hh>
Public Member Functions | |
HTMCheckpoint () | |
void | reset () override |
Resets the checkpoint once a transaction has completed. | |
void | save (ThreadContext *tc) override |
Every ISA implementing HTM support should override the save method. | |
void | restore (ThreadContext *tc, HtmFailureFaultCause cause) override |
Every ISA implementing HTM support should override the restore method. | |
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) | |
uint64_t | getHtmUid () const |
Returns the current HTM identifier. | |
void | setHtmUid (uint64_t new_htm_uid) |
Sets the current HTM identifier. | |
Static Public Attributes | |
static const int | MAX_HTM_DEPTH = 255 |
Private Attributes | |
uint8_t | rt |
Addr | nPc |
std::array< RegVal, int_reg::NumArchRegs > | x |
std::array< VecRegContainer, NumVecRegs > | z |
std::array< VecPredRegContainer, NumVecRegs > | p |
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 |
|
inline |
|
inline |
|
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.
|
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.
tc | thread context to be restored |
cause | the reason why the transaction has been aborted |
Reimplemented from gem5::BaseHTMCheckpoint.
Definition at line 95 of file htm.cc.
References gem5::bits(), gem5::ArmISA::daif, gem5::EXCEPTION, gem5::EXPLICIT, gem5::ArmISA::intRegClass, gem5::MEMORY, gem5::ArmISA::MISCREG_DAIF, gem5::ArmISA::MISCREG_FPCR, gem5::ArmISA::MISCREG_FPSR, gem5::ArmISA::MISCREG_NZCV, gem5::ArmISA::n, gem5::NEST, gem5::MipsISA::int_reg::NumArchRegs, 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::setMiscReg(), gem5::ThreadContext::setReg(), gem5::SIZE, gem5::ArmISA::sp, gem5::ArmISA::int_reg::Spx, gem5::ArmISA::vecPredRegClass, gem5::ArmISA::vecRegClass, gem5::RiscvISA::x, and gem5::ArmISA::z.
|
overridevirtual |
Every ISA implementing HTM support should override the save method.
This is called once a transaction starts and the architectural state needs to be saved. This will checkpoint the arch state.
tc | thread context state to be saved |
Reimplemented from gem5::BaseHTMCheckpoint.
Definition at line 72 of file htm.cc.
References gem5::PCStateBase::as(), gem5::ArmISA::daif, gem5::ThreadContext::getReg(), gem5::ArmISA::intRegClass, gem5::ArmISA::MISCREG_DAIF, gem5::ArmISA::MISCREG_FPCR, gem5::ArmISA::MISCREG_FPSR, gem5::ArmISA::MISCREG_NZCV, gem5::ArmISA::n, gem5::MipsISA::int_reg::NumArchRegs, gem5::ArmISA::NumVecPredRegs, gem5::ArmISA::NumVecRegs, gem5::MipsISA::p, gem5::ThreadContext::pcState(), gem5::ThreadContext::readMiscReg(), gem5::BaseHTMCheckpoint::save(), gem5::ArmISA::sp, gem5::ArmISA::int_reg::Spx, gem5::ArmISA::vecPredRegClass, gem5::ArmISA::vecRegClass, gem5::RiscvISA::x, and gem5::ArmISA::z.
|
private |
|
private |
|
private |
|
private |
|
static |
|
private |
|
private |
|
private |
|
private |
|
private |
Definition at line 75 of file htm.hh.
Referenced by destinationRegister(), and reset().
|
private |
|
private |
Definition at line 81 of file htm.hh.
Referenced by cancelReason(), and reset().
|
private |
|
private |