14 [DebuggerDisplay(
"{GetValue(),nq}",
Name =
"{GetName(),nq}",
Type =
"{GetDisplayType(), nq}")]
94 return list.ToArray();
221 if (
type ==
null ||
type.IsValueType)
228 if (
value is int num && num >= -100 && num <= 100)
234 int num2 = num - -100;
444 else if (
type.IsValueType)
743 if (
label.HasRuntimeLabel)
770 if (
label.HasRuntimeLabel)
772 return label.LabelIndex;
776 return label.LabelIndex;
Enumerator GetEnumerator()
void Add(TKey key, TValue value)
static void RequiresNotNull(object value, string paramName)
static Instruction Create(Type type)
static Instruction Create(Type type)
static Instruction Create(Type type)
static readonly ArrayLengthInstruction Instance
static CallInstruction Create(MethodInfo info)
static Instruction Create(Type t)
static Instruction Create(Type type)
static Instruction Create(Type type)
static readonly DupInstruction Instance
static readonly EnterExceptionFilterInstruction Instance
static readonly EnterExceptionHandlerInstruction Void
static readonly EnterExceptionHandlerInstruction NonVoid
static EnterFaultInstruction Create(int labelIndex)
static EnterFinallyInstruction Create(int labelIndex)
static EnterTryCatchFinallyInstruction CreateTryCatch()
static EnterTryCatchFinallyInstruction CreateTryFinally(int labelIndex)
static Instruction Create(Type type, bool liftedToNull)
static Instruction Create(Type type)
static readonly GetArrayItemInstruction Instance
static GotoInstruction Create(int labelIndex, bool hasResult, bool hasValue, bool labelTargetGetsValue)
static Instruction Create(Type type, bool liftedToNull=false)
static Instruction Create(Type type, bool liftedToNull=false)
static Instruction Create(Type type)
static InstructionView[] GetInstructionViews(IReadOnlyList< Instruction > instructions, IReadOnlyList< object > objects, Func< int, int > labelIndexer, IReadOnlyList< KeyValuePair< int, object > > debugCookies)
InstructionView[] GetInstructionViews(bool includeDebugCookies=false)
DebugView(InstructionList list)
readonly InstructionList _list
void EmitIntSwitch< T >(Dictionary< T, int > cases)
readonly List< Instruction > _instructions
static Instruction[] s_assignLocalToClosure
void EmitGreaterThanOrEqual(Type type, bool liftedToNull)
void UpdateStackDepth(Instruction instruction)
void SwitchToBoxed(int index, int instructionIndex)
void EmitStoreLocalToClosure(int index)
void EmitAssignLocalBoxed(int index)
void EmitDefaultValue(Type type)
int CurrentContinuationsDepth
void MarkLabel(BranchLabel label)
void EmitLoad(bool value)
void EmitAssignLocal(int index)
int EnsureLabelIndex(BranchLabel label)
void EmitTypeIs(Type type)
void EmitLoad(object value, Type type)
static Instruction[] s_loadLocalBoxed
static Instruction StoreLocalBoxed(int index)
void EmitCall(MethodInfo method)
EnterTryFaultInstruction EmitEnterTryFault(BranchLabel tryEnd)
int _currentContinuationsDepth
void EmitNewArrayBounds(Type elementType, int rank)
void EmitEnterExceptionHandlerNonVoid()
void EmitDecrement(Type type)
void EmitAdd(Type type, bool @checked)
void EmitLeaveExceptionFilter()
static Instruction s_true
Instruction GetLoadField(FieldInfo field)
void EmitStoreLocalBoxed(int index)
void EmitNew(ConstructorInfo constructorInfo, ParameterInfo[] parameters)
void EmitCastReferenceToEnum(Type toType)
static Instruction s_false
void EmitEnterExceptionHandlerVoid()
void EmitEnterTryFinally(BranchLabel finallyStartLabel)
List< BranchLabel > _labels
void EmitBranchFalse(BranchLabel elseLabel)
void EmitIncrement(Type type)
static Instruction s_null
void EmitBranchTrue(BranchLabel elseLabel)
void EmitStringSwitch(Dictionary< string, int > cases, StrongBox< int > nullCase)
void EmitGoto(BranchLabel label, bool hasResult, bool hasValue, bool labelTargetGetsValue)
void EmitEqual(Type type, bool liftedToNull=false)
static Instruction[] s_assignLocalBoxed
void EmitCoalescingBranch(BranchLabel leftNotNull)
void EmitCreateDelegate(LightDelegateCreator creator)
void EmitLoadLocalFromClosure(int index)
void EmitNewRuntimeVariables(int count)
InstructionArray ToArray()
void EmitLoadLocal(int index)
void EmitNegate(Type type)
void EmitBranch(BranchLabel label, bool hasResult, bool hasValue)
RuntimeLabel[] BuildRuntimeLabels()
static Instruction AssignLocalBoxed(int index)
void EmitLoadField(FieldInfo field)
void EmitEnterExceptionFilter()
void EmitRightShift(Type type)
void EmitLessThanOrEqual(Type type, bool liftedToNull)
void Emit(Instruction instruction)
void FixupBranch(int branchIndex, int offset)
void EmitByRefCall(MethodInfo method, ParameterInfo[] parameters, ByRefUpdater[] byrefArgs)
static Instruction[] s_loadObjectCached
static Instruction[] s_loadLocalFromClosureBoxed
void EmitLoad(object value)
void EmitStoreLocal(int index)
void EmitSub(Type type, bool @checked)
void EmitNewArrayInit(Type elementType, int elementCount)
void EmitLessThan(Type type, bool liftedToNull)
static readonly Dictionary< FieldInfo, Instruction > s_loadFields
static Instruction[] s_Ints
static Instruction LoadLocalBoxed(int index)
void EmitBranch(BranchLabel label)
void EmitMul(Type type, bool @checked)
static Instruction[] s_storeLocal
void EmitNullableCall(MethodInfo method, ParameterInfo[] parameters)
static Instruction InitImmutableRefBox(int index)
void EmitInitializeParameter(int index)
void EmitNumericConvertChecked(TypeCode from, TypeCode to, bool isLiftedToNull)
static Instruction[] s_loadLocal
static Instruction[] s_loadLocalFromClosure
void EmitNewArray(Type elementType)
void EmitStoreField(FieldInfo field)
void EmitAssignLocalToClosure(int index)
void EmitLeaveExceptionHandler(bool hasValue, BranchLabel tryExpressionEndLabel)
int _maxContinuationDepth
void EmitCall(MethodInfo method, ParameterInfo[] parameters)
void EmitNotEqual(Type type, bool liftedToNull=false)
static Instruction[] s_assignLocal
static Instruction InitReference(int index)
static Instruction Parameter(int index)
static Instruction ParameterBox(int index)
Instruction GetInstruction(int index)
void EmitConvertToUnderlying(TypeCode to, bool isLiftedToNull)
void EmitInitializeLocal(int index, Type type)
void EmitNegateChecked(Type type)
void EmitGreaterThan(Type type, bool liftedToNull)
void EmitEnterFinally(BranchLabel finallyStartLabel)
void EmitLoadLocalBoxed(int index)
void EmitModulo(Type type)
void EmitLeftShift(Type type)
void EmitTypeAs(Type type)
void EmitCastToEnum(Type toType)
void EmitBranch(OffsetInstruction instruction, BranchLabel label)
static readonly RuntimeLabel[] s_emptyRuntimeLabels
void EmitNumericConvertUnchecked(TypeCode from, TypeCode to, bool isLiftedToNull)
static Instruction[] s_storeLocalBoxed
void EmitByRefNew(ConstructorInfo constructorInfo, ParameterInfo[] parameters, ByRefUpdater[] updaters)
void EmitEnterFault(BranchLabel faultStartLabel)
void EmitExclusiveOr(Type type)
void EmitCast(Type toType)
void EmitLoadLocalFromClosureBoxed(int index)
static readonly LeaveExceptionFilterInstruction Instance
static LeaveExceptionHandlerInstruction Create(int labelIndex, bool hasValue)
static readonly Instruction Instance
static readonly Instruction Instance
static Instruction Create(Type type)
static Instruction Create(Type type, bool liftedToNull=false)
static Instruction Create(Type type, bool liftedToNull=false)
static Instruction Create(Type type)
static Instruction Create(Type type)
static Instruction Create(Type type)
static Instruction Create(Type type)
static Instruction Create(Type type)
static Instruction Create(Type type, bool liftedToNull)
static Instruction Create(Type type)
static Instruction Create(string method, int argCount, MethodInfo mi)
static Instruction Create(Type type)
static readonly PopInstruction Instance
static Instruction Create(Type type)
static object GetPrimitiveDefaultValue(Type type)
static readonly SetArrayItemInstruction Instance
static Instruction Create(Type type)
static Instruction Create(Type type)
static readonly ThrowInstruction VoidThrow
static readonly ThrowInstruction Rethrow
static readonly ThrowInstruction Throw
static readonly ThrowInstruction VoidRethrow
static readonly TypeEqualsInstruction Instance
static readonly object BoxedTrue
static readonly object BoxedFalse
readonly int _continuationsDepth
readonly Instruction _instruction
InstructionView(Instruction instruction, string name, int index, int stackDepth, int continuationsDepth)