waffle

Enum Operator

Source
pub enum Operator {
Show 486 variants Unreachable, Nop, Call { function_index: Func, }, CallIndirect { sig_index: Signature, table_index: Table, }, Select, TypedSelect { ty: Type, }, GlobalGet { global_index: Global, }, GlobalSet { global_index: Global, }, I32Load { memory: MemoryArg, }, I64Load { memory: MemoryArg, }, F32Load { memory: MemoryArg, }, F64Load { memory: MemoryArg, }, I32Load8S { memory: MemoryArg, }, I32Load8U { memory: MemoryArg, }, I32Load16S { memory: MemoryArg, }, I32Load16U { memory: MemoryArg, }, I64Load8S { memory: MemoryArg, }, I64Load8U { memory: MemoryArg, }, I64Load16S { memory: MemoryArg, }, I64Load16U { memory: MemoryArg, }, I64Load32S { memory: MemoryArg, }, I64Load32U { memory: MemoryArg, }, I32Store { memory: MemoryArg, }, I64Store { memory: MemoryArg, }, F32Store { memory: MemoryArg, }, F64Store { memory: MemoryArg, }, I32Store8 { memory: MemoryArg, }, I32Store16 { memory: MemoryArg, }, I64Store8 { memory: MemoryArg, }, I64Store16 { memory: MemoryArg, }, I64Store32 { memory: MemoryArg, }, I32Const { value: u32, }, I64Const { value: u64, }, F32Const { value: u32, }, F64Const { value: u64, }, I32Eqz, I32Eq, I32Ne, I32LtS, I32LtU, I32GtS, I32GtU, I32LeS, I32LeU, I32GeS, I32GeU, I64Eqz, I64Eq, I64Ne, I64LtS, I64LtU, I64GtU, I64GtS, I64LeS, I64LeU, I64GeS, I64GeU, F32Eq, F32Ne, F32Lt, F32Gt, F32Le, F32Ge, F64Eq, F64Ne, F64Lt, F64Gt, F64Le, F64Ge, I32Clz, I32Ctz, I32Popcnt, I32Add, I32Sub, I32Mul, I32DivS, I32DivU, I32RemS, I32RemU, I32And, I32Or, I32Xor, I32Shl, I32ShrS, I32ShrU, I32Rotl, I32Rotr, I64Clz, I64Ctz, I64Popcnt, I64Add, I64Sub, I64Mul, I64DivS, I64DivU, I64RemS, I64RemU, I64And, I64Or, I64Xor, I64Shl, I64ShrS, I64ShrU, I64Rotl, I64Rotr, F32Abs, F32Neg, F32Ceil, F32Floor, F32Trunc, F32Nearest, F32Sqrt, F32Add, F32Sub, F32Mul, F32Div, F32Min, F32Max, F32Copysign, F64Abs, F64Neg, F64Ceil, F64Floor, F64Trunc, F64Nearest, F64Sqrt, F64Add, F64Sub, F64Mul, F64Div, F64Min, F64Max, F64Copysign, I32WrapI64, I32TruncF32S, I32TruncF32U, I32TruncF64S, I32TruncF64U, I64ExtendI32S, I64ExtendI32U, I64TruncF32S, I64TruncF32U, I64TruncF64S, I64TruncF64U, F32ConvertI32S, F32ConvertI32U, F32ConvertI64S, F32ConvertI64U, F32DemoteF64, F64ConvertI32S, F64ConvertI32U, F64ConvertI64S, F64ConvertI64U, F64PromoteF32, I32Extend8S, I32Extend16S, I64Extend8S, I64Extend16S, I64Extend32S, I32TruncSatF32S, I32TruncSatF32U, I32TruncSatF64S, I32TruncSatF64U, I64TruncSatF32S, I64TruncSatF32U, I64TruncSatF64S, I64TruncSatF64U, F32ReinterpretI32, F64ReinterpretI64, I32ReinterpretF32, I64ReinterpretF64, TableGet { table_index: Table, }, TableSet { table_index: Table, }, TableGrow { table_index: Table, }, TableSize { table_index: Table, }, MemorySize { mem: Memory, }, MemoryGrow { mem: Memory, }, V128Load { memory: MemoryArg, }, V128Load8x8S { memory: MemoryArg, }, V128Load8x8U { memory: MemoryArg, }, V128Load16x4S { memory: MemoryArg, }, V128Load16x4U { memory: MemoryArg, }, V128Load32x2S { memory: MemoryArg, }, V128Load32x2U { memory: MemoryArg, }, V128Load8Splat { memory: MemoryArg, }, V128Load16Splat { memory: MemoryArg, }, V128Load32Splat { memory: MemoryArg, }, V128Load64Splat { memory: MemoryArg, }, V128Load32Zero { memory: MemoryArg, }, V128Load64Zero { memory: MemoryArg, }, V128Store { memory: MemoryArg, }, V128Load8Lane { memory: MemoryArg, lane: u8, }, V128Load16Lane { memory: MemoryArg, lane: u8, }, V128Load32Lane { memory: MemoryArg, lane: u8, }, V128Load64Lane { memory: MemoryArg, lane: u8, }, V128Store8Lane { memory: MemoryArg, lane: u8, }, V128Store16Lane { memory: MemoryArg, lane: u8, }, V128Store32Lane { memory: MemoryArg, lane: u8, }, V128Store64Lane { memory: MemoryArg, lane: u8, }, V128Const { value: u128, }, I8x16Shuffle { lanes: [u8; 16], }, I8x16ExtractLaneS { lane: u8, }, I8x16ExtractLaneU { lane: u8, }, I8x16ReplaceLane { lane: u8, }, I16x8ExtractLaneS { lane: u8, }, I16x8ExtractLaneU { lane: u8, }, I16x8ReplaceLane { lane: u8, }, I32x4ExtractLane { lane: u8, }, I32x4ReplaceLane { lane: u8, }, I64x2ExtractLane { lane: u8, }, I64x2ReplaceLane { lane: u8, }, F32x4ExtractLane { lane: u8, }, F32x4ReplaceLane { lane: u8, }, F64x2ExtractLane { lane: u8, }, F64x2ReplaceLane { lane: u8, }, I8x16Swizzle, I8x16Splat, I16x8Splat, I32x4Splat, I64x2Splat, F32x4Splat, F64x2Splat, I8x16Eq, I8x16Ne, I8x16LtS, I8x16LtU, I8x16GtS, I8x16GtU, I8x16LeS, I8x16LeU, I8x16GeS, I8x16GeU, I16x8Eq, I16x8Ne, I16x8LtS, I16x8LtU, I16x8GtS, I16x8GtU, I16x8LeS, I16x8LeU, I16x8GeS, I16x8GeU, I32x4Eq, I32x4Ne, I32x4LtS, I32x4LtU, I32x4GtS, I32x4GtU, I32x4LeS, I32x4LeU, I32x4GeS, I32x4GeU, I64x2Eq, I64x2Ne, I64x2LtS, I64x2GtS, I64x2LeS, I64x2GeS, F32x4Eq, F32x4Ne, F32x4Lt, F32x4Gt, F32x4Le, F32x4Ge, F64x2Eq, F64x2Ne, F64x2Lt, F64x2Gt, F64x2Le, F64x2Ge, V128Not, V128And, V128AndNot, V128Or, V128Xor, V128Bitselect, V128AnyTrue, I8x16Abs, I8x16Neg, I8x16Popcnt, I8x16AllTrue, I8x16Bitmask, I8x16NarrowI16x8S, I8x16NarrowI16x8U, I8x16Shl, I8x16ShrS, I8x16ShrU, I8x16Add, I8x16AddSatS, I8x16AddSatU, I8x16Sub, I8x16SubSatS, I8x16SubSatU, I8x16MinS, I8x16MinU, I8x16MaxS, I8x16MaxU, I8x16AvgrU, I16x8ExtAddPairwiseI8x16S, I16x8ExtAddPairwiseI8x16U, I16x8Abs, I16x8Neg, I16x8Q15MulrSatS, I16x8AllTrue, I16x8Bitmask, I16x8NarrowI32x4S, I16x8NarrowI32x4U, I16x8ExtendLowI8x16S, I16x8ExtendHighI8x16S, I16x8ExtendLowI8x16U, I16x8ExtendHighI8x16U, I16x8Shl, I16x8ShrS, I16x8ShrU, I16x8Add, I16x8AddSatS, I16x8AddSatU, I16x8Sub, I16x8SubSatS, I16x8SubSatU, I16x8Mul, I16x8MinS, I16x8MinU, I16x8MaxS, I16x8MaxU, I16x8AvgrU, I16x8ExtMulLowI8x16S, I16x8ExtMulHighI8x16S, I16x8ExtMulLowI8x16U, I16x8ExtMulHighI8x16U, I32x4ExtAddPairwiseI16x8S, I32x4ExtAddPairwiseI16x8U, I32x4Abs, I32x4Neg, I32x4AllTrue, I32x4Bitmask, I32x4ExtendLowI16x8S, I32x4ExtendHighI16x8S, I32x4ExtendLowI16x8U, I32x4ExtendHighI16x8U, I32x4Shl, I32x4ShrS, I32x4ShrU, I32x4Add, I32x4Sub, I32x4Mul, I32x4MinS, I32x4MinU, I32x4MaxS, I32x4MaxU, I32x4DotI16x8S, I32x4ExtMulLowI16x8S, I32x4ExtMulHighI16x8S, I32x4ExtMulLowI16x8U, I32x4ExtMulHighI16x8U, I64x2Abs, I64x2Neg, I64x2AllTrue, I64x2Bitmask, I64x2ExtendLowI32x4S, I64x2ExtendHighI32x4S, I64x2ExtendLowI32x4U, I64x2ExtendHighI32x4U, I64x2Shl, I64x2ShrS, I64x2ShrU, I64x2Add, I64x2Sub, I64x2Mul, I64x2ExtMulLowI32x4S, I64x2ExtMulHighI32x4S, I64x2ExtMulLowI32x4U, I64x2ExtMulHighI32x4U, F32x4Ceil, F32x4Floor, F32x4Trunc, F32x4Nearest, F32x4Abs, F32x4Neg, F32x4Sqrt, F32x4Add, F32x4Sub, F32x4Mul, F32x4Div, F32x4Min, F32x4Max, F32x4PMin, F32x4PMax, F64x2Ceil, F64x2Floor, F64x2Trunc, F64x2Nearest, F64x2Abs, F64x2Neg, F64x2Sqrt, F64x2Add, F64x2Sub, F64x2Mul, F64x2Div, F64x2Min, F64x2Max, F64x2PMin, F64x2PMax, I32x4TruncSatF32x4S, I32x4TruncSatF32x4U, F32x4ConvertI32x4S, F32x4ConvertI32x4U, I32x4TruncSatF64x2SZero, I32x4TruncSatF64x2UZero, F64x2ConvertLowI32x4S, F64x2ConvertLowI32x4U, F32x4DemoteF64x2Zero, F64x2PromoteLowF32x4, CallRef { sig_index: Signature, }, RefIsNull, RefNull { ty: Type, }, RefFunc { func_index: Func, }, MemoryCopy { dst_mem: Memory, src_mem: Memory, }, MemoryFill { mem: Memory, }, MemoryAtomicNotify { memarg: MemoryArg, }, MemoryAtomicWait32 { memarg: MemoryArg, }, MemoryAtomicWait64 { memarg: MemoryArg, }, AtomicFence, I32AtomicLoad { memarg: MemoryArg, }, I64AtomicLoad { memarg: MemoryArg, }, I32AtomicLoad8U { memarg: MemoryArg, }, I32AtomicLoad16U { memarg: MemoryArg, }, I64AtomicLoad8U { memarg: MemoryArg, }, I64AtomicLoad16U { memarg: MemoryArg, }, I64AtomicLoad32U { memarg: MemoryArg, }, I32AtomicStore { memarg: MemoryArg, }, I64AtomicStore { memarg: MemoryArg, }, I32AtomicStore8 { memarg: MemoryArg, }, I32AtomicStore16 { memarg: MemoryArg, }, I64AtomicStore8 { memarg: MemoryArg, }, I64AtomicStore16 { memarg: MemoryArg, }, I64AtomicStore32 { memarg: MemoryArg, }, I32AtomicRmwAdd { memarg: MemoryArg, }, I64AtomicRmwAdd { memarg: MemoryArg, }, I32AtomicRmw8AddU { memarg: MemoryArg, }, I32AtomicRmw16AddU { memarg: MemoryArg, }, I64AtomicRmw8AddU { memarg: MemoryArg, }, I64AtomicRmw16AddU { memarg: MemoryArg, }, I64AtomicRmw32AddU { memarg: MemoryArg, }, I32AtomicRmwSub { memarg: MemoryArg, }, I64AtomicRmwSub { memarg: MemoryArg, }, I32AtomicRmw8SubU { memarg: MemoryArg, }, I32AtomicRmw16SubU { memarg: MemoryArg, }, I64AtomicRmw8SubU { memarg: MemoryArg, }, I64AtomicRmw16SubU { memarg: MemoryArg, }, I64AtomicRmw32SubU { memarg: MemoryArg, }, I32AtomicRmwAnd { memarg: MemoryArg, }, I64AtomicRmwAnd { memarg: MemoryArg, }, I32AtomicRmw8AndU { memarg: MemoryArg, }, I32AtomicRmw16AndU { memarg: MemoryArg, }, I64AtomicRmw8AndU { memarg: MemoryArg, }, I64AtomicRmw16AndU { memarg: MemoryArg, }, I64AtomicRmw32AndU { memarg: MemoryArg, }, I32AtomicRmwOr { memarg: MemoryArg, }, I64AtomicRmwOr { memarg: MemoryArg, }, I32AtomicRmw8OrU { memarg: MemoryArg, }, I32AtomicRmw16OrU { memarg: MemoryArg, }, I64AtomicRmw8OrU { memarg: MemoryArg, }, I64AtomicRmw16OrU { memarg: MemoryArg, }, I64AtomicRmw32OrU { memarg: MemoryArg, }, I32AtomicRmwXor { memarg: MemoryArg, }, I64AtomicRmwXor { memarg: MemoryArg, }, I32AtomicRmw8XorU { memarg: MemoryArg, }, I32AtomicRmw16XorU { memarg: MemoryArg, }, I64AtomicRmw8XorU { memarg: MemoryArg, }, I64AtomicRmw16XorU { memarg: MemoryArg, }, I64AtomicRmw32XorU { memarg: MemoryArg, }, I32AtomicRmwXchg { memarg: MemoryArg, }, I64AtomicRmwXchg { memarg: MemoryArg, }, I32AtomicRmw8XchgU { memarg: MemoryArg, }, I32AtomicRmw16XchgU { memarg: MemoryArg, }, I64AtomicRmw8XchgU { memarg: MemoryArg, }, I64AtomicRmw16XchgU { memarg: MemoryArg, }, I64AtomicRmw32XchgU { memarg: MemoryArg, }, I32AtomicRmwCmpxchg { memarg: MemoryArg, }, I64AtomicRmwCmpxchg { memarg: MemoryArg, }, I32AtomicRmw8CmpxchgU { memarg: MemoryArg, }, I32AtomicRmw16CmpxchgU { memarg: MemoryArg, }, I64AtomicRmw8CmpxchgU { memarg: MemoryArg, }, I64AtomicRmw16CmpxchgU { memarg: MemoryArg, }, I64AtomicRmw32CmpxchgU { memarg: MemoryArg, },
}
Expand description

