Instr

zio.wasm.Instr
enum Instr

Attributes

Graph
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Known subtypes
case I32Const
case I64Const
case F32Const
case F64Const
case IEqz
case IEq
case INe
case ILt
case IGt
case ILe
case IGe
case FEq
case FNe
case FLt
case FGt
case FLe
case FGe
case IClz
case ICtz
case IPopCnt
case IAdd
case ISub
case IMul
case IDiv
case IRem
case IAnd
case IOr
case IXor
case IShl
case IShr
case IRotL
case IRotR
case FAbs
case FNeg
case FCeil
case FFloor
case FTrunc
case FNearest
case FSqrt
case FAdd
case FSub
case FMul
case FDiv
case FMin
case FMax
case FCopySign
case ITruncF
case IExtend8S
case IExtend16S
case FConvertI
case ITruncSatF
case VSplat
case VIEq
case VINe
case VILt
case VIGt
case VILe
case VIGe
case VFEq
case VFNe
case VFLt
case VFGt
case VFLe
case VFGe
case VIAbs
case VINeg
case VFAbs
case VFNeg
case VFSqrt
case VFCeil
case VFFloor
case VFTrunc
case VFNearest
case VIAllTrue
case VIBitMask
case VIShl
case VIShr
case VIAdd
case VISub
case VIMin
case VIMax
case VIAddSat
case VISubSat
case VIMul
case VIAvgr
case VIExtMul
case VFAdd
case VFSub
case VFMul
case VFDiv
case VFMin
case VFMax
case VFPMin
case VFPMax
case RefNull
case RefFunc
case Select
case LocalGet
case LocalSet
case LocalTee
case GlobalGet
case GlobalSet
case TableGet
case TableSet
case TableSize
case TableGrow
case TableFill
case TableCopy
case TableInit
case ElemDrop
case Load
case Store
case Load8
case Load16
case Load32
case Store8
case Store16
case Store32
case MemoryInit
case DataDrop
case Block
case Loop
case If
case Br
case BrIf
case BrTable
case Call
Show all

Members list

Type members

Enum entries

