[][src]Struct cranelift_codegen_meta::cdsl::instructions::InstructionContent

pub(crate) struct InstructionContent {
    pub name: String,
    pub camel_name: String,
    pub opcode_number: OpcodeNumber,
    pub doc: String,
    pub operands_in: Vec<Operand>,
    pub operands_out: Vec<Operand>,
    pub constraints: Vec<Constraint>,
    pub format: Rc<InstructionFormat>,
    pub polymorphic_info: Option<PolymorphicInfo>,
    pub value_opnums: Vec<usize>,
    pub imm_opnums: Vec<usize>,
    pub value_results: Vec<usize>,
    pub is_terminator: bool,
    pub is_branch: bool,
    pub is_indirect_branch: bool,
    pub is_call: bool,
    pub is_return: bool,
    pub is_ghost: bool,
    pub can_load: bool,
    pub can_store: bool,
    pub can_trap: bool,
    pub other_side_effects: bool,
    pub writes_cpu_flags: bool,
}

Fields

name: String

Instruction mnemonic, also becomes opcode name.

camel_name: Stringopcode_number: OpcodeNumberdoc: String

Documentation string.

operands_in: Vec<Operand>

Input operands. This can be a mix of SSA value operands and other operand kinds.

operands_out: Vec<Operand>

Output operands. The output operands must be SSA values or variable_args.

constraints: Vec<Constraint>

Instruction-specific TypeConstraints.

format: Rc<InstructionFormat>

Instruction format, automatically derived from the input operands.

polymorphic_info: Option<PolymorphicInfo>

One of the input or output operands is a free type variable. None if the instruction is not polymorphic, set otherwise.

value_opnums: Vec<usize>

Indices in operands_in of input operands that are values.

imm_opnums: Vec<usize>

Indices in operands_in of input operands that are immediates or entities.

value_results: Vec<usize>

Indices in operands_out of output operands that are values.

is_terminator: bool

True for instructions that terminate the block.

is_branch: bool

True for all branch or jump instructions.

is_indirect_branch: bool

True for all indirect branch or jump instructions.',

is_call: bool

Is this a call instruction?

is_return: bool

Is this a return instruction?

is_ghost: bool

Is this a ghost instruction?

can_load: bool

Can this instruction read from memory?

can_store: bool

Can this instruction write to memory?

can_trap: bool

Can this instruction cause a trap?

other_side_effects: bool

Does this instruction have other side effects besides can_* flags?

writes_cpu_flags: bool

Does this instruction write to CPU flags?

Methods

impl InstructionContent[src]

pub fn snake_name(&self) -> &str[src]

pub fn all_typevars(&self) -> Vec<&TypeVar>[src]

Trait Implementations

impl Debug for InstructionContent[src]

impl Display for InstructionContent[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<T> From<T> for T[src]

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

impl<T> ToString for T where
    T: Display + ?Sized
[src]

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.