An operator in the IR, consuming arguments and producing results when executed.

Variants§

§

Unreachable

§

Nop

§

Call

Fields

§function_index: Func
§

CallIndirect

Fields

§sig_index: Signature
§table_index: Table
§

Select

§

TypedSelect

Fields

§ty: Type
§

GlobalGet

Fields

§global_index: Global
§

GlobalSet

Fields

§global_index: Global
§

I32Load

Fields

§memory: MemoryArg
§

I64Load

Fields

§memory: MemoryArg
§

F32Load

Fields

§memory: MemoryArg
§

F64Load

Fields

§memory: MemoryArg
§

I32Load8S

Fields

§memory: MemoryArg
§

I32Load8U

Fields

§memory: MemoryArg
§

I32Load16S

Fields

§memory: MemoryArg
§

I32Load16U

Fields

§memory: MemoryArg
§

I64Load8S

Fields

§memory: MemoryArg
§

I64Load8U

Fields

§memory: MemoryArg
§

I64Load16S

Fields

§memory: MemoryArg
§

I64Load16U

Fields

§memory: MemoryArg
§

I64Load32S

Fields

§memory: MemoryArg
§

I64Load32U

Fields

§memory: MemoryArg
§

I32Store

Fields

§memory: MemoryArg
§

I64Store

