[][src]Enum cranelift_codegen::ir::instructions::InstructionFormat

pub enum InstructionFormat {
    Binary,
    BinaryImm,
    Branch,
    BranchFloat,
    BranchIcmp,
    BranchInt,
    BranchTable,
    BranchTableBase,
    BranchTableEntry,
    Call,
    CallIndirect,
    CondTrap,
    CopySpecial,
    CopyToSsa,
    ExtractLane,
    FloatCompare,
    FloatCond,
    FloatCondTrap,
    FuncAddr,
    HeapAddr,
    IndirectJump,
    InsertLane,
    IntCompare,
    IntCompareImm,
    IntCond,
    IntCondTrap,
    IntSelect,
    Jump,
    Load,
    LoadComplex,
    MultiAry,
    NullAry,
    RegFill,
    RegMove,
    RegSpill,
    Shuffle,
    StackLoad,
    StackStore,
    Store,
    StoreComplex,
    TableAddr,
    Ternary,
    Trap,
    Unary,
    UnaryBool,
    UnaryConst,
    UnaryGlobalValue,
    UnaryIeee32,
    UnaryIeee64,
    UnaryImm,
}

An instruction format

Every opcode has a corresponding instruction format which is represented by both the InstructionFormat and the InstructionData enums.

Variants

Binary

Binary(imms=(), vals=2)

BinaryImm

BinaryImm(imms=(imm: ir::immediates::Imm64), vals=1)

Branch

Branch(imms=(destination: ir::Block), vals=1)

BranchFloat

BranchFloat(imms=(cond: ir::condcodes::FloatCC, destination: ir::Block), vals=1)

BranchIcmp

BranchIcmp(imms=(cond: ir::condcodes::IntCC, destination: ir::Block), vals=2)

BranchInt

BranchInt(imms=(cond: ir::condcodes::IntCC, destination: ir::Block), vals=1)

BranchTable

BranchTable(imms=(destination: ir::Block, table: ir::JumpTable), vals=1)

BranchTableBase

BranchTableBase(imms=(table: ir::JumpTable), vals=0)

BranchTableEntry

BranchTableEntry(imms=(imm: ir::immediates::Uimm8, table: ir::JumpTable), vals=2)

Call

Call(imms=(func_ref: ir::FuncRef), vals=0)

CallIndirect

CallIndirect(imms=(sig_ref: ir::SigRef), vals=1)

CondTrap

CondTrap(imms=(code: ir::TrapCode), vals=1)

CopySpecial

CopySpecial(imms=(src: isa::RegUnit, dst: isa::RegUnit), vals=0)

CopyToSsa

CopyToSsa(imms=(src: isa::RegUnit), vals=0)

ExtractLane

ExtractLane(imms=(lane: ir::immediates::Uimm8), vals=1)

FloatCompare

FloatCompare(imms=(cond: ir::condcodes::FloatCC), vals=2)

FloatCond

FloatCond(imms=(cond: ir::condcodes::FloatCC), vals=1)

FloatCondTrap

FloatCondTrap(imms=(cond: ir::condcodes::FloatCC, code: ir::TrapCode), vals=1)

FuncAddr

FuncAddr(imms=(func_ref: ir::FuncRef), vals=0)

HeapAddr

HeapAddr(imms=(heap: ir::Heap, imm: ir::immediates::Uimm32), vals=1)

IndirectJump

IndirectJump(imms=(table: ir::JumpTable), vals=1)

InsertLane

InsertLane(imms=(lane: ir::immediates::Uimm8), vals=2)

IntCompare

IntCompare(imms=(cond: ir::condcodes::IntCC), vals=2)

IntCompareImm

IntCompareImm(imms=(cond: ir::condcodes::IntCC, imm: ir::immediates::Imm64), vals=1)

IntCond

IntCond(imms=(cond: ir::condcodes::IntCC), vals=1)

IntCondTrap

IntCondTrap(imms=(cond: ir::condcodes::IntCC, code: ir::TrapCode), vals=1)

IntSelect

IntSelect(imms=(cond: ir::condcodes::IntCC), vals=3)

Jump

Jump(imms=(destination: ir::Block), vals=0)

Load

Load(imms=(flags: ir::MemFlags, offset: ir::immediates::Offset32), vals=1)

LoadComplex

LoadComplex(imms=(flags: ir::MemFlags, offset: ir::immediates::Offset32), vals=0)

MultiAry

MultiAry(imms=(), vals=0)

NullAry

NullAry(imms=(), vals=0)

RegFill

RegFill(imms=(src: ir::StackSlot, dst: isa::RegUnit), vals=1)

RegMove

RegMove(imms=(src: isa::RegUnit, dst: isa::RegUnit), vals=1)

RegSpill

RegSpill(imms=(src: isa::RegUnit, dst: ir::StackSlot), vals=1)

Shuffle

Shuffle(imms=(mask: ir::Immediate), vals=2)

StackLoad

StackLoad(imms=(stack_slot: ir::StackSlot, offset: ir::immediates::Offset32), vals=0)

StackStore

StackStore(imms=(stack_slot: ir::StackSlot, offset: ir::immediates::Offset32), vals=1)

Store

Store(imms=(flags: ir::MemFlags, offset: ir::immediates::Offset32), vals=2)

StoreComplex

StoreComplex(imms=(flags: ir::MemFlags, offset: ir::immediates::Offset32), vals=1)

TableAddr

TableAddr(imms=(table: ir::Table, offset: ir::immediates::Offset32), vals=1)

Ternary

Ternary(imms=(), vals=3)

Trap

Trap(imms=(code: ir::TrapCode), vals=0)

Unary

Unary(imms=(), vals=1)

UnaryBool

UnaryBool(imms=(imm: bool), vals=0)

UnaryConst

UnaryConst(imms=(constant_handle: ir::Constant), vals=0)

UnaryGlobalValue

UnaryGlobalValue(imms=(global_value: ir::GlobalValue), vals=0)

UnaryIeee32

UnaryIeee32(imms=(imm: ir::immediates::Ieee32), vals=0)

UnaryIeee64

UnaryIeee64(imms=(imm: ir::immediates::Ieee64), vals=0)

UnaryImm

UnaryImm(imms=(imm: ir::immediates::Imm64), vals=0)

Trait Implementations

impl Clone for InstructionFormat[src]

impl Copy for InstructionFormat[src]

impl Debug for InstructionFormat[src]

impl Eq for InstructionFormat[src]

impl<'a> From<&'a InstructionData> for InstructionFormat[src]

impl PartialEq<InstructionFormat> for InstructionFormat[src]

impl StructuralEq for InstructionFormat[src]

impl StructuralPartialEq for InstructionFormat[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.