Skip to main content

ExecutableInstructionOperands

Trait ExecutableInstructionOperands 

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

rs1/rs2 instruction operands

Required Methods§

Source

fn get_rs1_rs2_operands( &self, ) -> Rs1Rs2Operands<<Self::Hart as HartConfig>::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, Hart> ExecutableInstructionOperands for Rv32AInstruction<Hart>
where Reg: Register<Type = u32>, Hart: HartConfig<Reg = Reg>,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<Reg, Hart> ExecutableInstructionOperands for Rv32ZbbZbkbSharedInstruction<Hart>
where Reg: Register<Type = u32>, Hart: HartConfig<Reg = Reg>,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<Reg, Hart> ExecutableInstructionOperands for Rv64ZbbZbkbSharedInstruction<Hart>
where Reg: Register<Type = u64>, Hart: HartConfig<Reg = Reg>,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<Reg, Hart> ExecutableInstructionOperands for Rv64ZkndZkneSharedInstruction<Hart>
where Reg: Register<Type = u64>, Hart: HartConfig<Reg = Reg>,

§

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

§

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

§

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

§

impl<Reg, Hart> ExecutableInstructionOperands for ZawrsInstruction<Hart>
where Reg: Register, Hart: HartConfig<Reg = Reg>,

§

impl<Reg, Hart> ExecutableInstructionOperands for ZicondInstruction<Hart>
where Reg: Register, Hart: HartConfig<Reg = Reg>,

§

impl<Reg, Hart> ExecutableInstructionOperands for ZicsrInstruction<Hart>
where Reg: Register, Hart: HartConfig<Reg = Reg>,

§

impl<Reg, Hart> ExecutableInstructionOperands for ZifenceiInstruction<Hart>
where Reg: Register, Hart: HartConfig<Reg = Reg>,

§

impl<Reg, Hart> ExecutableInstructionOperands for ZkrInstruction<Hart>
where Reg: Register, Hart: HartConfig<Reg = Reg>,

§

impl<Reg, Hart> ExecutableInstructionOperands for ZvbbInstruction<Hart>
where Reg: Register, Hart: VectorHartConfig<Reg = Reg> + HartConfig<Reg = Reg>,

§

impl<Reg, Hart> ExecutableInstructionOperands for ZvbcInstruction<Hart>
where Reg: Register, Hart: VectorHartConfig<Reg = Reg> + HartConfig<Reg = Reg>,

§

impl<Reg, Hart> ExecutableInstructionOperands for ZveXxInstruction<Hart>
where Reg: Register, Hart: VectorHartConfig<Reg = Reg> + HartConfig<Reg = Reg>,

§

impl<Reg, Hart> ExecutableInstructionOperands for ZvkbInstruction<Hart>
where Reg: Register, Hart: VectorHartConfig<Reg = Reg> + HartConfig<Reg = Reg>,

Implementors§