Fields

§memory: MemoryArg
§

F32Store

Fields

§memory: MemoryArg
§

F64Store

Fields

§memory: MemoryArg
§

I32Store8

Fields

§memory: MemoryArg
§

I32Store16

Fields

§memory: MemoryArg
§

I64Store8

Fields

§memory: MemoryArg
§

I64Store16

Fields

§memory: MemoryArg
§

I64Store32

Fields

§memory: MemoryArg
§

I32Const

Fields

§value: u32
§

I64Const

Fields

§value: u64
§

F32Const

Fields

§value: u32
§

F64Const

Fields

§value: u64
§

I32Eqz

§

I32Eq

§

I32Ne

§

I32LtS

§

I32LtU

§

I32GtS

§

I32GtU

§

I32LeS

§

I32LeU

§

I32GeS

§

I32GeU

§

I64Eqz

§

I64Eq

§

I64Ne

§

I64LtS

§

I64LtU

§

I64GtU

§

I64GtS

§

I64LeS

§

I64LeU

§

I64GeS

§

I64GeU

§

F32Eq

§

F32Ne

§

F32Lt

§

F32Gt

§

F32Le

§

F32Ge

§

F64Eq

§

F64Ne

§

F64Lt

§

F64Gt

§

F64Le

§

F64Ge

