Milky2018/vcode/native_lowering does not have a README file

DirectLoweringError

pub suberror DirectLoweringError {
InvalidCallAbi(message~ : String)
} derive(Eq,
Debug
)

DirectLoweringError::equal

DirectLoweringError::not_equal

DirectLoweringError::output

fn DirectLoweringError::output(self : DirectLoweringError, logger : &Logger) -> Unit

DirectLoweringError::to_string

fn DirectLoweringError::to_string(self : DirectLoweringError) -> String

AtomicRmwOp

pub(all) enum AtomicRmwOp {
Add
Sub
And
Or
Xor
Exchange
} derive(Eq, Hash,
Debug
)

AtomicRmwOp::equal

fn AtomicRmwOp::equal(AtomicRmwOp, AtomicRmwOp) -> Bool

AtomicRmwOp::hash

fn AtomicRmwOp::hash(self : AtomicRmwOp) -> Int

AtomicRmwOp::hash_combine

fn AtomicRmwOp::hash_combine(AtomicRmwOp, Hasher) -> Unit

AtomicRmwOp::not_equal

fn AtomicRmwOp::not_equal(x : AtomicRmwOp, y : AtomicRmwOp) -> Bool

AtomicSpec

A sequentially consistent atomic memory access. Weaker memory orders are not part of the current native-lowering contract.

AtomicSpec::equal

fn AtomicSpec::equal(AtomicSpec, AtomicSpec) -> Bool

AtomicSpec::hash

fn AtomicSpec::hash(self : AtomicSpec) -> Int

AtomicSpec::hash_combine

fn AtomicSpec::hash_combine(AtomicSpec, Hasher) -> Unit

AtomicSpec::not_equal

fn AtomicSpec::not_equal(x : AtomicSpec, y : AtomicSpec) -> Bool

Block

pub(all) struct Block {
id : Int
} derive(Eq, Hash,
Debug
)

Block::equal

fn Block::equal(Block, Block) -> Bool

Block::hash

fn Block::hash(self : Block) -> Int

Block::hash_combine

fn Block::hash_combine(Block, Hasher) -> Unit

Block::not_equal

fn Block::not_equal(x : Block, y : Block) -> Bool

Block::to_repr

CallAbiElaboration

pub struct CallAbiElaboration {
// private fields
}

CallAbiElaboration::new

fn CallAbiElaboration::new(root_scope? : CallerRootScopeAbi, hidden_safepoints? : Array[HiddenSafepointAbi]) -> CallAbiElaboration

CallerRootScopeAbi

pub struct CallerRootScopeAbi {
// private fields
}

DirectBuilder

pub struct DirectBuilder {
// private fields
}

Streaming construction state. It tracks handle types and one pending terminator, but never stores instructions, uses, CFG edges, or SSA definitions.

DirectBuilder::block_parameters

fn DirectBuilder::block_parameters(self : DirectBuilder, block : Block) -> Array[Value]

DirectBuilder::branch

fn DirectBuilder::branch(self : DirectBuilder, condition : Value, true_target : Block, true_arguments : Array[Value], false_target : Block, false_arguments : Array[Value]) -> Unit

DirectBuilder::branch_int_compare

fn DirectBuilder::branch_int_compare(self : DirectBuilder, comparison : IntComparison, left : Value, right : Value, true_target : Block, true_arguments : Array[Value], false_target : Block, false_arguments : Array[Value]) -> Unit

DirectBuilder::branch_int_compare_immediate

fn DirectBuilder::branch_int_compare_immediate(self : DirectBuilder, comparison : IntComparison, input : Value, bits : UInt64, true_target : Block, true_arguments : Array[Value], false_target : Block, false_arguments : Array[Value]) -> Unit

DirectBuilder::create_block

DirectBuilder::create_stack_object

fn DirectBuilder::create_stack_object(self : DirectBuilder, size : Int, alignment : Int) ->
StackObject

DirectBuilder::emit_with_metadata

fn DirectBuilder::emit_with_metadata(self : DirectBuilder, operation : Operation, operands : Array[Value], result_types : Array[
ValueType
], metadata : InstructionMetadata) -> Array[Value]

DirectBuilder::entry_block

fn DirectBuilder::entry_block(self : DirectBuilder) -> Block

DirectBuilder::finish

fn DirectBuilder::finish(self : DirectBuilder) -> Unit raise DirectLoweringError

