Show / Hide Table of Contents

    Struct Instruction

    An instruction: a statement that produces a single value.

    Implements
    System.IEquatable<Instruction>
    Inherited Members
    System.ValueType.ToString()
    System.Object.Equals(System.Object, System.Object)
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.GetType()
    Namespace: Flame.Compiler
    Assembly: Flame.Compiler.dll
    Syntax
    public struct Instruction : IEquatable<Instruction>

    Properties

    | Improve this Doc View Source

    Arguments

    Gets a list of values this instruction takes as arguments.

    Declaration
    public IReadOnlyList<ValueTag> Arguments { get; }
    Property Value
    Type Description
    System.Collections.Generic.IReadOnlyList<ValueTag>

    The values taken as arguments.

    | Improve this Doc View Source

    Prototype

    Gets this instruction's prototype.

    Declaration
    public InstructionPrototype Prototype { get; }
    Property Value
    Type Description
    InstructionPrototype

    The prototype.

    | Improve this Doc View Source

    ResultType

    Gets the type of value produced by this instruction.

    Declaration
    public IType ResultType { get; }
    Property Value
    Type Description
    IType

    A type of value.

    Methods

    | Improve this Doc View Source

    CreateAlloca(IType)

    Creates an instruction that allocates storage on the stack for a single value element of a particular type.

    Declaration
    public static Instruction CreateAlloca(IType elementType)
    Parameters
    Type Name Description
    IType elementType

    The type of value to allocate storage for.

    Returns
    Type Description
    Instruction

    An alloca instruction.

    | Improve this Doc View Source

    CreateAllocaArray(IType, ValueTag)

    Creates an instruction that allocates storage on the stack for a variable number of elements of a particular type.

    Declaration
    public static Instruction CreateAllocaArray(IType elementType, ValueTag elementCount)
    Parameters
    Type Name Description
    IType elementType

    The type of value to allocate storage for.

    ValueTag elementCount

    The number of elements to allocate storage for.

    Returns
    Type Description
    Instruction

    An alloca-array instruction.

    | Improve this Doc View Source

    CreateAllocaPinnedIntrinsic(IType)

    Creates an instruction that allocates a function-local variable that is pinned; the GC is not allowed to move the contents of the local.

    Declaration
    public static Instruction CreateAllocaPinnedIntrinsic(IType elementType)
    Parameters
    Type Name Description
    IType elementType

    The type of value to store in the pinned variable.

    Returns
    Type Description
    Instruction

    An alloca-pinned instruction prototype.

    | Improve this Doc View Source

    CreateArithmeticIntrinsic(String, Boolean, IType, IReadOnlyList<IType>, IReadOnlyList<ValueTag>)

    Creates an arithmetic intrinsic.

    Declaration
    public static Instruction CreateArithmeticIntrinsic(string operatorName, bool isChecked, IType resultType, IReadOnlyList<IType> parameterTypes, IReadOnlyList<ValueTag> arguments)
    Parameters
    Type Name Description
    System.String operatorName

    The name of the arithmetic operator to apply.

    System.Boolean isChecked

    Tells if the arithmetic intrinsic is checked, that is, if it throws on overflow.

    IType resultType

    The type of value produced by the intrinsic.

    System.Collections.Generic.IReadOnlyList<IType> parameterTypes

    The parameter types taken by the intrinsic.

    System.Collections.Generic.IReadOnlyList<ValueTag> arguments

    The argument list to pass to the instruction.

    Returns
    Type Description
    Instruction

    An arithmetic intrinsic.

    | Improve this Doc View Source

    CreateBinaryArithmeticIntrinsic(String, Boolean, IType, ValueTag, ValueTag)

    Creates a binary arithmetic intrinsic that is closed under the type of its arguments.

    Declaration
    public static Instruction CreateBinaryArithmeticIntrinsic(string operatorName, bool isChecked, IType elementType, ValueTag left, ValueTag right)
    Parameters
    Type Name Description
    System.String operatorName

    The name of the binary arithmetic operator to apply.

    System.Boolean isChecked

    Tells if the arithmetic intrinsic is checked, that is, if it throws on overflow.

    IType elementType

    The type of both parameter types and the result type of the intrinsic.

    ValueTag left

    The first argument to the intrinsic.

    ValueTag right

    The second argument to the intrinsic.

    Returns
    Type Description
    Instruction

    An arithmetic intrinsic.

    | Improve this Doc View Source

    CreateBox(IType, ValueTag)

    Creates an instruction that boxes a value type, turning it into a reference type (aka box pointer).

    Declaration
    public static Instruction CreateBox(IType elementType, ValueTag element)
    Parameters
    Type Name Description
    IType elementType

    The type of value to box.

    ValueTag element

    The value to box.

    Returns
    Type Description
    Instruction

    A box instruction.

    | Improve this Doc View Source

    CreateCall(IMethod, MethodLookup, ValueTag, IReadOnlyList<ValueTag>)

    Creates an instruction that calls a particular method.

    Declaration
    public static Instruction CreateCall(IMethod callee, MethodLookup lookup, ValueTag thisArgument, IReadOnlyList<ValueTag> arguments)
    Parameters
    Type Name Description
    IMethod callee

    The method to call.

    MethodLookup lookup

    The method implementation lookup technique to use for calling the method.

    ValueTag thisArgument

    The 'this' argument for the method call.

    System.Collections.Generic.IReadOnlyList<ValueTag> arguments

    The argument list for the method call.

    Returns
    Type Description
    Instruction

    A call instruction.

    | Improve this Doc View Source

    CreateCall(IMethod, MethodLookup, IReadOnlyList<ValueTag>)

    Creates an instruction that calls a particular method.

    Declaration
    public static Instruction CreateCall(IMethod callee, MethodLookup lookup, IReadOnlyList<ValueTag> arguments)
    Parameters
    Type Name Description
    IMethod callee

    The method to call.

    MethodLookup lookup

    The method implementation lookup technique to use for calling the method.

    System.Collections.Generic.IReadOnlyList<ValueTag> arguments

    The extended argument list: a list of arguments prefixed with a 'this' argument, if applicable.

    Returns
    Type Description
    Instruction

    A call instruction.

    | Improve this Doc View Source

    CreateCaptureIntrinsic(IType, IType, ValueTag)

    Creates a 'capture' intrinsic, which captures a (thrown) exception.

    Declaration
    public static Instruction CreateCaptureIntrinsic(IType resultType, IType argumentType, ValueTag argument)
    Parameters
    Type Name Description
    IType resultType

    The type of a captured exception.

    IType argumentType

    The type of the exception to capture.

    ValueTag argument

    An exception to capture.

    Returns
    Type Description
    Instruction

    A 'capture' intrinsic.

    | Improve this Doc View Source

    CreateConstant(Constant, IType)

    Creates an instruction that creates a constant value of a particular type.

    Declaration
    public static Instruction CreateConstant(Constant value, IType type)
    Parameters
    Type Name Description
    Constant value

    The constant value to produce.

    IType type

    The type of value created by the instruction.

    Returns
    Type Description
    Instruction

    A constant instruction.

    | Improve this Doc View Source

    CreateConstrainedCall(IMethod, ValueTag, IReadOnlyList<ValueTag>)

    Creates an instruction that performs a constrained virtual call to a particular method.

    Declaration
    public static Instruction CreateConstrainedCall(IMethod callee, ValueTag thisArgument, IReadOnlyList<ValueTag> arguments)
    Parameters
    Type Name Description
    IMethod callee

    The method to call.

    ValueTag thisArgument

    The 'this' argument for the constrained method call.

    System.Collections.Generic.IReadOnlyList<ValueTag> arguments

    The argument list for the constrained method call.

    Returns
    Type Description
    Instruction

    A constrained call instruction.

    | Improve this Doc View Source

    CreateConvertIntrinsic(Boolean, IType, IType, ValueTag)

    Creates an intrinsic that converts one primitive type to another.

    Declaration
    public static Instruction CreateConvertIntrinsic(bool isChecked, IType targetType, IType sourceType, ValueTag value)
    Parameters
    Type Name Description
    System.Boolean isChecked

    Tells if the arithmetic intrinsic is checked, that is, if it throws on overflow.

    IType targetType

    The target primitive type: the type to convert the value to.

    IType sourceType

    The source primitive type: the type of the value to convert.

    ValueTag value

    The value to convert.

    Returns
    Type Description
    Instruction

    A conversion instruction.

    | Improve this Doc View Source

    CreateCopy(IType, ValueTag)

    Creates a copy instruction, which creates an alias for an existing value.

    Declaration
    public static Instruction CreateCopy(IType type, ValueTag value)
    Parameters
    Type Name Description
    IType type

    The type of value to copy.

    ValueTag value

    The value to copy.

    Returns
    Type Description
    Instruction

    A copy instruction.

    | Improve this Doc View Source

    CreateDefaultConstant(IType)

    Creates an instruction that creates a default-value constant of a particular type. The resulting constant need not be an instance of DefaultConstant: it may be tailored to the type of value to produce.

    Declaration
    public static Instruction CreateDefaultConstant(IType type)
    Parameters
    Type Name Description
    IType type

    The type of value created by the instruction.

    Returns
    Type Description
    Instruction

    A default-value constant instruction.

    | Improve this Doc View Source

    CreateDynamicCast(PointerType, ValueTag)

    Creates a dynamic cast instruction that converts from one pointer type to another.

    Declaration
    public static Instruction CreateDynamicCast(PointerType targetType, ValueTag operand)
    Parameters
    Type Name Description
    PointerType targetType

    A type to convert operands to.

    ValueTag operand

    An operand to convert to the target type.

    Returns
    Type Description
    Instruction

    A dynamic cast instruction.

    | Improve this Doc View Source

    CreateGetCapturedExceptionIntrinsic(IType, IType, ValueTag)

    Creates a 'get_captured_exception' intrinsic, which throws an exception.

    Declaration
    public static Instruction CreateGetCapturedExceptionIntrinsic(IType resultType, IType argumentType, ValueTag argument)
    Parameters
    Type Name Description
    IType resultType

    The type of the exception value returned by this operation.

    IType argumentType

    The type of the captured exception to examine.

    ValueTag argument

    A captured exception to examine.

    Returns
    Type Description
    Instruction

    A 'get_captured_exception' intrinsic.

    | Improve this Doc View Source

    CreateGetElementPointerIntrinsic(IType, IType, IReadOnlyList<IType>, ValueTag, IReadOnlyList<ValueTag>)

    Creates a 'get_element_pointer' intrinsic, which indexes an array and computes a pointer to the indexed array element.

    Declaration
    public static Instruction CreateGetElementPointerIntrinsic(IType elementType, IType arrayType, IReadOnlyList<IType> indexTypes, ValueTag arrayValue, IReadOnlyList<ValueTag> indexValues)
    Parameters
    Type Name Description
    IType elementType

    The type of element to compute a pointer to.

    IType arrayType

    The type of array to index.

    System.Collections.Generic.IReadOnlyList<IType> indexTypes

    The types of indices to index the array with.

    ValueTag arrayValue

    The array to index.

    System.Collections.Generic.IReadOnlyList<ValueTag> indexValues

    The indices to index the array with.

    Returns
    Type Description
    Instruction

    A 'get_element_pointer' intrinsic.

    | Improve this Doc View Source

    CreateGetFieldPointer(IField, ValueTag)

    Creates a get-field-pointer instruction.

    Declaration
    public static Instruction CreateGetFieldPointer(IField field, ValueTag basePointer)
    Parameters
    Type Name Description
    IField field

    The field to create a pointer to.

    ValueTag basePointer

    A value that includes field.

    Returns
    Type Description
    Instruction

    A get-field-pointer instruction.

    | Improve this Doc View Source

    CreateGetLengthIntrinsic(IType, IType, ValueTag)

    Creates a 'get_length' intrinsic, which computes the number of elements in an array.

    Declaration
    public static Instruction CreateGetLengthIntrinsic(IType sizeType, IType arrayType, ValueTag arrayValue)
    Parameters
    Type Name Description
    IType sizeType

    The type of integer to store the length of the array in.

    IType arrayType

    The type of array to inspect.

    ValueTag arrayValue

    The array to inspect.

    Returns
    Type Description
    Instruction

    A 'get_length' intrinsic.

    | Improve this Doc View Source

    CreateGetStaticFieldPointer(IField)

    Creates a get-static-field-pointer instruction.

    Declaration
    public static Instruction CreateGetStaticFieldPointer(IField field)
    Parameters
    Type Name Description
    IField field

    The field to create a pointer to.

    Returns
    Type Description
    Instruction

    A get-static-field-pointer instruction.

    | Improve this Doc View Source

    CreateIndirectCall(IType, IReadOnlyList<IType>, ValueTag, IReadOnlyList<ValueTag>)

    Creates an indirect call instruction.

    Declaration
    public static Instruction CreateIndirectCall(IType returnType, IReadOnlyList<IType> parameterTypes, ValueTag callee, IReadOnlyList<ValueTag> arguments)
    Parameters
    Type Name Description
    IType returnType

    The type of value returned by the callee.

    System.Collections.Generic.IReadOnlyList<IType> parameterTypes

    A list of parameter types.

    ValueTag callee

    The delegate or function pointer to call.

    System.Collections.Generic.IReadOnlyList<ValueTag> arguments

    The argument list for the call.

    Returns
    Type Description
    Instruction

    An indirect call instruction.

    | Improve this Doc View Source

    CreateLoad(IType, ValueTag, Boolean, Alignment)

    Creates a load instruction.

    Declaration
    public static Instruction CreateLoad(IType pointeeType, ValueTag pointer, bool isVolatile = false, Alignment alignment = default(Alignment))
    Parameters
    Type Name Description
    IType pointeeType

    The type of value to load.

    ValueTag pointer

    A pointer to the value to load.

    System.Boolean isVolatile

    Tells if the load is a volatile operation. Volatile operations may not be reordered with regard to each other.

    Alignment alignment

    The pointer alignment of pointer.

    Returns
    Type Description
    Instruction

    A load instruction.

    | Improve this Doc View Source

    CreateLoadElementIntrinsic(IType, IType, IReadOnlyList<IType>, ValueTag, IReadOnlyList<ValueTag>)

    Creates a 'load_element' intrinsic, which indexes an array and loads the indexed array element.

    Declaration
    public static Instruction CreateLoadElementIntrinsic(IType elementType, IType arrayType, IReadOnlyList<IType> indexTypes, ValueTag arrayValue, IReadOnlyList<ValueTag> indexValues)
    Parameters
    Type Name Description
    IType elementType

    The type of element to load.

    IType arrayType

    The type of array to index.

    System.Collections.Generic.IReadOnlyList<IType> indexTypes

    The types of indices to index the array with.

    ValueTag arrayValue

    The array to index.

    System.Collections.Generic.IReadOnlyList<ValueTag> indexValues

    The indices to index the array with.

    Returns
    Type Description
    Instruction

    A 'load_element' intrinsic.

    | Improve this Doc View Source

    CreateNewArrayIntrinsic(IType, IType, ValueTag)

    Creates a 'new_array' intrinsic, which allocates a new array of a particular size.

    Declaration
    public static Instruction CreateNewArrayIntrinsic(IType arrayType, IType sizeType, ValueTag sizeValue)
    Parameters
    Type Name Description
    IType arrayType

    The type of array to allocate.

    IType sizeType

    The type of integer that describes the desired length of the array to allocate.

    ValueTag sizeValue

    The desired length of the array to allocate.

    Returns
    Type Description
    Instruction

    A 'new_array' intrinsic.

    | Improve this Doc View Source

    CreateNewDelegate(IType, IMethod, ValueTag, MethodLookup)

    Creates a new-delegate instruction.

    Declaration
    public static Instruction CreateNewDelegate(IType delegateType, IMethod callee, ValueTag thisArgument, MethodLookup lookup)
    Parameters
    Type Name Description
    IType delegateType

    The type of the resulting delegate or function pointer.

    IMethod callee

    The method called by the resulting delegate or function pointer.

    ValueTag thisArgument

    The 'this' argument, if any. A null value means that there is no 'this' argument.

    MethodLookup lookup

    The method implementation lookup technique to use.

    Returns
    Type Description
    Instruction

    A new-delegate instruction.

    | Improve this Doc View Source

    CreateNewObject(IMethod, IReadOnlyList<ValueTag>)

    Creates a new-object instruction that allocates storage on the heap for an object and initializes it using a constructor.

    Declaration
    public static Instruction CreateNewObject(IMethod constructor, IReadOnlyList<ValueTag> arguments)
    Parameters
    Type Name Description
    IMethod constructor

    The constructor to initialize objects with.

    System.Collections.Generic.IReadOnlyList<ValueTag> arguments

    A list of arguments to call the constructor with.

    Returns
    Type Description
    Instruction

    A new-object instruction.

    | Improve this Doc View Source

    CreateReinterpretCast(PointerType, ValueTag)

    Creates a reinterpret cast instruction that converts from one pointer type to another.

    Declaration
    public static Instruction CreateReinterpretCast(PointerType targetType, ValueTag operand)
    Parameters
    Type Name Description
    PointerType targetType

    A type to convert operands to.

    ValueTag operand

    An operand to convert to the target type.

    Returns
    Type Description
    Instruction

    A reinterpret cast instruction.

    | Improve this Doc View Source

    CreateRelationalIntrinsic(String, IType, IType, ValueTag, ValueTag)

    Creates a binary arithmetic intrinsic that produces a Boolean value.

    Declaration
    public static Instruction CreateRelationalIntrinsic(string operatorName, IType booleanType, IType elementType, ValueTag left, ValueTag right)
    Parameters
    Type Name Description
    System.String operatorName

    The name of the binary arithmetic operator to apply.

    IType booleanType

    The type of value returned by the relational operator.

    IType elementType

    The type of both parameter types.

    ValueTag left

    The first argument to the intrinsic.

    ValueTag right

    The second argument to the intrinsic.

    Returns
    Type Description
    Instruction

    A relational arithmetic intrinsic.

    | Improve this Doc View Source

    CreateRethrowIntrinsic(IType, ValueTag)

    Creates a 'rethrow' intrinsic, which rethrows a captured exception. The difference between 'rethrow' and 'throw' is that the former takes a captured exception and retains stack trace information whereas the latter takes a (raw) exception value and constructs a new stack trace.

    Declaration
    public static Instruction CreateRethrowIntrinsic(IType capturedExceptionType, ValueTag capturedException)
    Parameters
    Type Name Description
    IType capturedExceptionType

    The type of the captured exception to rethrow.

    ValueTag capturedException

    The captured exception to rethrow.

    Returns
    Type Description
    Instruction

    A 'rethrow' intrinsic.

    | Improve this Doc View Source

    CreateSizeOf(IType, IType)

    Creates an instruction that measures the size of a type.

    Declaration
    public static Instruction CreateSizeOf(IType measuredType, IType resultType)
    Parameters
    Type Name Description
    IType measuredType

    The type to measure.

    IType resultType

    The type of value to produce.

    Returns
    Type Description
    Instruction

    A sizeof instruction.

    | Improve this Doc View Source

    CreateStore(IType, ValueTag, ValueTag, Boolean, Alignment)

    Creates a store instruction.

    Declaration
    public static Instruction CreateStore(IType pointeeType, ValueTag pointer, ValueTag value, bool isVolatile = false, Alignment alignment = default(Alignment))
    Parameters
    Type Name Description
    IType pointeeType

    The type of value. Also the type of value pointed to by pointer.

    ValueTag pointer

    A pointer the target of the store.

    ValueTag value

    A value to store at pointer's pointee.

    System.Boolean isVolatile

    Tells if the store is a volatile operation. Volatile operations may not be reordered with regard to each other.

    Alignment alignment

    The pointer alignment of pointer.

    Returns
    Type Description
    Instruction

    A store instruction.

    | Improve this Doc View Source

    CreateStoreElementIntrinsic(IType, IType, IReadOnlyList<IType>, ValueTag, ValueTag, IReadOnlyList<ValueTag>)

    Creates a 'store_element' intrinsic, which indexes an array and sets the indexed array element.

    Declaration
    public static Instruction CreateStoreElementIntrinsic(IType elementType, IType arrayType, IReadOnlyList<IType> indexTypes, ValueTag elementValue, ValueTag arrayValue, IReadOnlyList<ValueTag> indexValues)
    Parameters
    Type Name Description
    IType elementType

    The type of element to store in the array.

    IType arrayType

    The type of array to index.

    System.Collections.Generic.IReadOnlyList<IType> indexTypes

    The types of indices to index the array with.

    ValueTag elementValue

    The value to store in the array.

    ValueTag arrayValue

    The array to index.

    System.Collections.Generic.IReadOnlyList<ValueTag> indexValues

    The indices to index the array with.

    Returns
    Type Description
    Instruction

    A 'store_element' intrinsic.

    | Improve this Doc View Source

    CreateThrowIntrinsic(IType, ValueTag)

    Creates a 'throw' intrinsic, which throws an exception.

    Declaration
    public static Instruction CreateThrowIntrinsic(IType exceptionType, ValueTag exception)
    Parameters
    Type Name Description
    IType exceptionType

    The type of exception to throw.

    ValueTag exception

    The exception to throw.

    Returns
    Type Description
    Instruction

    A 'throw' intrinsic.

    | Improve this Doc View Source

    CreateUnbox(IType, ValueTag)

    Creates an instruction that unboxes a box pointer, turning it into a ref pointer to the box's contents.

    Declaration
    public static Instruction CreateUnbox(IType elementType, ValueTag value)
    Parameters
    Type Name Description
    IType elementType

    The type of value to unbox.

    ValueTag value

    The value to unbox.

    Returns
    Type Description
    Instruction

    An unbox instruction.

    | Improve this Doc View Source

    CreateUnboxAnyIntrinsic(IType, IType, ValueTag)

    Creates an 'unbox_any' intrinsic. Its return type can either be a value type or a reference type (aka box pointer). If its return type is set to a value type, 'unbox_any' unboxes its argument and loads it. If 'unbox_any's return value is set to a reference type, 'unbox_any' checks that its argument is a subtype of the return type.

    Declaration
    public static Instruction CreateUnboxAnyIntrinsic(IType targetType, IType sourceType, ValueTag value)
    Parameters
    Type Name Description
    IType targetType

    The target type: the type to unbox or cast a box pointer to.

    IType sourceType

    The source type: the type of the value to convert.

    ValueTag value

    The value to convert.

    Returns
    Type Description
    Instruction

    An 'unbox_any' intrinsic.

    | Improve this Doc View Source

    Equals(Instruction)

    Tests if this instruction is (superficially) identical to another instruction.

    Declaration
    public bool Equals(Instruction other)
    Parameters
    Type Name Description
    Instruction other

    The other instruction.

    Returns
    Type Description
    System.Boolean

    true if this instruction has the same prototype and arguments as other; otherwise, false.

    | Improve this Doc View Source

    Equals(Object)

    Declaration
    public override bool Equals(object obj)
    Parameters
    Type Name Description
    System.Object obj
    Returns
    Type Description
    System.Boolean
    Overrides
    System.ValueType.Equals(System.Object)
    | Improve this Doc View Source

    GetHashCode()

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    System.Int32
    Overrides
    System.ValueType.GetHashCode()
    | Improve this Doc View Source

    Map(MemberMapping)

    Applies a member mapping to this instruction.

    Declaration
    public Instruction Map(MemberMapping mapping)
    Parameters
    Type Name Description
    MemberMapping mapping

    A member mapping.

    Returns
    Type Description
    Instruction

    A transformed prototype.

    | Improve this Doc View Source

    MapArguments(IReadOnlyDictionary<ValueTag, ValueTag>)

    Creates a new instruction by applying a mapping to this instruction's argument list.

    Declaration
    public Instruction MapArguments(IReadOnlyDictionary<ValueTag, ValueTag> mapping)
    Parameters
    Type Name Description
    System.Collections.Generic.IReadOnlyDictionary<ValueTag, ValueTag> mapping

    The mapping to apply to every element of this instruction's argument list, encoded as a dictionary. Arguments that do not show up as keys in the dictionary are left unmodified.

    Returns
    Type Description
    Instruction

    A new instruction.

    | Improve this Doc View Source

    MapArguments(Func<ValueTag, ValueTag>)

    Creates a new instruction by applying a mapping to this instruction's argument list.

    Declaration
    public Instruction MapArguments(Func<ValueTag, ValueTag> mapping)
    Parameters
    Type Name Description
    System.Func<ValueTag, ValueTag> mapping

    The mapping to apply to every element of this instruction's argument list.

    Returns
    Type Description
    Instruction

    A new instruction.

    | Improve this Doc View Source

    Validate(MethodBody)

    Checks if this instruction conforms to the rules for its instruction prototype.

    Declaration
    public IReadOnlyList<string> Validate(MethodBody body)
    Parameters
    Type Name Description
    MethodBody body

    The method body that defines this instruction.

    Returns
    Type Description
    System.Collections.Generic.IReadOnlyList<System.String>

    A list of validation errors.

    | Improve this Doc View Source

    WithArguments(IReadOnlyList<ValueTag>)

    Creates a new instruction that copies everything from this instruction but uses a different argument list.

    Declaration
    public Instruction WithArguments(IReadOnlyList<ValueTag> newArguments)
    Parameters
    Type Name Description
    System.Collections.Generic.IReadOnlyList<ValueTag> newArguments

    The new argument list.

    Returns
    Type Description
    Instruction

    A new instruction.

    Operators

    | Improve this Doc View Source

    Equality(Instruction, Instruction)

    Tests if the first instruction equals the second.

    Declaration
    public static bool operator ==(Instruction left, Instruction right)
    Parameters
    Type Name Description
    Instruction left

    The first instruction.

    Instruction right

    The second instruction.

    Returns
    Type Description
    System.Boolean

    true if the instructions have identical prototypes and arguments; otherwise, false.

    | Improve this Doc View Source

    Inequality(Instruction, Instruction)

    Tests if the first instruction does not equal the second.

    Declaration
    public static bool operator !=(Instruction left, Instruction right)
    Parameters
    Type Name Description
    Instruction left

    The first instruction.

    Instruction right

    The second instruction.

    Returns
    Type Description
    System.Boolean

    false if the instructions have identical prototypes and arguments; otherwise, true.

    Implements

    System.IEquatable<T>
    • Improve this Doc
    • View Source
    Back to top Generated by DocFX