§

I32Clz

§

I32Ctz

§

I32Popcnt

§

I32Add

§

I32Sub

§

I32Mul

§

I32DivS

§

I32DivU

§

I32RemS

§

I32RemU

§

I32And

§

I32Or

§

I32Xor

§

I32Shl

§

I32ShrS

§

I32ShrU

§

I32Rotl

§

I32Rotr

§

I64Clz

§

I64Ctz

§

I64Popcnt

§

I64Add

§

I64Sub

§

I64Mul

§

I64DivS

§

I64DivU

§

I64RemS

§

I64RemU

§

I64And

§

I64Or

§

I64Xor

§

I64Shl

§

I64ShrS

§

I64ShrU

§

I64Rotl

§

I64Rotr

§

F32Abs

§

F32Neg

§

F32Ceil

§

F32Floor

§

F32Trunc

§

F32Nearest

§

F32Sqrt

§

F32Add

§

F32Sub

§

F32Mul

§

F32Div

§

F32Min

§

F32Max

§

F32Copysign

§

F64Abs

§

F64Neg

§

F64Ceil

§

F64Floor

§

F64Trunc

§

F64Nearest

§

F64Sqrt

§

F64Add

§

F64Sub

§

F64Mul

§

F64Div

§

F64Min

§

F64Max

