Skip to main content

ExecutableInstructionOperands

Trait ExecutableInstructionOperands 

Source
pub trait ExecutableInstructionOperands
where Self: Instruction,
{ // Required method fn get_rs1_rs2_operands(&self) -> Rs1Rs2Operands<Self::Reg>; }
Expand description

rs1/rs2 instruction operands

Required Methods§

Source

fn get_rs1_rs2_operands(&self) -> Rs1Rs2Operands<Self::Reg>

rs1/rs2 instruction operands.

Returns zero register for rs1/rs2 that were missing in the original instruction definition.

Takes &self so that an instruction read through a reference into memory has the two registers loaded from there, a byte each, rather than copied out whole and extracted with a shift and a mask each, see InstructionFetcher::peeked_instruction().

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

§

impl<Reg> ExecutableInstructionOperands for Rv32AInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32BInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32Instruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32MInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZaamoInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZabhaInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZacasInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZalasrInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZalrscInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZbaInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZbbInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZbcInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZbkbInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZbkcInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZbkxInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZbsInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZcaInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZcbInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZcmpInstruction<Reg>
where Reg: ZcmpRegister<Type = u32> + Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZknInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZkndInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZkneInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZknhInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv32ZmmulInstruction<Reg>
where Reg: Register<Type = u32>,

§

impl<Reg> ExecutableInstructionOperands for Rv64AInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64BInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64Instruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64MInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZaamoInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZabhaInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZacasInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZalasrInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZalrscInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZbaInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZbbInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZbcInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZbkbInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZbkcInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZbkxInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZbsInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZcaInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZcbInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZcmpInstruction<Reg>
where Reg: ZcmpRegister<Type = u64> + Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZknInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZkndInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZkneInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZknhInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for Rv64ZmmulInstruction<Reg>
where Reg: Register<Type = u64>,

§

impl<Reg> ExecutableInstructionOperands for ZawrsInstruction<Reg>
where Reg: Register,

§

impl<Reg> ExecutableInstructionOperands for ZicondInstruction<Reg>
where Reg: Register,

§

impl<Reg> ExecutableInstructionOperands for ZicsrInstruction<Reg>
where Reg: Register,

§

impl<Reg> ExecutableInstructionOperands for ZifenceiInstruction<Reg>
where Reg: Register,

§

impl<Reg> ExecutableInstructionOperands for ZkrInstruction<Reg>
where Reg: Register,

§

impl<Reg> ExecutableInstructionOperands for ZvbbInstruction<Reg>
where Reg: Register,

§

impl<Reg> ExecutableInstructionOperands for ZvbcInstruction<Reg>
where Reg: Register,

§

impl<Reg> ExecutableInstructionOperands for ZveXxInstruction<Reg>
where Reg: Register,

§

impl<Reg> ExecutableInstructionOperands for ZvkbInstruction<Reg>
where Reg: Register,

Implementors§