Table of Contents

Enum ReadyToRunFixupKind

Namespace
AsmResolver.PE.DotNet.ReadyToRun
Assembly
AsmResolver.PE.dll

Provides members describing all possible types of imported fixups in a ReadyToRun assembly.

public enum ReadyToRunFixupKind : byte

Fields

CctorTrigger = 33

Static constructor trigger, followed by TypeSpec signature

CheckFieldOffset = 43

Verification of field offset, followed by field signature and expected field layout descriptor

CheckILBody = 53

Check to see if an IL method is defined the same at runtime as at compile time. A failed match will cause code not to be used. SeeIL Body signatures for details.

CheckInstructionSetSupport = 48

Specify the instruction sets that must be supported/unsupported to use the R2R code associated with the fixup.

CheckTypeLayout = 42

Verification of type layout, followed by TypeSpec and expected type layout descriptor

CheckVirtualFunctionOverride = 51

Generate a runtime check to ensure that virtual function resolution has equivalent behavior at runtime as at compile time. If not equivalent, code will not be used. See Virtual override signatures for details of the signature used.

ChkCast = 31

ChkCast helper, followed by TypeSpec signature

DeclaringTypeHandle = 45

Dictionary lookup for method declaring type. Followed by the type signature.

DelegateCtor = 44

Delegate constructor, followed by method signature

FieldAddress = 32

Field address, followed by field signature

FieldBaseOffset = 38

Starting offset of fields for given type, followed by TypeSpec signature. Used to address base class fragility.

FieldHandle = 18

Pointer uniquely identifying the field to the runtime, followed by field signature (see below).

FieldOffset = 39

Field offset, followed by field signature

Helper = 26

Helper call, followed by helper call id (see chapter 4 Helper calls)

IndirectPInvokeTarget = 46

Target (indirect) of an inlined PInvoke. Followed by method signature.

IsInstanceOf = 30

IsInst helper, followed by TypeSpec signature

MethodDictionary = 41

Hidden dictionary argument for generic code, followed by method signature

MethodDictionaryLookup = 9

Generic method lookup; followed by the method spec signature.

MethodEntry = 19

Method entrypoint or call, followed by method signature.

MethodEntryDefToken = 20

Method entrypoint or call, followed by MethodDef token (shortcut).

MethodEntryRefToken = 21

Method entrypoint or call, followed by MethodRef token (shortcut).

MethodHandle = 17

Pointer uniquely identifying the method to the runtime, followed by method signature (see below).

ModuleOverride = 128

When or-ed to the fixup ID, the fixup byte in the signature is followed by an encoded uint with AssemblyRef index, either within the MSIL metadata of the master context module for the signature or within the manifest metadata R2R header table (used in cases inlining brings in references to assemblies not seen in the input MSIL).

NewArray = 29

New array helper, followed by TypeSpec signature

NewObject = 28

New object helper, followed by TypeSpec signature

PInvokeTarget = 47

Target of an inlined PInvoke. Followed by method signature.

StaticBaseGC = 35

GC static base, followed by TypeSpec signature

StaticBaseNonGC = 34

Non-GC static base, followed by TypeSpec signature

StringHandle = 27

String handle, followed by metadata string token

ThisObjDictionaryLookup = 7

Generic lookup using this; followed by the type signature and by the method signature.

ThreadStaticBaseGC = 37

GC thread-local static base, followed by TypeSpec signature

ThreadStaticBaseNonGC = 36

Non-GC thread-local static base, followed by TypeSpec signature

TypeDictionary = 40

Hidden dictionary argument for generic code, followed by TypeSpec signature

TypeDictionaryLookup = 8

Type-based generic lookup for methods on instantiated types; followed by the TypeSpec signature.

TypeHandle = 16

Pointer uniquely identifying the type to the runtime, followed by TypeSpec signature (see ECMA-335).

VerifyFieldOffset = 49

Generate a runtime check to ensure that the field offset matches between compile and runtime. Unlike CheckFieldOffset, this will generate a runtime exception on failure instead of silently dropping the method

VerifyILBody = 54

Verify an IL body is defined the same at compile time and runtime. A failed match will cause a hard runtime failure. SeeIL Body signatures for details.

VerifyTypeLayout = 50

Generate a runtime check to ensure that the field offset matches between compile and runtime. Unlike CheckFieldOffset, this will generate a runtime exception on failure instead of silently dropping the method

VerifyVirtualFunctionOverride = 52

Generate a runtime check to ensure that virtual function resolution has equivalent behavior at runtime as at compile time. If not equivalent, generate runtime failure. See Virtual override signatures for details of the signature used.

VirtualEntry = 22

Virtual method entrypoint or call, followed by method signature.

VirtualEntryDefToken = 23

Virtual method entrypoint or call, followed by MethodDef token (shortcut)

VirtualEntryRefToken = 24

Virtual method entrypoint or call, followed by MethodRef token (shortcut)

VirtualEntrySlot = 25

Virtual method entrypoint or call, followed by TypeSpec signature and slot