§

F64Copysign

§

I32WrapI64

§

I32TruncF32S

§

I32TruncF32U

§

I32TruncF64S

§

I32TruncF64U

§

I64ExtendI32S

§

I64ExtendI32U

§

I64TruncF32S

§

I64TruncF32U

§

I64TruncF64S

§

I64TruncF64U

§

F32ConvertI32S

§

F32ConvertI32U

§

F32ConvertI64S

§

F32ConvertI64U

§

F32DemoteF64

§

F64ConvertI32S

§

F64ConvertI32U

§

F64ConvertI64S

§

F64ConvertI64U

§

F64PromoteF32

§

I32Extend8S

§

I32Extend16S

§

I64Extend8S

§

I64Extend16S

§

I64Extend32S

§

I32TruncSatF32S

§

I32TruncSatF32U

§

I32TruncSatF64S

§

I32TruncSatF64U

§

I64TruncSatF32S

§

I64TruncSatF32U

§

I64TruncSatF64S

§

I64TruncSatF64U

§

F32ReinterpretI32

§

F64ReinterpretI64

§

I32ReinterpretF32

§

I64ReinterpretF64

§

TableGet

Fields

§table_index: Table
§

TableSet

Fields

§table_index: Table
§

TableGrow

Fields

§table_index: Table
§

TableSize

Fields

§table_index: Table
§

MemorySize

Fields

§

MemoryGrow

Fields

§

V128Load

Fields

§memory: MemoryArg
§

V128Load8x8S

Fields

§memory: MemoryArg
§

V128Load8x8U

Fields

§memory: MemoryArg
§

V128Load16x4S

Fields

§memory: MemoryArg
§

V128Load16x4U

Fields

§memory: MemoryArg
§

V128Load32x2S

Fields

§memory: MemoryArg
§

V128Load32x2U

Fields

§memory: MemoryArg
§

V128Load8Splat

Fields

§memory: MemoryArg
§

V128Load16Splat

Fields

§memory: MemoryArg
§

V128Load32Splat

Fields

§memory: MemoryArg
§

V128Load64Splat

Fields

§memory: MemoryArg
§

V128Load32Zero

Fields

§memory: MemoryArg
§

V128Load64Zero

Fields

§memory: MemoryArg
§

V128Store

Fields

§memory: MemoryArg
§

V128Load8Lane

Fields

§memory: MemoryArg
§lane: u8
§

V128Load16Lane

Fields

§memory: MemoryArg
§lane: u8
§

V128Load32Lane

Fields

§memory: MemoryArg
§lane: u8
§

V128Load64Lane

Fields

§memory: MemoryArg
§lane: u8
§

V128Store8Lane

Fields

§memory: MemoryArg
§lane: u8
§

V128Store16Lane

Fields

§memory: MemoryArg
§lane: u8
§

V128Store32Lane

Fields

§memory: MemoryArg
§lane: u8
§

V128Store64Lane

Fields

§memory: MemoryArg
§lane: u8
§

V128Const

Fields

§value: u128
§

I8x16Shuffle

Fields

§lanes: [u8; 16]
§

I8x16ExtractLaneS

Fields

§lane: u8
§

I8x16ExtractLaneU

Fields

§lane: u8
§

I8x16ReplaceLane

Fields

§lane: u8
§

I16x8ExtractLaneS

Fields

§lane: u8
§

I16x8ExtractLaneU

Fields

§lane: u8
§

I16x8ReplaceLane

Fields

§lane: u8
§

I32x4ExtractLane

Fields

§lane: u8
§

I32x4ReplaceLane

Fields

§lane: u8
§

I64x2ExtractLane

Fields

§lane: u8
§

I64x2ReplaceLane

Fields

§lane: u8
§

F32x4ExtractLane

Fields

§lane: u8
§

F32x4ReplaceLane

Fields

§lane: u8
§

F64x2ExtractLane

Fields

§lane: u8
§

F64x2ReplaceLane

Fields

§lane: u8
§

I8x16Swizzle

§

I8x16Splat

§

I16x8Splat

§

I32x4Splat

§

I64x2Splat

§

F32x4Splat

§

F64x2Splat

§

I8x16Eq

§

I8x16Ne

§

I8x16LtS

§

I8x16LtU

§

I8x16GtS

§

I8x16GtU

§

I8x16LeS

§

I8x16LeU

§

I8x16GeS

§

I8x16GeU

§

I16x8Eq

§

I16x8Ne

§

I16x8LtS

