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

Unary(imms=(), vals=1)

UnaryImm(imms=(imm: imm64), vals=0)

UnaryIeee32(imms=(imm: ieee32), vals=0)

UnaryIeee64(imms=(imm: ieee64), vals=0)

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

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

Binary(imms=(), vals=2)

BinaryImm(imms=(imm: imm64), vals=1)

Ternary(imms=(), vals=3)

MultiAry(imms=(), vals=0)

NullAry(imms=(), vals=0)

InsertLane(imms=(lane: uimm8), vals=2)

ExtractLane(imms=(lane: uimm8), vals=1)

IntCompare(imms=(cond: intcc), vals=2)

IntCompareImm(imms=(cond: intcc, imm: imm64), vals=1)

IntCond(imms=(cond: intcc), vals=1)

FloatCompare(imms=(cond: floatcc), vals=2)

FloatCond(imms=(cond: floatcc), vals=1)

IntSelect(imms=(cond: intcc), vals=3)

Jump(imms=(destination: ebb), vals=0)

Branch(imms=(destination: ebb), vals=1)

BranchInt(imms=(cond: intcc, destination: ebb), vals=1)

BranchFloat(imms=(cond: floatcc, destination: ebb), vals=1)

BranchIcmp(imms=(cond: intcc, destination: ebb), vals=2)

BranchTable(imms=(table: jump_table), vals=1)

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

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

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

Load(imms=(flags: memflags, offset: offset32), vals=1)

LoadComplex(imms=(flags: memflags, offset: offset32), vals=0)

Store(imms=(flags: memflags, offset: offset32), vals=2)

StoreComplex(imms=(flags: memflags, offset: offset32), vals=1)

StackLoad(imms=(stack_slot: stack_slot, offset: offset32), vals=0)

StackStore(imms=(stack_slot: stack_slot, offset: offset32), vals=1)

HeapAddr(imms=(heap: heap, imm: uimm32), vals=1)

RegMove(imms=(src: regunit, dst: regunit), vals=1)

CopySpecial(imms=(src: regunit, dst: regunit), vals=0)

RegSpill(imms=(src: regunit, dst: stack_slot), vals=1)

RegFill(imms=(src: stack_slot, dst: regunit), vals=1)

Trap(imms=(code: trapcode), vals=0)

CondTrap(imms=(code: trapcode), vals=1)

IntCondTrap(imms=(cond: intcc, code: trapcode), vals=1)

FloatCondTrap(imms=(cond: floatcc, code: trapcode), vals=1)

Trait Implementations

impl Copy for InstructionFormat
[src]

impl Clone for InstructionFormat
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl PartialEq for InstructionFormat
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Eq for InstructionFormat
[src]

impl Debug for InstructionFormat
[src]

Formats the value using the given formatter. Read more

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

Performs the conversion.

Auto Trait Implementations