Skip to content

Class simtix::InstrOp32

ClassList > simtix > InstrOp32

InstrOp32 class handles the operations for OP-32 opcode instructions.More...

  • #include <instr_op32.h>

Inherits the following classes: simtix::InstrOp

Public Types

Type Name
typedef void(InstrOp32::*)() Op32

Public Types inherited from simtix::InstrOp

See simtix::InstrOp

Type Name
typedef void(InstrOp::*)() Op

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 void Assign (const Instr * other) override
virtual void Decode () override
virtual void Execute () override
virtual void Reset () override

Public Functions inherited from simtix::InstrOp

See simtix::InstrOp

Type Name
virtual void Assign (const Instr * other) override
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 void Reset () override

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

Type Name
Op32 op32_ = nullptr

Protected Attributes inherited from simtix::InstrOp

See simtix::InstrOp

Type Name
bool committed_ = false
bool executed_ = false
int64_t imm_ = 0
Op op_ = nullptr
std::vector< int64_t > rd_data_
std::vector< int64_t > rs1_data_
bool rs1_data_ready_ = false
std::vector< int64_t > rs2_data_
bool rs2_data_ready_ = false

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
InstrOp32 (Warp * warp, uint32_t iword, uint64_t wpc)

Protected Functions inherited from simtix::InstrOp

See simtix::InstrOp

Type Name
InstrOp (Warp * warp, uint32_t iword, uint64_t wpc)
virtual void Reinitialize (Warp * warp, uint32_t iword, uint64_t wpc) override

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

The instructions perform various 32-bit arithmetic and logical operations.

Public Types Documentation

typedef Op32

using simtix::InstrOp32::Op32 =  void (InstrOp32::*)();

Public Functions Documentation

function Assign

virtual void simtix::InstrOp32::Assign (
    const Instr * other
) override

Implements simtix::InstrOp::Assign


function Decode

virtual void simtix::InstrOp32::Decode () override

Implements simtix::InstrOp::Decode


function Execute

virtual void simtix::InstrOp32::Execute () override

Implements simtix::InstrOp::Execute


function Reset

virtual void simtix::InstrOp32::Reset () override

Implements simtix::InstrOp::Reset


Protected Attributes Documentation

variable op32_

Op32 simtix::InstrOp32::op32_;

Protected Functions Documentation

function InstrOp32

simtix::InstrOp32::InstrOp32 (
    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_op32.h