メインコンテンツまでスキップ

Class Instruction

Represents a single instruction in a WebAssembly function body.

Assembly: WaaS.Core.dll​
View Source​
Declaration
public abstract class Instruction

Derived:

Expand

WaaS.Models.BinaryBoolInstruction<TValue, TValueType>, WaaS.Models.BinaryInstruction<TValue, TValueType>, WaaS.Models.BitSelectV128, WaaS.Models.BlockDelimiterInstruction, WaaS.Models.BlockInstruction, WaaS.Models.Br, WaaS.Models.BrIf, WaaS.Models.BrTable, WaaS.Models.Call, WaaS.Models.CallIndirect, WaaS.Models.ConstV128, WaaS.Models.Const<TValue, TValueType>, WaaS.Models.DataDrop, WaaS.Models.Drop, WaaS.Models.ElemDrop, WaaS.Models.GlobalGet, WaaS.Models.GlobalSet, WaaS.Models.Load<TValue, TValueType, TReadValue>, WaaS.Models.LocalGet, WaaS.Models.LocalSet, WaaS.Models.LocalTee, WaaS.Models.MemoryCopy, WaaS.Models.MemoryFill, WaaS.Models.MemoryGrow, WaaS.Models.MemoryInit, WaaS.Models.MemorySize, WaaS.Models.Nop, WaaS.Models.RefFunc, WaaS.Models.RefIsNull, WaaS.Models.RefNull, WaaS.Models.Return, WaaS.Models.Select, WaaS.Models.SelectTyped, WaaS.Models.Store<TValue, TValueType, TWriteValue>, WaaS.Models.TableCopy, WaaS.Models.TableFill, WaaS.Models.TableGet, WaaS.Models.TableGrow, WaaS.Models.TableInit, WaaS.Models.TableSet, WaaS.Models.TableSize, WaaS.Models.UnaryBoolInstruction<TValue, TValueType>, WaaS.Models.UnaryInstruction<TValue, TValueType>, WaaS.Models.UnaryInstruction<TValue1, TValueType1, TValue2, TValueType2>, WaaS.Models.Unreachable, WaaS.Models.V128BinaryInstruction, WaaS.Models.V128ExtractLaneInstruction<TLane, TValue, TValueType>, WaaS.Models.V128MemoryInstruction, WaaS.Models.V128ReplaceLaneInstruction<TLane, TValue, TValueType>, WaaS.Models.V128ShiftInstruction<TLane>, WaaS.Models.V128SplatInstruction<TLane, TValue, TValueType>, WaaS.Models.V128TestInstruction, WaaS.Models.V128UnaryInstruction

Properties​

Index​

Index of the instruction in the function body.

View Source​
Declaration
public uint Index { get; }

Offset​

Byte offset of the instruction from the start of the module binary.

View Source​
Declaration
public uint Offset { get; }

Methods​

Execute(WasmStackFrame)​

Executes the instruction.

View Source​
Declaration
public abstract void Execute(WasmStackFrame current)
Parameters​
TypeName
WaaS.Runtime.WasmStackFramecurrent

PreValidateStackState(in ValidationContext)​

Get the number of values to pop and push from the stack to validate stack depth.

View Source​
Declaration
public abstract (uint popCount, uint pushCount) PreValidateStackState(in ValidationContext context)
Returns​

System.ValueTuple<System.UInt32,System.UInt32>

Parameters​
TypeName
WaaS.Models.ValidationContextcontext

ValidateStackState(in ValidationContext, ref ValidationBlockStackState)​

Simulates stack operations to validate the stack state.

View Source​
Declaration
public abstract void ValidateStackState(in ValidationContext context, ref ValidationBlockStackState stackState)
Parameters​
TypeName
WaaS.Models.ValidationContextcontext
WaaS.Models.ValidationBlockStackStatestackState

Validate(in ValidationContext)​

Validates the instruction.

View Source​
Declaration
public virtual void Validate(in ValidationContext context)
Parameters​
TypeName
WaaS.Models.ValidationContextcontext