DirectBuilder::jump

fn DirectBuilder::jump(self : DirectBuilder, target : Block, arguments : Array[Value]) -> Unit

DirectBuilder::new

fn DirectBuilder::new(parameter_types : Array[
ValueType
], sink : TargetSink, call_abi? : CallAbiElaboration, root_scope_capacity? : Int) -> DirectBuilder

DirectBuilder::noreturn_call_with_metadata

fn DirectBuilder::noreturn_call_with_metadata(self : DirectBuilder, call :
NativeCall
, operands : Array[Value], metadata : TerminatorMetadata) -> Unit

DirectBuilder::parameters

fn DirectBuilder::parameters(self : DirectBuilder) -> Array[Value]

DirectBuilder::return_

fn DirectBuilder::return_(self : DirectBuilder, values : Array[Value]) -> Unit

DirectBuilder::set_terminator_source

DirectBuilder::switch

fn DirectBuilder::switch(self : DirectBuilder, value : Value, cases : Array[(UInt64, Block, Array[Value])], default_target : Block, default_arguments : Array[Value]) -> Unit

DirectBuilder::switch_to_block

fn DirectBuilder::switch_to_block(self : DirectBuilder, block : Block) -> Unit

DirectBuilder::tail_call_with_metadata

fn DirectBuilder::tail_call_with_metadata(self : DirectBuilder, call :
NativeCall
, operands : Array[Value], metadata : TerminatorMetadata) -> Unit

DirectBuilder::trap

DirectBuilder::value_type

FloatBinaryOp

pub(all) enum FloatBinaryOp {
Add
Sub
Mul
Div
Min
Max
CopySign
} derive(Eq, Hash,
Debug
)

FloatBinaryOp::equal

FloatBinaryOp::hash

fn FloatBinaryOp::hash(self : FloatBinaryOp) -> Int

FloatBinaryOp::hash_combine

fn FloatBinaryOp::hash_combine(FloatBinaryOp, Hasher) -> Unit

FloatBinaryOp::not_equal

fn FloatBinaryOp::not_equal(x : FloatBinaryOp, y : FloatBinaryOp) -> Bool

FloatComparison

pub(all) enum FloatComparison {
Equal
NotEqual
LessThan
LessOrEqual
GreaterThan
GreaterOrEqual
Ordered
Unordered
} derive(Eq, Hash,
Debug
)

FloatComparison::equal

FloatComparison::hash

fn FloatComparison::hash(self : FloatComparison) -> Int

FloatComparison::hash_combine

fn FloatComparison::hash_combine(FloatComparison, Hasher) -> Unit

FloatComparison::not_equal

fn FloatComparison::not_equal(x : FloatComparison, y : FloatComparison) -> Bool

FloatTernaryOp

pub(all) enum FloatTernaryOp {
FusedMultiplyAdd
FusedNegatedMultiplyAdd
FusedMultiplySubtract
FusedNegatedMultiplySubtract
} derive(Eq, Hash,
Debug
)

FloatTernaryOp::equal

FloatTernaryOp::hash

fn FloatTernaryOp::hash(self : FloatTernaryOp) -> Int

FloatTernaryOp::hash_combine

fn FloatTernaryOp::hash_combine(FloatTernaryOp, Hasher) -> Unit

FloatTernaryOp::not_equal

fn FloatTernaryOp::not_equal(x : FloatTernaryOp, y : FloatTernaryOp) -> Bool

FloatUnaryOp

pub(all) enum FloatUnaryOp {
Negate
Absolute
SquareRoot
Ceil
Floor
Truncate
Nearest
} derive(Eq, Hash,
Debug
)

FloatUnaryOp::equal

FloatUnaryOp::hash

fn FloatUnaryOp::hash(self : FloatUnaryOp) -> Int

FloatUnaryOp::hash_combine

fn FloatUnaryOp::hash_combine(FloatUnaryOp, Hasher) -> Unit

FloatUnaryOp::not_equal

fn FloatUnaryOp::not_equal(x : FloatUnaryOp, y : FloatUnaryOp) -> Bool

HiddenSafepointAbi

pub struct HiddenSafepointAbi {
// private fields
}

InstructionMetadata

InstructionMetadata::empty

InstructionMetadata::equal

InstructionMetadata::not_equal

IntBinaryOp

