Enum cranelift_codegen::ir::instructions::InstructionFormat [−][src]
pub enum InstructionFormat {
Unary,
UnaryImm,
UnaryIeee32,
UnaryIeee64,
UnaryBool,
UnaryGlobalValue,
Binary,
BinaryImm,
Ternary,
MultiAry,
NullAry,
InsertLane,
ExtractLane,
IntCompare,
IntCompareImm,
IntCond,
FloatCompare,
FloatCond,
IntSelect,
Jump,
Branch,
BranchInt,
BranchFloat,
BranchIcmp,
BranchTable,
Call,
CallIndirect,
FuncAddr,
Load,
LoadComplex,
Store,
StoreComplex,
StackLoad,
StackStore,
HeapAddr,
RegMove,
CopySpecial,
RegSpill,
RegFill,
Trap,
CondTrap,
IntCondTrap,
FloatCondTrap,
}An instruction format
Every opcode has a corresponding instruction format
which is represented by both the InstructionFormat
and the InstructionData enums.
Variants
UnaryUnary(imms=(), vals=1)
UnaryImmUnaryImm(imms=(imm: imm64), vals=0)
UnaryIeee32UnaryIeee32(imms=(imm: ieee32), vals=0)
UnaryIeee64UnaryIeee64(imms=(imm: ieee64), vals=0)
UnaryBoolUnaryBool(imms=(imm: bool), vals=0)
UnaryGlobalValueUnaryGlobalValue(imms=(global_value: global_value), vals=0)
BinaryBinary(imms=(), vals=2)
BinaryImmBinaryImm(imms=(imm: imm64), vals=1)
TernaryTernary(imms=(), vals=3)
MultiAryMultiAry(imms=(), vals=0)
NullAryNullAry(imms=(), vals=0)
InsertLaneInsertLane(imms=(lane: uimm8), vals=2)
ExtractLaneExtractLane(imms=(lane: uimm8), vals=1)
IntCompareIntCompare(imms=(cond: intcc), vals=2)
IntCompareImmIntCompareImm(imms=(cond: intcc, imm: imm64), vals=1)
IntCondIntCond(imms=(cond: intcc), vals=1)
FloatCompareFloatCompare(imms=(cond: floatcc), vals=2)
FloatCondFloatCond(imms=(cond: floatcc), vals=1)
IntSelectIntSelect(imms=(cond: intcc), vals=3)
JumpJump(imms=(destination: ebb), vals=0)
BranchBranch(imms=(destination: ebb), vals=1)
BranchIntBranchInt(imms=(cond: intcc, destination: ebb), vals=1)
BranchFloatBranchFloat(imms=(cond: floatcc, destination: ebb), vals=1)
BranchIcmpBranchIcmp(imms=(cond: intcc, destination: ebb), vals=2)
BranchTableBranchTable(imms=(table: jump_table), vals=1)
CallCall(imms=(func_ref: func_ref), vals=0)
CallIndirectCallIndirect(imms=(sig_ref: sig_ref), vals=1)
FuncAddrFuncAddr(imms=(func_ref: func_ref), vals=0)
LoadLoad(imms=(flags: memflags, offset: offset32), vals=1)
LoadComplexLoadComplex(imms=(flags: memflags, offset: offset32), vals=0)
StoreStore(imms=(flags: memflags, offset: offset32), vals=2)
StoreComplexStoreComplex(imms=(flags: memflags, offset: offset32), vals=1)
StackLoadStackLoad(imms=(stack_slot: stack_slot, offset: offset32), vals=0)
StackStoreStackStore(imms=(stack_slot: stack_slot, offset: offset32), vals=1)
HeapAddrHeapAddr(imms=(heap: heap, imm: uimm32), vals=1)
RegMoveRegMove(imms=(src: regunit, dst: regunit), vals=1)
CopySpecialCopySpecial(imms=(src: regunit, dst: regunit), vals=0)
RegSpillRegSpill(imms=(src: regunit, dst: stack_slot), vals=1)
RegFillRegFill(imms=(src: stack_slot, dst: regunit), vals=1)
TrapTrap(imms=(code: trapcode), vals=0)
CondTrapCondTrap(imms=(code: trapcode), vals=1)
IntCondTrapIntCondTrap(imms=(cond: intcc, code: trapcode), vals=1)
FloatCondTrapFloatCondTrap(imms=(cond: floatcc, code: trapcode), vals=1)
Trait Implementations
impl Copy for InstructionFormat[src]
impl Copy for InstructionFormatimpl Clone for InstructionFormat[src]
impl Clone for InstructionFormatfn clone(&self) -> InstructionFormat[src]
fn clone(&self) -> InstructionFormatReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl PartialEq for InstructionFormat[src]
impl PartialEq for InstructionFormatfn eq(&self, other: &InstructionFormat) -> bool[src]
fn eq(&self, other: &InstructionFormat) -> boolThis method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, other: &Rhs) -> bool1.0.0[src]
fn ne(&self, other: &Rhs) -> boolThis method tests for !=.
impl Eq for InstructionFormat[src]
impl Eq for InstructionFormatimpl Debug for InstructionFormat[src]
impl Debug for InstructionFormatfn fmt(&self, f: &mut Formatter) -> Result[src]
fn fmt(&self, f: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl<'a> From<&'a InstructionData> for InstructionFormat[src]
impl<'a> From<&'a InstructionData> for InstructionFormatfn from(inst: &'a InstructionData) -> Self[src]
fn from(inst: &'a InstructionData) -> SelfPerforms the conversion.
Auto Trait Implementations
impl Send for InstructionFormat
impl Send for InstructionFormatimpl Sync for InstructionFormat
impl Sync for InstructionFormat