§

I16x8LtU

§

I16x8GtS

§

I16x8GtU

§

I16x8LeS

§

I16x8LeU

§

I16x8GeS

§

I16x8GeU

§

I32x4Eq

§

I32x4Ne

§

I32x4LtS

§

I32x4LtU

§

I32x4GtS

§

I32x4GtU

§

I32x4LeS

§

I32x4LeU

§

I32x4GeS

§

I32x4GeU

§

I64x2Eq

§

I64x2Ne

§

I64x2LtS

§

I64x2GtS

§

I64x2LeS

§

I64x2GeS

§

F32x4Eq

§

F32x4Ne

§

F32x4Lt

§

F32x4Gt

§

F32x4Le

§

F32x4Ge

§

F64x2Eq

§

F64x2Ne

§

F64x2Lt

§

F64x2Gt

§

F64x2Le

§

F64x2Ge

§

V128Not

§

V128And

§

V128AndNot

§

V128Or

§

V128Xor

§

V128Bitselect

§

V128AnyTrue

§

I8x16Abs

§

I8x16Neg

§

I8x16Popcnt

§

I8x16AllTrue

§

I8x16Bitmask

§

I8x16NarrowI16x8S

§

I8x16NarrowI16x8U

§

I8x16Shl

§

I8x16ShrS

§

I8x16ShrU

§

I8x16Add

§

I8x16AddSatS

§

I8x16AddSatU

§

I8x16Sub

§

I8x16SubSatS

§

I8x16SubSatU

§

I8x16MinS

§

I8x16MinU

§

I8x16MaxS

§

I8x16MaxU

§

I8x16AvgrU

§

I16x8ExtAddPairwiseI8x16S

§

I16x8ExtAddPairwiseI8x16U

§

I16x8Abs

§

I16x8Neg

§

I16x8Q15MulrSatS

§

I16x8AllTrue

§

I16x8Bitmask

§

I16x8NarrowI32x4S

§

I16x8NarrowI32x4U

§

I16x8ExtendLowI8x16S

§

I16x8ExtendHighI8x16S

§

I16x8ExtendLowI8x16U

§

I16x8ExtendHighI8x16U

§

I16x8Shl

§

I16x8ShrS

§

I16x8ShrU

§

I16x8Add

§

I16x8AddSatS

§

I16x8AddSatU

§

I16x8Sub

§

I16x8SubSatS

§

I16x8SubSatU

§

I16x8Mul

§

I16x8MinS

§

I16x8MinU

§

I16x8MaxS

§

I16x8MaxU

§

I16x8AvgrU

§

I16x8ExtMulLowI8x16S

§

I16x8ExtMulHighI8x16S

§

I16x8ExtMulLowI8x16U

§

I16x8ExtMulHighI8x16U

§

I32x4ExtAddPairwiseI16x8S

§

I32x4ExtAddPairwiseI16x8U

§

I32x4Abs

§

I32x4Neg

§

I32x4AllTrue

§

I32x4Bitmask

§

I32x4ExtendLowI16x8S

§

I32x4ExtendHighI16x8S

§

I32x4ExtendLowI16x8U

§

I32x4ExtendHighI16x8U

§

I32x4Shl

§

I32x4ShrS

§

I32x4ShrU

§

I32x4Add

§

I32x4Sub

§

I32x4Mul

§

I32x4MinS

§

I32x4MinU

§

I32x4MaxS

§

I32x4MaxU

§

I32x4DotI16x8S

§

I32x4ExtMulLowI16x8S

§

I32x4ExtMulHighI16x8S

§

I32x4ExtMulLowI16x8U

§

I32x4ExtMulHighI16x8U

§

I64x2Abs

§

I64x2Neg

§

I64x2AllTrue

§

I64x2Bitmask

§

I64x2ExtendLowI32x4S

§

I64x2ExtendHighI32x4S

§

I64x2ExtendLowI32x4U

§

I64x2ExtendHighI32x4U

§

I64x2Shl

§

I64x2ShrS

§

I64x2ShrU

§

I64x2Add

§

I64x2Sub

§

I64x2Mul

§

I64x2ExtMulLowI32x4S

§

I64x2ExtMulHighI32x4S

§

I64x2ExtMulLowI32x4U

§

I64x2ExtMulHighI32x4U

§

F32x4Ceil

§

F32x4Floor

§

F32x4Trunc

§

F32x4Nearest

§

F32x4Abs

§

F32x4Neg

§

F32x4Sqrt

§

F32x4Add

§

F32x4Sub

§

F32x4Mul

§

F32x4Div

§

F32x4Min

§

F32x4Max

§

F32x4PMin

§

F32x4PMax

§

F64x2Ceil

§

F64x2Floor

§

F64x2Trunc

§

F64x2Nearest

§

F64x2Abs

§

F64x2Neg

§

F64x2Sqrt