pub(all) enum IntBinaryOp {
Add
Sub
Mul
SignedDiv
UnsignedDiv
SignedRem
UnsignedRem
And
Or
Xor
ShiftLeft
SignedShiftRight
UnsignedShiftRight
RotateLeft
RotateRight
} derive(Eq, Hash,
Debug
)

IntBinaryOp::equal

fn IntBinaryOp::equal(IntBinaryOp, IntBinaryOp) -> Bool

IntBinaryOp::hash

fn IntBinaryOp::hash(self : IntBinaryOp) -> Int

IntBinaryOp::hash_combine

fn IntBinaryOp::hash_combine(IntBinaryOp, Hasher) -> Unit

IntBinaryOp::not_equal

fn IntBinaryOp::not_equal(x : IntBinaryOp, y : IntBinaryOp) -> Bool

IntComparison

pub(all) enum IntComparison {
Equal
NotEqual
SignedLessThan
SignedLessOrEqual
SignedGreaterThan
SignedGreaterOrEqual
UnsignedLessThan
UnsignedLessOrEqual
UnsignedGreaterThan
UnsignedGreaterOrEqual
} derive(Eq, Hash,
Debug
)

IntComparison::equal

IntComparison::hash

fn IntComparison::hash(self : IntComparison) -> Int

IntComparison::hash_combine

fn IntComparison::hash_combine(IntComparison, Hasher) -> Unit

IntComparison::not_equal

fn IntComparison::not_equal(x : IntComparison, y : IntComparison) -> Bool

IntOverflowOp

IntOverflowOp::equal

IntOverflowOp::hash

fn IntOverflowOp::hash(self : IntOverflowOp) -> Int

IntOverflowOp::hash_combine

fn IntOverflowOp::hash_combine(IntOverflowOp, Hasher) -> Unit

IntOverflowOp::not_equal

fn IntOverflowOp::not_equal(x : IntOverflowOp, y : IntOverflowOp) -> Bool

IntUnaryOp

pub(all) enum IntUnaryOp {
Not
CountLeadingZeros
CountTrailingZeros
PopulationCount
} derive(Eq, Hash,
Debug
)

IntUnaryOp::equal

fn IntUnaryOp::equal(IntUnaryOp, IntUnaryOp) -> Bool

IntUnaryOp::hash

fn IntUnaryOp::hash(self : IntUnaryOp) -> Int

IntUnaryOp::hash_combine

fn IntUnaryOp::hash_combine(IntUnaryOp, Hasher) -> Unit

IntUnaryOp::not_equal

fn IntUnaryOp::not_equal(x : IntUnaryOp, y : IntUnaryOp) -> Bool

Operation

pub(all) enum Operation {
I32Const(UInt)
I64Const(UInt64)
F32Const(UInt)
F64Const(UInt64)
V128Const(UInt64, UInt64)
NullPtr
NullGcRef
CodeAddress(
CodeSymbol
)
ExternalAddress(
ExternalSymbol
)
DataAddress(
DataSymbol
)
EnvironmentField(
EnvironmentField
,
EnvironmentFieldStability
)
StackAddress(
StackObject
)
Copy
Select
GcRefAddress
GcRefFromBits
PointerOffset
ReferenceCompare(ReferenceComparison)
IntUnary(IntUnaryOp)
IntBinary(IntBinaryOp)
IntBinaryImmediate(IntBinaryOp, UInt64)
IntShiftImmediate(IntBinaryOp, Int)
IntMultiplyAdd
IntAddShiftedLeft(Int)
IntHighMultiply(
Signedness
)
IntWithOverflow(IntOverflowOp)
IntCompare(IntComparison)
FloatUnary(FloatUnaryOp)
FloatBinary(FloatBinaryOp)
FloatTernary(FloatTernaryOp)
FloatCompare(FloatComparison)
Convert(ConversionOp)
Load(LoadSpec)
LoadIndexed(LoadSpec, Int)
Store(StoreSpec)
StoreIndexed(StoreSpec, Int)
AtomicLoad(AtomicSpec)
AtomicStore(AtomicSpec)
AtomicRmw(AtomicSpec, AtomicRmwOp)
AtomicCompareExchange(AtomicSpec)
AtomicFence
Vector(VectorOp)
VectorLoad(VectorLoadSpec)
VectorStoreLane(VectorStoreLaneSpec)
Call(
NativeCall
)
Safepoint(
SafepointKind
)
} derive(Eq,
Debug
)

Operation::copy

