Skip to content

Class simtix::InstrTrap

template <riscv::Exceptions TException>

ClassList > simtix > InstrTrap

template class for RISC-V exception code. More...

  • #include <instr_trap.h>

Inherits the following classes: simtix::Instr

Public Types inherited from simtix::Instr

See simtix::Instr

Type Name
enum uint8_t ExecutionUnit
enum uint8_t Opcode
Opcode definitions.

Public Functions

Type Name
virtual bool CanCommit () override const
virtual bool CanExecute () override const
virtual bool CanIssue () override const
virtual bool CanRetire () override const
virtual void Commit () override
virtual void Decode () override
virtual void Execute () override
virtual void Issue () override
virtual void OperandCollect () override
virtual bool exception_valid () override const

Public Functions inherited from simtix::Instr

See simtix::Instr

Type Name
virtual void Assign (const Instr * other)
virtual bool CanCommit () const = 0
virtual bool CanExecute () const = 0
virtual bool CanIssue () const = 0
virtual bool CanRetire () const = 0
virtual void Commit () = 0
virtual void Decode ()
virtual void Execute () = 0
virtual void Issue ()
virtual void OperandCollect () = 0
virtual void Reset ()
virtual bool barrier_valid () const
virtual bool exception_valid () const
ExecutionUnit execution_unit () const
bool illegal () const
uint32_t iword () const
virtual bool may_change_ctrl_flow () const
uint8_t opcode () const
void set_ssw (std::optional< uint32_t > ssw)
uint32_t sswid () const
uint8_t tswid () const
uint32_t wid () const
uint64_t wpc () const

Public Static Functions inherited from simtix::Instr

See simtix::Instr

Type Name
constexpr uint32_t BitMask (uint32_t width)
uint8_t DecodeFunct3 (uint32_t iword)
uint8_t DecodeFunct7 (uint32_t iword)
uint8_t DecodeOpcode (uint32_t iword)
uint8_t DecodeRd (uint32_t iword)
uint8_t DecodeRs1 (uint32_t iword)
uint8_t DecodeRs2 (uint32_t iword)

Protected Attributes inherited from simtix::Instr

See simtix::Instr

Type Name
std::vector< Thread * > active_threads_
ExecutionUnit execution_unit_ = kALU
uint8_t funct3_ = 0
uint8_t funct7_ = 0
bool illegal_ = false
uint32_t iword_
std::string mnemonic_
uint8_t opcode_ = 0
uint8_t rd_ = 0
uint8_t rs1_ = 0
uint8_t rs2_ = 0
std::optional< uint32_t > ssw_
uint8_t tswid_ = 0
Warp * warp_
uint64_t wpc_

Protected Functions

Type Name
InstrTrap (Warp * warp, uint32_t iword, uint64_t wpc)

Protected Functions inherited from simtix::Instr

See simtix::Instr

Type Name
Instr (Warp * warp, uint32_t iword, uint64_t wpc)
virtual void Reinitialize (Warp * warp, uint32_t iword, uint64_t wpc)
virtual ~Instr () = default

Detailed Description

InstrTrap is a template class that accepts RISC-V exception code as template parameter and will always commit an exception based on the code.

Public Functions Documentation

function CanCommit

inline virtual bool simtix::InstrTrap::CanCommit () override const

Implements simtix::Instr::CanCommit


function CanExecute

inline virtual bool simtix::InstrTrap::CanExecute () override const

Implements simtix::Instr::CanExecute


function CanIssue

inline virtual bool simtix::InstrTrap::CanIssue () override const

Implements simtix::Instr::CanIssue


function CanRetire

inline virtual bool simtix::InstrTrap::CanRetire () override const

Implements simtix::Instr::CanRetire


function Commit

inline virtual void simtix::InstrTrap::Commit () override

Implements simtix::Instr::Commit


function Decode

inline virtual void simtix::InstrTrap::Decode () override

Implements simtix::Instr::Decode


function Execute

inline virtual void simtix::InstrTrap::Execute () override

Implements simtix::Instr::Execute


function Issue

inline virtual void simtix::InstrTrap::Issue () override

Implements simtix::Instr::Issue


function OperandCollect

inline virtual void simtix::InstrTrap::OperandCollect () override

Implements simtix::Instr::OperandCollect


function exception_valid

inline virtual bool simtix::InstrTrap::exception_valid () override const

Implements simtix::Instr::exception_valid


Protected Functions Documentation

function InstrTrap

inline simtix::InstrTrap::InstrTrap (
    Warp * warp,
    uint32_t iword,
    uint64_t wpc
) 


The documentation for this class was generated from the following file projects/simtix/src/simtix/sm/instr_trap.h