§

F64x2Add

§

F64x2Sub

§

F64x2Mul

§

F64x2Div

§

F64x2Min

§

F64x2Max

§

F64x2PMin

§

F64x2PMax

§

I32x4TruncSatF32x4S

§

I32x4TruncSatF32x4U

§

F32x4ConvertI32x4S

§

F32x4ConvertI32x4U

§

I32x4TruncSatF64x2SZero

§

I32x4TruncSatF64x2UZero

§

F64x2ConvertLowI32x4S

§

F64x2ConvertLowI32x4U

§

F32x4DemoteF64x2Zero

§

F64x2PromoteLowF32x4

§

CallRef

Fields

§sig_index: Signature
§

RefIsNull

§

RefNull

Fields

§ty: Type
§

RefFunc

Fields

§func_index: Func
§

MemoryCopy

Fields

§dst_mem: Memory
§src_mem: Memory
§

MemoryFill

Fields

§

MemoryAtomicNotify

Fields

§memarg: MemoryArg
§

MemoryAtomicWait32

Fields

§memarg: MemoryArg
§

MemoryAtomicWait64

Fields

§memarg: MemoryArg
§

AtomicFence

§

I32AtomicLoad

Fields

§memarg: MemoryArg
§

I64AtomicLoad

Fields

§memarg: MemoryArg
§

I32AtomicLoad8U

Fields

§memarg: MemoryArg
§

I32AtomicLoad16U

Fields

§memarg: MemoryArg
§

I64AtomicLoad8U

Fields

§memarg: MemoryArg
§

I64AtomicLoad16U

Fields

§memarg: MemoryArg
§

I64AtomicLoad32U

Fields

§memarg: MemoryArg
§

I32AtomicStore

Fields

§memarg: MemoryArg
§

I64AtomicStore

Fields

§memarg: MemoryArg
§

I32AtomicStore8

Fields

§memarg: MemoryArg
§

I32AtomicStore16

Fields

§memarg: MemoryArg
§

I64AtomicStore8

Fields

§memarg: MemoryArg
§

I64AtomicStore16

Fields

§memarg: MemoryArg
§

I64AtomicStore32

Fields

§memarg: MemoryArg
§

I32AtomicRmwAdd

Fields

§memarg: MemoryArg
§

I64AtomicRmwAdd

Fields

§memarg: MemoryArg
§

I32AtomicRmw8AddU

Fields

§memarg: MemoryArg
§

I32AtomicRmw16AddU

Fields

§memarg: MemoryArg
§

I64AtomicRmw8AddU

Fields

§memarg: MemoryArg
§

I64AtomicRmw16AddU

Fields

§memarg: MemoryArg
§

I64AtomicRmw32AddU

Fields

§memarg: MemoryArg
§

I32AtomicRmwSub

Fields

§memarg: MemoryArg
§

I64AtomicRmwSub

Fields

§memarg: MemoryArg
§

I32AtomicRmw8SubU

Fields

§memarg: MemoryArg
§

I32AtomicRmw16SubU

Fields

§memarg: MemoryArg
§

I64AtomicRmw8SubU

Fields

§memarg: MemoryArg
§

I64AtomicRmw16SubU

Fields

§memarg: MemoryArg
§

I64AtomicRmw32SubU

Fields

§memarg: MemoryArg
§

I32AtomicRmwAnd

Fields

§memarg: MemoryArg
§

I64AtomicRmwAnd

Fields

§memarg: MemoryArg
§

I32AtomicRmw8AndU

Fields

§memarg: MemoryArg
§

I32AtomicRmw16AndU

Fields

§memarg: MemoryArg
§

I64AtomicRmw8AndU

Fields

§memarg: MemoryArg
§

I64AtomicRmw16AndU

Fields

§memarg: MemoryArg
§

I64AtomicRmw32AndU

Fields

§memarg: MemoryArg
§

I32AtomicRmwOr

Fields

§memarg: MemoryArg
§

I64AtomicRmwOr

Fields

§memarg: MemoryArg
§

I32AtomicRmw8OrU

Fields

§memarg: MemoryArg
§

I32AtomicRmw16OrU

Fields

§memarg: MemoryArg
§

I64AtomicRmw8OrU

Fields

§memarg: MemoryArg
§

I64AtomicRmw16OrU

Fields

§memarg: MemoryArg
§

I64AtomicRmw32OrU

Fields

§memarg: MemoryArg
§

I32AtomicRmwXor

Fields

§memarg: MemoryArg
§

I64AtomicRmwXor

Fields

§memarg: MemoryArg
§

I32AtomicRmw8XorU

Fields

§memarg: MemoryArg
§

I32AtomicRmw16XorU

Fields

§memarg: MemoryArg
§

I64AtomicRmw8XorU

Fields

§memarg: MemoryArg
§

I64AtomicRmw16XorU