fn Operation::copy(self : Operation) -> Operation

Operation::equal

fn Operation::equal(Operation, Operation) -> Bool

Operation::not_equal

fn Operation::not_equal(x : Operation, y : Operation) -> Bool

ReferenceComparison

pub(all) enum ReferenceComparison {
Equal
NotEqual
} derive(Eq, Hash,
Debug
)

ReferenceComparison::equal

ReferenceComparison::hash

ReferenceComparison::hash_combine

ReferenceComparison::not_equal

StackMapArgumentRoots

pub(all) enum StackMapArgumentRoots {
Fixed(Int)
I32ConstantOperand(Int)
AllocationOperands
} derive(Eq,
Debug
)

How a hidden safepoint describes GC roots already present in its arguments.

StackMapArgumentRoots::equal

StackMapArgumentRoots::not_equal

SwitchCase

pub(all) struct SwitchCase {
bits : UInt64
target : Block
arguments : Array[Value]
} derive(Eq,
Debug
)

SwitchCase::equal

fn SwitchCase::equal(SwitchCase, SwitchCase) -> Bool

SwitchCase::not_equal

fn SwitchCase::not_equal(x : SwitchCase, y : SwitchCase) -> Bool

TargetSink

pub struct TargetSink {
// private fields
}

Target-owned callbacks. Integer ids refer to target VCode values, blocks, and stack-object requests; DirectBuilder is the only component that exposes typed transient handles to legalization code.

TargetSink::new

fn TargetSink::new(parameters : () -> Array[Int], entry_block : () -> Int, create_block : (Array[
ValueType
]) -> (Int, Array[Int]), create_stack_object : (Int, Int) -> Int, switch_to_block : (Int) -> Unit, emit : (Int, Operation, Array[Int], Array[
ValueType
],
SourceLocation
?, Array[Int],
StackMapMetadata
?) -> Array[Int], terminate : (Int, TargetTerminator, TargetTerminatorMetadata) -> Unit, finish : () -> Unit) -> TargetSink

TargetSwitchCase

pub(all) struct TargetSwitchCase {
bits : UInt64
target : Int
arguments : Array[Int]
}

TargetTerminator

pub(all) enum TargetTerminator {
Jump(Int, Array[Int])
Branch(Int, Int, Array[Int], Int, Array[Int])
BranchIntCompare(IntComparison, Int, Int, Int, Array[Int], Int, Array[Int])
BranchIntCompareImmediate(IntComparison, Int, UInt64, Int, Array[Int], Int, Array[Int])
Switch(Int, Array[TargetSwitchCase], Int, Array[Int])
Return(Array[Int])
TailCall(
NativeCall
, Array[Int])
NoReturnCall(
NativeCall
, Array[Int])
Trap(
TrapReason
)
}

TargetTerminatorMetadata

pub(all) struct TargetTerminatorMetadata {
source :
SourceLocation
?
live_gc_roots : Array[Int]
}

Terminator

Terminator::equal

fn Terminator::equal(Terminator, Terminator) -> Bool

Terminator::not_equal

fn Terminator::not_equal(x : Terminator, y : Terminator) -> Bool

TerminatorMetadata

pub(all) struct TerminatorMetadata {
source :
SourceLocation
?
live_gc_roots : Array[Value]
} derive(Eq,
Debug
)

TerminatorMetadata::equal

TerminatorMetadata::not_equal

Value

pub(all) struct Value {
id : Int
} derive(Eq, Hash,
Debug
)

Opaque handles used only while one MilkIR function is streamed into a target selector. They do not own an SSA graph.

Value::equal

fn Value::equal(Value, Value) -> Bool

Value::hash

fn Value::hash(self : Value) -> Int

Value::hash_combine

fn Value::hash_combine(Value, Hasher) -> Unit

Value::not_equal

fn Value::not_equal(x : Value, y : Value) -> Bool

Value::to_repr

VectorBitwiseOp

pub(all) enum VectorBitwiseOp {
Not
And
Or
Xor
AndNot
BitSelect
} derive(Eq, Hash,
Debug
)

VectorBitwiseOp::equal

VectorBitwiseOp::hash

fn VectorBitwiseOp::hash(self : VectorBitwiseOp) -> Int

VectorBitwiseOp::hash_combine

fn VectorBitwiseOp::hash_combine(VectorBitwiseOp, Hasher) -> Unit

VectorBitwiseOp::not_equal

