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
Public Functions Documentation
function Assign
Implements simtix::InstrOp::Assign
function Decode
Implements simtix::InstrOp::Decode
function Execute
Implements simtix::InstrOp::Execute
function Reset
Implements simtix::InstrOp::Reset
Protected Attributes Documentation
variable op32_
Protected Functions Documentation
function InstrOp32
The documentation for this class was generated from the following file projects/simtix/src/simtix/sm/instr_op32.h