Fields

§memarg: MemoryArg
§

I64AtomicRmw32XorU

Fields

§memarg: MemoryArg
§

I32AtomicRmwXchg

Fields

§memarg: MemoryArg
§

I64AtomicRmwXchg

Fields

§memarg: MemoryArg
§

I32AtomicRmw8XchgU

Fields

§memarg: MemoryArg
§

I32AtomicRmw16XchgU

Fields

§memarg: MemoryArg
§

I64AtomicRmw8XchgU

Fields

§memarg: MemoryArg
§

I64AtomicRmw16XchgU

Fields

§memarg: MemoryArg
§

I64AtomicRmw32XchgU

Fields

§memarg: MemoryArg
§

I32AtomicRmwCmpxchg

Fields

§memarg: MemoryArg
§

I64AtomicRmwCmpxchg

Fields

§memarg: MemoryArg
§

I32AtomicRmw8CmpxchgU

Fields

§memarg: MemoryArg
§

I32AtomicRmw16CmpxchgU

Fields

§memarg: MemoryArg
§

I64AtomicRmw8CmpxchgU

Fields

§memarg: MemoryArg
§

I64AtomicRmw16CmpxchgU

Fields

§memarg: MemoryArg
§

I64AtomicRmw32CmpxchgU

Fields

§memarg: MemoryArg

Implementations§

Source§

impl Operator

Source

pub fn effects(&self) -> &'static [SideEffect]

What side-effects can this operator have?

Source

pub fn is_pure(&self) -> bool

Is the operator pure (has no side-effects)?

Source

pub fn is_call(&self) -> bool

Is the operator a direct or indirect call?

Source

pub fn accesses_memory(&self) -> bool

Does the operator access (read or write) memory?

Source

pub fn is_load(&self) -> bool

Is the operator an ordinary memory load?

Note that this does not include all opcodes that read memory state, such as accessing the size of memory, or that read and also write memory, such as a memory copy; only “normal” load instructions.

Source

pub fn is_store(&self) -> bool

Is the operator an ordinary memory store?

Note that this does not include all opcodes that write memory state, such as growing memory, or that write and also read memory, such as a memory copy; only “normal” store instructions.

Source

pub fn update_memory_arg<F: FnMut(&mut MemoryArg)>(&mut self, f: F)

Call f on the operator’s MemoryArg, if it has one.

Source

pub fn can_trap(&self) -> bool

Is the operator capable of trapping?

Trait Implementations§

Source§

impl Clone for Operator

Source§

fn clone(&self) -> Operator

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Operator

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Operator

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for Operator

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for Operator

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl OpValue<FunctionBody, Operator> for ValueDef

Source§

type Residue = ValueDef

Source§

type Capture = ListRef<Value>

Source§

type Spit = Vec<Type>

Source§

fn disasm( self, f: &mut FunctionBody, ) -> Result<(Operator, Self::Capture, Self::Spit), Self::Residue>

Source§

fn of( f: &mut FunctionBody, o: Operator, c: Self::Capture, s: Self::Spit, ) -> Option<Self>

Source§

fn lift(f: &mut FunctionBody, r: Self::Residue) -> Option<Self>

Source§

impl PartialEq for Operator

Source§

fn eq(&self, other: &Operator) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Operator

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<'a, 'b> TryFrom<&'b Operator<'a>> for Operator

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(op: &'b Operator<'a>) -> Result<Operator, Self::Error>

Performs the conversion.
Source§

impl Copy for Operator

Source§

impl Eq for Operator

Source§

impl StructuralPartialEq for Operator

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

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

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

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

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

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

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<F, A, B, T> OpValue<F, Either<A, B>> for T
where F: Func, T: OpValue<F, A>, <T as OpValue<F, A>>::Residue: OpValue<F, B>,

Source§

type Residue = <<T as OpValue<F, A>>::Residue as OpValue<F, B>>::Residue

Source§

type Capture = Either<<T as OpValue<F, A>>::Capture, <<T as OpValue<F, A>>::Residue as OpValue<F, B>>::Capture>

Source§

type Spit = Either<<T as OpValue<F, A>>::Spit, <<T as OpValue<F, A>>::Residue as OpValue<F, B>>::Spit>

Source§

fn disasm( self, f: &mut F, ) -> Result<(Either<A, B>, <T as OpValue<F, Either<A, B>>>::Capture, <T as OpValue<F, Either<A, B>>>::Spit), <T as OpValue<F, Either<A, B>>>::Residue>

Source§

fn of( f: &mut F, o: Either<A, B>, c: <T as OpValue<F, Either<A, B>>>::Capture, s: <T as OpValue<F, Either<A, B>>>::Spit, ) -> Option<T>

Source§

fn lift(f: &mut F, r: <T as OpValue<F, Either<A, B>>>::Residue) -> Option<T>

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize = _

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,