fn VectorBitwiseOp::not_equal(x : VectorBitwiseOp, y : VectorBitwiseOp) -> Bool

VectorFloatBinaryOp

pub(all) enum VectorFloatBinaryOp {
Add
Sub
Mul
Div
Min
Max
PseudoMin
PseudoMax
} derive(Eq, Hash,
Debug
)

VectorFloatBinaryOp::equal

VectorFloatBinaryOp::hash

VectorFloatBinaryOp::hash_combine

VectorFloatBinaryOp::not_equal

VectorFloatComparison

pub(all) enum VectorFloatComparison {
Equal
NotEqual
LessThan
LessOrEqual
GreaterThan
GreaterOrEqual
} derive(Eq, Hash,
Debug
)

VectorFloatComparison::equal

VectorFloatComparison::hash

VectorFloatComparison::hash_combine

VectorFloatComparison::not_equal

VectorFloatUnaryOp

pub(all) enum VectorFloatUnaryOp {
Absolute
Negate
SquareRoot
Ceil
Floor
Truncate
Nearest
} derive(Eq, Hash,
Debug
)

VectorFloatUnaryOp::equal

VectorFloatUnaryOp::hash

fn VectorFloatUnaryOp::hash(self : VectorFloatUnaryOp) -> Int

VectorFloatUnaryOp::hash_combine

fn VectorFloatUnaryOp::hash_combine(VectorFloatUnaryOp, Hasher) -> Unit

VectorFloatUnaryOp::not_equal

VectorHalf

pub(all) enum VectorHalf {
Low
High
} derive(Eq, Hash,
Debug
)

VectorHalf::equal

fn VectorHalf::equal(VectorHalf, VectorHalf) -> Bool

VectorHalf::hash

fn VectorHalf::hash(self : VectorHalf) -> Int

VectorHalf::hash_combine

fn VectorHalf::hash_combine(VectorHalf, Hasher) -> Unit

VectorHalf::not_equal

fn VectorHalf::not_equal(x : VectorHalf, y : VectorHalf) -> Bool

VectorIntBinaryOp

VectorIntBinaryOp::equal

VectorIntBinaryOp::hash

fn VectorIntBinaryOp::hash(self : VectorIntBinaryOp) -> Int

VectorIntBinaryOp::hash_combine

fn VectorIntBinaryOp::hash_combine(VectorIntBinaryOp, Hasher) -> Unit

VectorIntBinaryOp::not_equal

fn VectorIntBinaryOp::not_equal(x : VectorIntBinaryOp, y : VectorIntBinaryOp) -> Bool

VectorIntComparison

VectorIntComparison::equal

VectorIntComparison::hash

VectorIntComparison::hash_combine

VectorIntComparison::not_equal

VectorIntShiftOp

VectorIntShiftOp::equal

VectorIntShiftOp::hash

fn VectorIntShiftOp::hash(self : VectorIntShiftOp) -> Int

VectorIntShiftOp::hash_combine

fn VectorIntShiftOp::hash_combine(VectorIntShiftOp, Hasher) -> Unit

VectorIntShiftOp::not_equal

fn VectorIntShiftOp::not_equal(x : VectorIntShiftOp, y : VectorIntShiftOp) -> Bool

VectorIntUnaryOp

pub(all) enum VectorIntUnaryOp {
Absolute
Negate
PopulationCount
ExtendAddPairwise(
Signedness
)
} derive(Eq, Hash,
Debug
)

VectorIntUnaryOp::equal

VectorIntUnaryOp::hash

fn VectorIntUnaryOp::hash(self : VectorIntUnaryOp) -> Int

VectorIntUnaryOp::hash_combine

fn VectorIntUnaryOp::hash_combine(VectorIntUnaryOp, Hasher) -> Unit

VectorIntUnaryOp::not_equal

fn VectorIntUnaryOp::not_equal(x : VectorIntUnaryOp, y : VectorIntUnaryOp) -> Bool

VectorLane

pub(all) enum VectorLane {
I8x16
I16x8
I32x4
I64x2
F32x4
F64x2
} derive(Eq, Hash,
Debug
)

VectorLane::equal

fn VectorLane::equal(VectorLane, VectorLane) -> Bool

VectorLane::hash

fn VectorLane::hash(self : VectorLane) -> Int

VectorLane::hash_combine

fn VectorLane::hash_combine(VectorLane, Hasher) -> Unit

