Enum riscy::Instruction
source · pub enum Instruction {
Show 42 variants
Beq {
rs1: Reg,
rs2: Reg,
imm: ImmB,
},
Bne {
rs1: Reg,
rs2: Reg,
imm: ImmB,
},
Blt {
rs1: Reg,
rs2: Reg,
imm: ImmB,
},
Bge {
rs1: Reg,
rs2: Reg,
imm: ImmB,
},
Bltu {
rs1: Reg,
rs2: Reg,
imm: ImmB,
},
Bgeu {
rs1: Reg,
rs2: Reg,
imm: ImmB,
},
Jalr {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Jal {
rd: Reg,
imm: ImmJ,
},
Lui {
rd: Reg,
imm: ImmU,
},
Auipc {
rd: Reg,
imm: ImmU,
},
Addi {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Slti {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Sltiu {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Xori {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Ori {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Andi {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Slli {
rd: Reg,
rs1: Reg,
shamt: ImmI,
},
Srli {
rd: Reg,
rs1: Reg,
shamt: ImmI,
},
Srai {
rd: Reg,
rs1: Reg,
shamt: ImmI,
},
Add {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sub {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sll {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Slt {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sltu {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Xor {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Srl {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Sra {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Or {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
And {
rd: Reg,
rs1: Reg,
rs2: Reg,
},
Lb {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Lh {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Lw {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Lbu {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Lhu {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Lwu {
rd: Reg,
rs1: Reg,
imm: ImmI,
},
Sb {
imm: ImmS,
rs1: Reg,
rs2: Reg,
},
Sh {
imm: ImmS,
rs1: Reg,
rs2: Reg,
},
Sw {
imm: ImmS,
rs1: Reg,
rs2: Reg,
},
Fence {
rd: Reg,
},
FenceI {
rd: Reg,
},
ECall,
EBreak,
}
Expand description
A struct for representing a fully decoded r32i instruction. Each variant matches an assembly instruction.
Note that pseudo-instructions, such as li
(load immediate) or mv
(move),
are short-hands used by RISC-V assemblers for short, common sequences of
basic instructions. This struct only the basic instructions themselves,
and so it does not list any pseudo-instructions.
Variants§
Beq
Bne
Blt
Bge
Bltu
Bgeu
Jalr
Jal
Lui
Auipc
Addi
Slti
Sltiu
Xori
Ori
Andi
Slli
Srli
Srai
Add
Sub
Sll
Slt
Sltu
Xor
Srl
Sra
Or
And
Lb
Lh
Lw
Lbu
Lhu
Lwu
Sb
Sh
Sw
Fence
FenceI
ECall
EBreak
Trait Implementations§
source§impl Clone for Instruction
impl Clone for Instruction
source§fn clone(&self) -> Instruction
fn clone(&self) -> Instruction
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for Instruction
impl Debug for Instruction
source§impl Display for Instruction
impl Display for Instruction
impl Copy for Instruction
Auto Trait Implementations§
impl RefUnwindSafe for Instruction
impl Send for Instruction
impl Sync for Instruction
impl Unpin for Instruction
impl UnwindSafe for Instruction
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more