60 types derived from Instruction
System.Linq.Expressions (60)
System\Linq\Expressions\Interpreter\AddInstruction.cs (2)
9internal abstract class AddInstruction : Instruction 181internal abstract class AddOvfInstruction : Instruction
System\Linq\Expressions\Interpreter\AndInstruction.cs (1)
8internal abstract class AndInstruction : Instruction
System\Linq\Expressions\Interpreter\ArrayOperations.cs (6)
9internal sealed class NewArrayInitInstruction : Instruction 37internal sealed class NewArrayInstruction : Instruction 62internal sealed class NewArrayBoundsInstruction : Instruction 98internal sealed class GetArrayItemInstruction : Instruction 117internal sealed class SetArrayItemInstruction : Instruction 136internal sealed class ArrayLengthInstruction : Instruction
System\Linq\Expressions\Interpreter\CallInstruction.cs (1)
12internal abstract partial class CallInstruction : Instruction
System\Linq\Expressions\Interpreter\ControlFlowInstructions.cs (10)
13internal abstract class OffsetInstruction : Instruction 154internal abstract class IndexedBranchInstruction : Instruction 522internal sealed class LeaveFinallyInstruction : Instruction 576internal sealed class LeaveFaultInstruction : Instruction 597internal sealed class EnterExceptionFilterInstruction : Instruction 614internal sealed class LeaveExceptionFilterInstruction : Instruction 630internal sealed class EnterExceptionHandlerInstruction : Instruction 705internal sealed class ThrowInstruction : Instruction 739internal sealed class IntSwitchInstruction<T> : Instruction where T : notnull 759internal sealed class StringSwitchInstruction : Instruction
System\Linq\Expressions\Interpreter\DecrementInstruction.cs (1)
9internal abstract class DecrementInstruction : Instruction
System\Linq\Expressions\Interpreter\DefaultValueInstruction.cs (1)
11internal sealed class DefaultValueInstruction : Instruction
System\Linq\Expressions\Interpreter\DivInstruction.cs (1)
9internal abstract class DivInstruction : Instruction
System\Linq\Expressions\Interpreter\EqualInstruction.cs (1)
9internal abstract class EqualInstruction : Instruction
System\Linq\Expressions\Interpreter\ExclusiveOrInstruction.cs (1)
8internal abstract class ExclusiveOrInstruction : Instruction
System\Linq\Expressions\Interpreter\FieldOperations.cs (1)
9internal abstract class FieldInstruction : Instruction
System\Linq\Expressions\Interpreter\GreaterThanInstruction.cs (1)
9internal abstract class GreaterThanInstruction : Instruction
System\Linq\Expressions\Interpreter\GreaterThanOrEqualInstruction.cs (1)
9internal abstract class GreaterThanOrEqualInstruction : Instruction
System\Linq\Expressions\Interpreter\IncrementInstruction.cs (1)
9internal abstract class IncrementInstruction : Instruction
System\Linq\Expressions\Interpreter\LeftShiftInstruction.cs (1)
8internal abstract class LeftShiftInstruction : Instruction
System\Linq\Expressions\Interpreter\LessThanInstruction.cs (1)
9internal abstract class LessThanInstruction : Instruction
System\Linq\Expressions\Interpreter\LessThanOrEqualInstruction.cs (1)
9internal abstract class LessThanOrEqualInstruction : Instruction
System\Linq\Expressions\Interpreter\LocalAccess.cs (3)
18internal abstract class LocalAccessInstruction : Instruction 218internal sealed class ValueTypeCopyInstruction : Instruction 452internal sealed class RuntimeVariablesInstruction : Instruction
System\Linq\Expressions\Interpreter\ModuloInstruction.cs (1)
9internal abstract class ModuloInstruction : Instruction
System\Linq\Expressions\Interpreter\MulInstruction.cs (2)
9internal abstract class MulInstruction : Instruction 182internal abstract class MulOvfInstruction : Instruction
System\Linq\Expressions\Interpreter\NegateInstruction.cs (2)
9internal abstract class NegateInstruction : Instruction 119internal abstract class NegateCheckedInstruction : Instruction
System\Linq\Expressions\Interpreter\NewInstruction.cs (1)
10internal class NewInstruction : Instruction
System\Linq\Expressions\Interpreter\NotEqualInstruction.cs (1)
9internal abstract class NotEqualInstruction : Instruction
System\Linq\Expressions\Interpreter\NotInstruction.cs (1)
8internal abstract class NotInstruction : Instruction
System\Linq\Expressions\Interpreter\NullCheckInstruction.cs (1)
6internal sealed class NullCheckInstruction : Instruction
System\Linq\Expressions\Interpreter\NumericConvertInstruction.cs (1)
8internal abstract class NumericConvertInstruction : Instruction
System\Linq\Expressions\Interpreter\OrInstruction.cs (1)
8internal abstract class OrInstruction : Instruction
System\Linq\Expressions\Interpreter\RightShiftInstruction.cs (1)
8internal abstract class RightShiftInstruction : Instruction
System\Linq\Expressions\Interpreter\StackOperations.cs (4)
9internal sealed class LoadObjectInstruction : Instruction 30internal sealed class LoadCachedObjectInstruction : Instruction 54internal sealed class PopInstruction : Instruction 70internal sealed class DupInstruction : Instruction
System\Linq\Expressions\Interpreter\SubInstruction.cs (2)
9internal abstract class SubInstruction : Instruction 181internal abstract class SubOvfInstruction : Instruction
System\Linq\Expressions\Interpreter\TypeOperations.cs (7)
13internal sealed class CreateDelegateInstruction : Instruction 49internal sealed class TypeIsInstruction : Instruction 71internal sealed class TypeAsInstruction : Instruction 94internal sealed class TypeEqualsInstruction : Instruction 113internal abstract class NullableMethodCallInstruction : Instruction 259internal abstract class CastInstruction : Instruction 465internal sealed class QuoteInstruction : Instruction
147 references to Instruction
System.Linq.Expressions (147)
System\Linq\Expressions\Interpreter\AddInstruction.cs (4)
11private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 163public static Instruction Create(Type type) 183private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64; 299public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\AndInstruction.cs (2)
10private static Instruction? s_SByte, s_Int16, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64, s_Boolean; 174public static Instruction Create(Type type) =>
System\Linq\Expressions\Interpreter\ControlFlowInstructions.cs (22)
21public abstract Instruction[] Cache { get; } 23public Instruction Fixup(int offset) 28Instruction[] cache = Cache; 50private static Instruction[]? s_cache; 52public override Instruction[] Cache => s_cache ??= new Instruction[CacheSize]; 72private static Instruction[]? s_cache; 74public override Instruction[] Cache => s_cache ??= new Instruction[CacheSize]; 94private static Instruction[]? s_cache; 96public override Instruction[] Cache => s_cache ??= new Instruction[CacheSize]; 117private static Instruction[][][]? s_caches; 119public override Instruction[] Cache 123s_caches ??= new Instruction[2][][] { new Instruction[2][], new Instruction[2][] }; 124return s_caches[ConsumedStack][ProducedStack] ??= new Instruction[CacheSize]; 304Instruction[] instructions = frame.Interpreter.Instructions.Instructions; 431Instruction[] instructions = frame.Interpreter.Instructions.Instructions; 524internal static readonly Instruction Instance = new LeaveFinallyInstruction(); 578internal static readonly Instruction Instance = new LeaveFaultInstruction();
System\Linq\Expressions\Interpreter\DecrementInstruction.cs (2)
11private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 155public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\DivInstruction.cs (2)
11private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 163public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\EqualInstruction.cs (3)
12private static Instruction? s_reference, s_Boolean, s_SByte, s_Int16, s_Char, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 13private static Instruction? s_BooleanLiftedToNull, s_SByteLiftedToNull, s_Int16LiftedToNull, s_CharLiftedToNull, s_Int32LiftedToNull, s_Int64LiftedToNull, s_ByteLiftedToNull, s_UInt16LiftedToNull, s_UInt32LiftedToNull, s_UInt64LiftedToNull, s_SingleLiftedToNull, s_DoubleLiftedToNull; 510public static Instruction Create(Type type, bool liftedToNull)
System\Linq\Expressions\Interpreter\ExclusiveOrInstruction.cs (2)
10private static Instruction? s_SByte, s_Int16, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64, s_Boolean; 162public static Instruction Create(Type type) =>
System\Linq\Expressions\Interpreter\GreaterThanInstruction.cs (3)
12private static Instruction? s_SByte, s_Int16, s_Char, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 13private static Instruction? s_liftedToNullSByte, s_liftedToNullInt16, s_liftedToNullChar, s_liftedToNullInt32, s_liftedToNullInt64, s_liftedToNullByte, s_liftedToNullUInt16, s_liftedToNullUInt32, s_liftedToNullUInt64, s_liftedToNullSingle, s_liftedToNullDouble; 277public static Instruction Create(Type type, bool liftedToNull = false)
System\Linq\Expressions\Interpreter\GreaterThanOrEqualInstruction.cs (3)
12private static Instruction? s_SByte, s_Int16, s_Char, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 13private static Instruction? s_liftedToNullSByte, s_liftedToNullInt16, s_liftedToNullChar, s_liftedToNullInt32, s_liftedToNullInt64, s_liftedToNullByte, s_liftedToNullUInt16, s_liftedToNullUInt32, s_liftedToNullUInt64, s_liftedToNullSingle, s_liftedToNullDouble; 277public static Instruction Create(Type type, bool liftedToNull = false)
System\Linq\Expressions\Interpreter\IncrementInstruction.cs (2)
11private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 155public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\InstructionList.cs (49)
21internal readonly Instruction[] Instructions; 28internal InstructionArray(int maxStackDepth, int maxContinuationDepth, Instruction[] instructions, 69private readonly List<Instruction> _instructions = new List<Instruction>(); 111internal static InstructionView[] GetInstructionViews(IReadOnlyList<Instruction> instructions, IReadOnlyList<object>? objects, 124Instruction instruction = instructions[i]; 152private readonly Instruction _instruction; 171public InstructionView(Instruction instruction, string name, int index, int stackDepth, int continuationsDepth) 186public void Emit(Instruction instruction) 192private void UpdateStackDepth(Instruction instruction) 220Instruction instruction = _instructions[_instructions.Count - 1]; 250internal Instruction GetInstruction(int index) => _instructions[index]; 321private static Instruction? s_null; 322private static Instruction? s_true; 323private static Instruction? s_false; 324private static Instruction[]? s_Ints; 325private static Instruction[]? s_loadObjectCached; 364s_Ints ??= new Instruction[PushIntMaxCachedValue - PushIntMinCachedValue + 1]; 375s_loadObjectCached ??= new Instruction[CachedObjectCount]; 408Instruction? newInstruction = instruction.BoxIfIndexMatches(index); 418private static Instruction[]? s_loadLocal; 419private static Instruction[]? s_loadLocalBoxed; 420private static Instruction[]? s_loadLocalFromClosure; 421private static Instruction[]? s_loadLocalFromClosureBoxed; 422private static Instruction[]? s_assignLocal; 423private static Instruction[]? s_storeLocal; 424private static Instruction[]? s_assignLocalBoxed; 425private static Instruction[]? s_storeLocalBoxed; 426private static Instruction[]? s_assignLocalToClosure; 430s_loadLocal ??= new Instruction[LocalInstrCacheSize]; 447internal static Instruction LoadLocalBoxed(int index) 449s_loadLocalBoxed ??= new Instruction[LocalInstrCacheSize]; 463s_loadLocalFromClosure ??= new Instruction[LocalInstrCacheSize]; 477s_loadLocalFromClosureBoxed ??= new Instruction[LocalInstrCacheSize]; 491s_assignLocal ??= new Instruction[LocalInstrCacheSize]; 505s_storeLocal ??= new Instruction[LocalInstrCacheSize]; 522internal static Instruction AssignLocalBoxed(int index) 524s_assignLocalBoxed ??= new Instruction[LocalInstrCacheSize]; 541internal static Instruction StoreLocalBoxed(int index) 543s_storeLocalBoxed ??= new Instruction[LocalInstrCacheSize]; 557s_assignLocalToClosure ??= new Instruction[LocalInstrCacheSize]; 597internal static Instruction Parameter(int index) 602internal static Instruction ParameterBox(int index) 607internal static Instruction InitReference(int index) 612internal static Instruction InitImmutableRefBox(int index) 851private static readonly Dictionary<FieldInfo, Instruction> s_loadFields = new Dictionary<FieldInfo, Instruction>(); 858private static Instruction GetLoadField(FieldInfo field) 862if (!s_loadFields.TryGetValue(field, out Instruction? instruction))
System\Linq\Expressions\Interpreter\Interpreter.cs (1)
58Instruction[] instructions = _instructions.Instructions;
System\Linq\Expressions\Interpreter\LeftShiftInstruction.cs (2)
10private static Instruction? s_SByte, s_Int16, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64; 162public static Instruction Create(Type type) =>
System\Linq\Expressions\Interpreter\LessThanInstruction.cs (3)
12private static Instruction? s_SByte, s_Int16, s_Char, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 13private static Instruction? s_liftedToNullSByte, s_liftedToNullInt16, s_liftedToNullChar, s_liftedToNullInt32, s_liftedToNullInt64, s_liftedToNullByte, s_liftedToNullUInt16, s_liftedToNullUInt32, s_liftedToNullUInt64, s_liftedToNullSingle, s_liftedToNullDouble; 276public static Instruction Create(Type type, bool liftedToNull = false)
System\Linq\Expressions\Interpreter\LessThanOrEqualInstruction.cs (3)
12private static Instruction? s_SByte, s_Int16, s_Char, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 13private static Instruction? s_liftedToNullSByte, s_liftedToNullInt16, s_liftedToNullChar, s_liftedToNullInt32, s_liftedToNullInt64, s_liftedToNullByte, s_liftedToNullUInt16, s_liftedToNullUInt32, s_liftedToNullUInt64, s_liftedToNullSingle, s_liftedToNullDouble; 277public static Instruction Create(Type type, bool liftedToNull = false)
System\Linq\Expressions\Interpreter\LightCompiler.cs (6)
71Debug.Assert((FinallyStartIndex != Instruction.UnknownInstrIndex) == (FinallyEndIndex != Instruction.UnknownInstrIndex)); 72return FinallyStartIndex != Instruction.UnknownInstrIndex; 84: this(tryStart, tryEnd, gotoEndTargetIndex, Instruction.UnknownInstrIndex, Instruction.UnknownInstrIndex, handlers) 143Instruction[] instructions = interpreter.Instructions.Instructions;
System\Linq\Expressions\Interpreter\LightLambda.cs (3)
53Instruction[] instructions = _interpreter.Instructions.Instructions; 55foreach (Instruction instruction in instructions) 141Instruction[] instructions = _interpreter.Instructions.Instructions;
System\Linq\Expressions\Interpreter\LocalAccess.cs (8)
15Instruction? BoxIfIndexMatches(int index); 53public Instruction? BoxIfIndexMatches(int index) 134public Instruction? BoxIfIndexMatches(int index) 156public Instruction? BoxIfIndexMatches(int index) 258public Instruction? BoxIfIndexMatches(int index) 283public Instruction? BoxIfIndexMatches(int index) 358public Instruction? BoxIfIndexMatches(int index) 401public Instruction? BoxIfIndexMatches(int index)
System\Linq\Expressions\Interpreter\ModuloInstruction.cs (2)
11private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 163public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\MulInstruction.cs (4)
11private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 163public static Instruction Create(Type type) 184private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64; 300public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\NegateInstruction.cs (4)
11private static Instruction? s_Int16, s_Int32, s_Int64, s_Single, s_Double; 104public static Instruction Create(Type type) 121private static Instruction? s_Int16, s_Int32, s_Int64; 180public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\NotEqualInstruction.cs (3)
12private static Instruction? s_reference, s_Boolean, s_SByte, s_Int16, s_Char, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 13private static Instruction? s_SByteLiftedToNull, s_Int16LiftedToNull, s_CharLiftedToNull, s_Int32LiftedToNull, s_Int64LiftedToNull, s_ByteLiftedToNull, s_UInt16LiftedToNull, s_UInt32LiftedToNull, s_UInt64LiftedToNull, s_SingleLiftedToNull, s_DoubleLiftedToNull; 492public static Instruction Create(Type type, bool liftedToNull)
System\Linq\Expressions\Interpreter\NotInstruction.cs (2)
10public static Instruction? s_Boolean, s_Int64, s_Int32, s_Int16, s_UInt64, s_UInt32, s_UInt16, s_Byte, s_SByte; 171public static Instruction Create(Type type) =>
System\Linq\Expressions\Interpreter\NullCheckInstruction.cs (1)
8public static readonly Instruction Instance = new NullCheckInstruction();
System\Linq\Expressions\Interpreter\OrInstruction.cs (2)
10private static Instruction? s_SByte, s_Int16, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64, s_Boolean; 176public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\RightShiftInstruction.cs (2)
10private static Instruction? s_SByte, s_Int16, s_Int32, s_Int64, s_Byte, s_UInt16, s_UInt32, s_UInt64; 162public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\SubInstruction.cs (4)
11private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64, s_Single, s_Double; 163public static Instruction Create(Type type) 183private static Instruction? s_Int16, s_Int32, s_Int64, s_UInt16, s_UInt32, s_UInt64; 299public static Instruction Create(Type type)
System\Linq\Expressions\Interpreter\TypeOperations.cs (3)
229public static Instruction Create(string method, int argCount, MethodInfo mi) 253public static Instruction CreateGetValue() 354public static Instruction Create(Type t)