VectorLane::not_equal

fn VectorLane::not_equal(x : VectorLane, y : VectorLane) -> Bool

VectorLoadKind

VectorLoadKind::equal

VectorLoadKind::hash

fn VectorLoadKind::hash(self : VectorLoadKind) -> Int

VectorLoadKind::hash_combine

fn VectorLoadKind::hash_combine(VectorLoadKind, Hasher) -> Unit

VectorLoadKind::not_equal

fn VectorLoadKind::not_equal(x : VectorLoadKind, y : VectorLoadKind) -> Bool

VectorLoadSpec

VectorLoadSpec::equal

VectorLoadSpec::hash

fn VectorLoadSpec::hash(self : VectorLoadSpec) -> Int

VectorLoadSpec::hash_combine

fn VectorLoadSpec::hash_combine(VectorLoadSpec, Hasher) -> Unit

VectorLoadSpec::not_equal

fn VectorLoadSpec::not_equal(x : VectorLoadSpec, y : VectorLoadSpec) -> Bool

VectorOp

pub(all) enum VectorOp {
Splat(VectorLane)
ExtractLane(VectorLane, Int,
Signedness
?)
ReplaceLane(VectorLane, Int)
Shuffle(FixedArray[Int])
Swizzle
Bitwise(VectorBitwiseOp)
IntUnary(VectorLane, VectorIntUnaryOp)
IntBinary(VectorLane, VectorIntBinaryOp)
IntShift(VectorLane, VectorIntShiftOp)
IntCompare(VectorLane, VectorIntComparison)
FloatUnary(VectorLane, VectorFloatUnaryOp)
FloatBinary(VectorLane, VectorFloatBinaryOp)
FloatTernary(VectorLane, FloatTernaryOp)
FloatCompare(VectorLane, VectorFloatComparison)
Predicate(VectorPredicateOp)
Convert(VectorConversionOp)
Relaxed(VectorRelaxedOp)
} derive(Eq,
Debug
)

VectorOp::equal

fn VectorOp::equal(VectorOp, VectorOp) -> Bool

VectorOp::not_equal

fn VectorOp::not_equal(x : VectorOp, y : VectorOp) -> Bool

VectorOp::to_repr

VectorPredicateOp

pub(all) enum VectorPredicateOp {
AnyTrue
AllTrue(VectorLane)
BitMask(VectorLane)
} derive(Eq, Hash,
Debug
)

VectorPredicateOp::equal

VectorPredicateOp::hash

fn VectorPredicateOp::hash(self : VectorPredicateOp) -> Int

VectorPredicateOp::hash_combine

fn VectorPredicateOp::hash_combine(VectorPredicateOp, Hasher) -> Unit

VectorPredicateOp::not_equal

fn VectorPredicateOp::not_equal(x : VectorPredicateOp, y : VectorPredicateOp) -> Bool

VectorRelaxedOp

pub(all) enum VectorRelaxedOp {
Swizzle
FloatToInt(VectorLane, VectorLane,
Signedness
)
FusedMultiplyAdd(VectorLane, FloatTernaryOp)
LaneSelect(VectorLane)
Min(VectorLane)
Max(VectorLane)
Q15MultiplyRoundedSigned
Dot8To16Signed
Dot8To32AddSigned
} derive(Eq, Hash,
Debug
)

VectorRelaxedOp::equal

VectorRelaxedOp::hash

fn VectorRelaxedOp::hash(self : VectorRelaxedOp) -> Int

VectorRelaxedOp::hash_combine

fn VectorRelaxedOp::hash_combine(VectorRelaxedOp, Hasher) -> Unit

VectorRelaxedOp::not_equal

fn VectorRelaxedOp::not_equal(x : VectorRelaxedOp, y : VectorRelaxedOp) -> Bool

VectorStoreLaneSpec

pub struct VectorStoreLaneSpec {
lane : VectorLane
lane_index : Int
offset : UInt64
endianness :
Endianness

trap :
TrapReason
?
} derive(Eq, Hash,
Debug
)

VectorStoreLaneSpec::equal

VectorStoreLaneSpec::hash

VectorStoreLaneSpec::hash_combine

VectorStoreLaneSpec::new

VectorStoreLaneSpec::not_equal

verify_call_operands

fn verify_call_operands(call :
NativeCall
, operands : Array[
ValueType
], context : String) -> String?

verify_operation_contract