final case class Block(blockType: BlockType, instructions: Chunk[Instr]) extends Instr, ControlInstr
final case class Br(labelIdx: LabelIdx) extends Instr, ControlInstr
final case class BrIf(labelIdx: LabelIdx) extends Instr, ControlInstr
final case class BrTable(labels: Chunk[LabelIdx], default: LabelIdx) extends Instr, ControlInstr
final case class Call(idx: FuncIdx) extends Instr, ControlInstr
final case class CallIndirect(tableIdx: TableIdx, typeIdx: TypeIdx) extends Instr, ControlInstr
final case class DataDrop(idx: DataIdx) extends Instr, MemoryInstr
case case Drop extends Instr with ParametricInstr
final case class ElemDrop(idx: ElemIdx) extends Instr, TableInstr
final case class F32Const(value: Float) extends Instr, NumericInstr
case case F32DemoteF64 extends Instr with CvtOp
final case class F64Const(value: Double) extends Instr, NumericInstr
case case F64PromoteF32 extends Instr with CvtOp
final case class FAbs(width: FloatWidth) extends Instr, NumericInstr, FUnOp
final case class FAdd(width: FloatWidth) extends Instr, NumericInstr, FBinOp
final case class FCeil(width: FloatWidth) extends Instr, NumericInstr, FUnOp
final case class FConvertI(floatWidth: FloatWidth, intWidth: IntWidth, signedness: Signedness) extends Instr, NumericInstr, CvtOp
final case class FCopySign(width: FloatWidth) extends Instr, NumericInstr, FBinOp
final case class FDiv(width: FloatWidth) extends Instr, NumericInstr, FBinOp
final case class FEq(width: FloatWidth) extends Instr, NumericInstr, FRelOp
final case class FFloor(width: FloatWidth) extends Instr, NumericInstr, FUnOp
final case class FGe(width: FloatWidth) extends Instr, NumericInstr, FRelOp
final case class FGt(width: FloatWidth) extends Instr, NumericInstr, FRelOp
final case class FLe(width: FloatWidth) extends Instr, NumericInstr, FRelOp
final case class FLt(width: FloatWidth) extends Instr, NumericInstr, FRelOp
final case class FMax(width: FloatWidth) extends Instr, NumericInstr, FBinOp
final case class FMin(width: FloatWidth) extends Instr, NumericInstr, FBinOp
final case class FMul(width: FloatWidth) extends Instr, NumericInstr, FBinOp
final case class FNe(width: FloatWidth) extends Instr, NumericInstr, FRelOp
final case class FNearest(width: FloatWidth) extends Instr, NumericInstr, FUnOp
final case class FNeg(width: FloatWidth) extends Instr, NumericInstr, FUnOp
final case class FReinterpretI(floatWidth: FloatWidth) extends Instr, NumericInstr, CvtOp
final case class FSqrt(width: FloatWidth) extends Instr, NumericInstr, FBinOp
final case class FSub(width: FloatWidth) extends Instr, NumericInstr, FBinOp
final case class FTrunc(width: FloatWidth) extends Instr, NumericInstr, FUnOp
final case class GlobalGet(idx: GlobalIdx) extends Instr, VariableInstr
final case class GlobalSet(idx: GlobalIdx) extends Instr, VariableInstr
final case class I32Const(value: Int) extends Instr, NumericInstr
case case I32WrapI64 extends Instr with CvtOp
final case class I64Const(value: Long) extends Instr, NumericInstr
case case I64Extend32S extends Instr with CvtOp
final case class I64ExtendI32(signedness: Signedness) extends Instr, NumericInstr, CvtOp
final case class IAdd(width: IntWidth) extends Instr, NumericInstr, IBinOp
final case class IAnd(width: IntWidth) extends Instr, NumericInstr, IBinOp
final case class IClz(width: IntWidth) extends Instr, NumericInstr, IUnOp
final case class ICtz(width: IntWidth) extends Instr, NumericInstr, IUnOp
final case class IDiv(width: IntWidth, signedness: Signedness) extends Instr, NumericInstr, IBinOp
final case class IEq(width: IntWidth) extends Instr, NumericInstr, IRelOp
final case class IEqz(width: IntWidth) extends Instr, NumericInstr, ITestOp
final case class IExtend16S(intWidth: IntWidth) extends Instr, NumericInstr, CvtOp
final case class IExtend8S(intWidth: IntWidth) extends Instr, NumericInstr, CvtOp
final case class IGe(width: IntWidth, signedness: Signedness) extends Instr, NumericInstr, IRelOp
final case class IGt(width: IntWidth, signedness: Signedness) extends Instr, NumericInstr, IRelOp
final case class ILe(width: IntWidth, signedness: Signedness) extends Instr, NumericInstr, IRelOp
final case class ILt(width: IntWidth, signedness: Signedness) extends Instr, NumericInstr, IRelOp
final case class IMul(width: IntWidth) extends Instr, NumericInstr, IBinOp
final case class INe(width: IntWidth) extends Instr, NumericInstr, IRelOp
final case class IOr(width: IntWidth) extends Instr, NumericInstr, IBinOp
final case class IPopCnt(width: IntWidth) extends Instr, NumericInstr, IUnOp
final case class IReinterpretF(intWidth: IntWidth) extends Instr, NumericInstr, CvtOp
final case class IRem(width: IntWidth, signedness: Signedness) extends Instr, NumericInstr, IBinOp
final case class IRotL(width: IntWidth) extends Instr, NumericInstr, IBinOp
final case class IRotR(width: IntWidth) extends Instr, NumericInstr, IBinOp
final case class IShl(width: IntWidth) extends Instr, NumericInstr, IBinOp
final case class IShr(width: IntWidth, signedness: Signedness) extends Instr, NumericInstr, IBinOp
final case class ISub(width: IntWidth) extends Instr, NumericInstr, IBinOp
final case class ITruncF(intWidth: IntWidth, floatWidth: FloatWidth, signedness: Signedness) extends Instr, NumericInstr, CvtOp
final case class ITruncSatF(intWidth: IntWidth, floatWidth: FloatWidth, signedness: Signedness) extends Instr, NumericInstr, CvtOp
final case class IXor(width: IntWidth) extends Instr, NumericInstr, IBinOp
final case class If(blockType: BlockType, trueInstrs: Chunk[Instr], falseInstrs: Chunk[Instr]) extends Instr, ControlInstr
final case class Load(typ: NumType | VecType, memArg: MemArg) extends Instr, MemoryInstr
final case class Load16(typ: NumType | NumType, signedness: Signedness, memArg: MemArg) extends Instr, MemoryInstr
final case class Load32(signedness: Signedness, memArg: MemArg) extends Instr, MemoryInstr
final case class Load8(typ: NumType | NumType, signedness: Signedness, memArg: MemArg) extends Instr, MemoryInstr
final case class LocalGet(idx: LocalIdx) extends Instr, VariableInstr
final case class LocalSet(idx: LocalIdx) extends Instr, VariableInstr
final case class LocalTee(idx: LocalIdx) extends Instr, VariableInstr
final case class Loop(blockType: BlockType, instructions: Chunk[Instr]) extends Instr, ControlInstr
case case MemoryCopy extends Instr with MemoryInstr
case case MemoryFill extends Instr with MemoryInstr
case case MemoryGrow extends Instr with MemoryInstr
final case class MemoryInit(idx: DataIdx) extends Instr, MemoryInstr
case case MemorySize extends Instr with MemoryInstr
case case Nop extends Instr with ControlInstr
final case class RefFunc(idx: FuncIdx) extends Instr, ReferenceInstr
case case RefIsNull extends Instr with ReferenceInstr
final case class RefNull(refType: RefType) extends Instr, ReferenceInstr
case case Return extends Instr with ControlInstr
final case class Select(types: Option[Chunk[ValType]]) extends Instr, ParametricInstr
final case class Store(typ: NumType | VecType, memArg: MemArg) extends Instr, MemoryInstr
final case class Store16(typ: NumType | NumType, memArg: MemArg) extends Instr, MemoryInstr
final case class Store32(memArg: MemArg) extends Instr, MemoryInstr
final case class Store8(typ: NumType | NumType, memArg: MemArg) extends Instr, MemoryInstr
final case class TableCopy(source: TableIdx, destination: TableIdx) extends Instr, TableInstr
final case class TableFill(idx: TableIdx) extends Instr, TableInstr
final case class TableGet(idx: TableIdx) extends Instr, TableInstr
final case class TableGrow(idx: TableIdx) extends Instr, TableInstr
final case class TableInit(tableIdx: TableIdx, elemIdx: ElemIdx) extends Instr, TableInstr
final case class TableSet(idx: TableIdx) extends Instr, TableInstr
final case class TableSize(idx: TableIdx) extends Instr, TableInstr
case case Unreachable extends Instr with ControlInstr
case case V128And extends Instr with VVBinOp
case case V128AndNot extends Instr with VVBinOp
case case V128AnyTrue extends Instr with VVTestOp
case case V128BitSelect extends Instr with VVTernOp
final case class V128Const(value: Int128)
final case class V128Load16x4(signedness: Signedness, memArg: MemArg) extends Instr, MemoryInstr
final case class V128Load32Zero(memArg: MemArg) extends Instr, MemoryInstr
final case class V128Load32x2(signedness: Signedness, memArg: MemArg) extends Instr, MemoryInstr
final case class V128Load64Zero(memArg: MemArg) extends Instr, MemoryInstr
final case class V128Load8x8(signedness: Signedness, memArg: MemArg) extends Instr, MemoryInstr
final case class V128LoadLane(loadShape: VectorLoadShape, memArg: MemArg, laneIdx: LaneIdx) extends Instr, MemoryInstr
final case class V128LoadSplat(loadShape: VectorLoadShape, memArg: MemArg) extends Instr, MemoryInstr
case case V128Not extends Instr with VVUnOp
case case V128Or extends Instr with VVBinOp
final case class V128StoreLane(loadShape: VectorLoadShape, memArg: MemArg, laneIdx: LaneIdx) extends Instr, MemoryInstr
case case V128XOr extends Instr with VVBinOp
case case VF32x4DemoteF64x2Zero extends Instr with VCvtOp
final case class VF64x2ConvertLowI32x4(signedness: Signedness) extends Instr, VectorInstr, VCvtOp
case case VF64x2PromoteLowI32x4 extends Instr with VCvtOp
final case class VFAbs(shape: FShape) extends Instr, VectorInstr, VFUnOp
final case class VFAdd(shape: FShape) extends Instr, VectorInstr, VFBinOp
final case class VFCeil(shape: FShape) extends Instr, VectorInstr, VFUnOp
final case class VFDiv(shape: FShape) extends Instr, VectorInstr, VFBinOp
final case class VFEq(shape: FShape) extends Instr, VectorInstr, VFRelOp
final case class VFExtractLane(shape: FShape, laneIdx: LaneIdx) extends Instr, VectorInstr
final case class VFFloor(shape: FShape) extends Instr, VectorInstr, VFUnOp
final case class VFGe(shape: FShape) extends Instr, VectorInstr, VFRelOp
final case class VFGt(shape: FShape) extends Instr, VectorInstr, VFRelOp
final case class VFLe(shape: FShape) extends Instr, VectorInstr, VFRelOp
final case class VFLt(shape: FShape) extends Instr, VectorInstr, VFRelOp
final case class VFMax(shape: FShape) extends Instr, VectorInstr, VFBinOp
final case class VFMin(shape: FShape) extends Instr, VectorInstr, VFBinOp
final case class VFMul(shape: FShape) extends Instr, VectorInstr, VFBinOp
final case class VFNe(shape: FShape) extends Instr, VectorInstr, VFRelOp
final case class VFNearest(shape: FShape) extends Instr, VectorInstr, VFUnOp
final case class VFNeg(shape: FShape) extends Instr, VectorInstr, VFUnOp
final case class VFPMax(shape: FShape) extends Instr, VectorInstr, VFBinOp
final case class VFPMin(shape: FShape) extends Instr, VectorInstr, VFBinOp
final case class VFSqrt(shape: FShape) extends Instr, VectorInstr, VFUnOp
final case class VFSub(shape: FShape) extends Instr, VectorInstr, VFBinOp
final case class VFTrunc(shape: FShape) extends Instr, VectorInstr, VFUnOp
final case class VI16x8ExtendI8x16(half: Half, signedness: Signedness) extends Instr, VectorInstr, VCvtOp
final case class VI16x8ExtractLane(signedness: Signedness, laneIdx: LaneIdx) extends Instr, VectorInstr
final case class VI16x8NarrowI32x4(signedness: Signedness) extends Instr, VectorInstr
case case VI16x8Q15MulrSat extends Instr with VectorInstr
case case VI18x16Swizzle extends Instr with VectorInstr
final case class VI32x4ConvertI32x4(signedness: Signedness) extends Instr, VectorInstr, VCvtOp
case case VI32x4DotI16x8 extends Instr with VectorInstr
final case class VI32x4ExtendI16x8(half: Half, signedness: Signedness) extends Instr, VectorInstr, VCvtOp
final case class VI32x4ExtractLane(laneIdx: LaneIdx) extends Instr, VectorInstr
final case class VI32x4TruncSatF32x4(signedness: Signedness) extends Instr, VectorInstr, VCvtOp
final case class VI32x4TruncSatF64x2Zero(signedness: Signedness) extends Instr, VectorInstr, VCvtOp
final case class VI64x2ExtendI32x4(half: Half, signedness: Signedness) extends Instr, VectorInstr, VCvtOp
final case class VI64x2ExtractLane(laneIdx: LaneIdx) extends Instr, VectorInstr
case case VI64x2Ge extends Instr with VIRelOp
case case VI64x2Gt extends Instr with VIRelOp
case case VI64x2Le extends Instr with VIRelOp
case case VI64x2Lt extends Instr with VIRelOp
final case class VI8x16ExtractLane(signedness: Signedness, laneIdx: LaneIdx) extends Instr, VectorInstr
final case class VI8x16NarrowI16x8(signedness: Signedness) extends Instr, VectorInstr
case case VI8x16PopCnt extends Instr with VectorInstr
final case class VI8x16Shuffle(laneIdx0: LaneIdx, laneIdx1: LaneIdx, laneIdx2: LaneIdx, laneIdx3: LaneIdx, laneIdx4: LaneIdx, laneIdx5: LaneIdx, laneIdx6: LaneIdx, laneIdx7: LaneIdx, laneIdx8: LaneIdx, laneIdx9: LaneIdx, laneIdx10: LaneIdx, laneIdx11: LaneIdx, laneIdx12: LaneIdx, laneIdx13: LaneIdx, laneIdx14: LaneIdx, laneIdx15: LaneIdx) extends Instr, VectorInstr
final case class VIAbs(shape: IShape) extends Instr, VectorInstr, VIUnOp
final case class VIAdd(shape: IShape) extends Instr, VectorInstr, VIBinOp
final case class VIAddSat(shape: IShape | IShape, signedness: Signedness) extends Instr, VectorInstr, VISatBinOp
final case class VIAllTrue(shape: IShape) extends Instr, VectorInstr, VITestOp
final case class VIAvgr(shape: IShape | IShape) extends Instr, VectorInstr
final case class VIBitMask(shape: IShape) extends Instr, VectorInstr
final case class VIEq(shape: IShape) extends Instr, VectorInstr, VIRelOp
final case class VIExtAddPairwise(shape: IShape | IShape, signedness: Signedness) extends Instr, VectorInstr
final case class VIExtMul(shape: IShape | IShape | IShape, half: Half, signedness: Signedness) extends Instr, VectorInstr
final case class VIGe(shape: IShape | IShape | IShape, signedness: Signedness) extends Instr, VectorInstr, VIRelOp
final case class VIGt(shape: IShape | IShape | IShape, signedness: Signedness) extends Instr, VectorInstr, VIRelOp
final case class VILe(shape: IShape | IShape | IShape, signedness: Signedness) extends Instr, VectorInstr, VIRelOp
final case class VILt(shape: IShape | IShape | IShape, signedness: Signedness) extends Instr, VectorInstr, VIRelOp
final case class VIMax(shape: IShape | IShape | IShape, signedness: Signedness) extends Instr, VectorInstr, VIMinMaxOp
final case class VIMin(shape: IShape | IShape | IShape, signedness: Signedness) extends Instr, VectorInstr, VIMinMaxOp
final case class VIMul(shape: IShape | IShape | IShape) extends Instr, VectorInstr
final case class VINe(shape: IShape) extends Instr, VectorInstr, VIRelOp
final case class VINeg(shape: IShape) extends Instr, VectorInstr, VIUnOp
final case class VIShl(shape: IShape) extends Instr, VectorInstr, VIShiftOp
final case class VIShr(shape: IShape, signedness: Signedness) extends Instr, VectorInstr, VIShiftOp
final case class VISub(shape: IShape) extends Instr, VectorInstr, VIBinOp
final case class VISubSat(shape: IShape | IShape, signedness: Signedness) extends Instr, VectorInstr, VISatBinOp
final case class VReplaceLane(shape: Shape, laneIdx: LaneIdx) extends Instr, VectorInstr
final case class VSplat(shape: Shape) extends Instr, VectorInstr