#[repr(u16)]pub enum Instruction {
Show 32 variants
Nop {
length: NonZero<u32>,
},
SetPrivate_Label {
label: Label,
},
SetPublic_Label {
label: Label,
},
Ret,
Mov_RegImm64 {
dst: GPR,
src: Immediate64,
},
Mov_RegImm {
dst: GPR,
src: Immediate,
},
Mov_MemImm {
dst: Memory,
src: Immediate,
},
Mov_RegReg {
dst: GPR,
src: GPR,
},
Mov_MemReg {
dst: Memory,
src: GPR,
},
Mov_RegMem {
dst: GPR,
src: Memory,
},
Add_RegImm {
dst: GPR,
src: Immediate,
},
Add_MemImm {
dst: Memory,
src: Immediate,
},
Add_RegReg {
dst: GPR,
src: GPR,
},
Add_MemReg {
dst: Memory,
src: GPR,
},
Add_RegMem {
dst: GPR,
src: Memory,
},
Sub_RegImm {
dst: GPR,
src: Immediate,
},
Sub_MemImm {
dst: Memory,
src: Immediate,
},
Sub_RegReg {
dst: GPR,
src: GPR,
},
Sub_MemReg {
dst: Memory,
src: GPR,
},
Sub_RegMem {
dst: GPR,
src: Memory,
},
Xor_RegImm {
dst: GPR,
src: Immediate,
},
Xor_MemImm {
dst: Memory,
src: Immediate,
},
Xor_RegReg {
dst: GPR,
src: GPR,
},
Xor_MemReg {
dst: Memory,
src: GPR,
},
Xor_RegMem {
dst: GPR,
src: Memory,
},
Jump_Label {
dst: Label,
},
Jump_Reg {
dst: GPR,
},
Jump_Mem {
dst: Memory,
},
Call_Label {
dst: Label,
},
Call_Reg {
dst: GPR,
},
Call_Mem {
dst: Memory,
},
CondJump_Label {
condition: Condition,
dst: Label,
},
}
Expand description
Represents custom assembly language instructions.
Variants§
Nop
nop
extended to specified length
SetPrivate_Label
Pseudoinstruction: sets label at current position. “Private” means that the label won’t be visible outside the compiled code.
SetPublic_Label
Pseudoinstruction: sets label at current position. “Public” means that the label will be visible and reachable from outside the compiled code.
Ret
ret
Mov_RegImm64
Mov_RegImm
mov reg, imm
Mov_MemImm
mov [mem], imm
Mov_RegReg
mov reg, reg
Mov_MemReg
mov [mem], reg
Mov_RegMem
mov reg, [mem]
Add_RegImm
add reg, imm
Add_MemImm
add [mem], imm
Add_RegReg
add reg, reg
Add_MemReg
add [mem], reg
Add_RegMem
add reg, [mem]
Sub_RegImm
sub reg, imm
Sub_MemImm
sub [mem], imm
Sub_RegReg
sub reg, reg
Sub_MemReg
sub [mem], reg
Sub_RegMem
sub reg, [mem]
Xor_RegImm
xor reg, imm
Xor_MemImm
xor [mem], imm
Xor_RegReg
xor reg, reg
Xor_MemReg
xor [mem], reg
Xor_RegMem
xor reg, [mem]
Jump_Label
Pseudoinstruction: jumps to label.
Jump_Reg
jmp reg
Jump_Mem
jmp [mem]
Call_Label
Pseudoinstruction: calls label.
Call_Reg
call reg
Call_Mem
call [mem]
CondJump_Label
Pseudoinstruction: conditionally jumps to label.
Trait Implementations§
Source§impl Clone for Instruction
impl Clone for Instruction
Source§fn clone(&self) -> Instruction
fn clone(&self) -> Instruction
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read more