11 [DebuggerDisplay(
"Source = {_source}; Target = {_targetAndResult & ~1}; Result = {_targetAndResult & 1}; VersionNum = {_version & ((1 << 29) - 1)}; Distance = {_version >> 29};")]
40 return (
int)((long)num2 * -7046029254386353131
L >>> num);
64 return Unsafe.Add(ref tableData, 1);
77 nuint source2 = reference._source;
81 nuint targetAndResult = reference._targetAndResult;
82 targetAndResult ^= target;
83 if (targetAndResult <= 1)
86 if (num3 != reference._version)
98 num = (num + num2) &
TableMask(ref tableData);
117 [DebuggerStepThrough]
123 if (methodTable != toTypeHnd)
141 [DebuggerStepThrough]
160 while (*ptr != toTypeHnd && ptr[1] != toTypeHnd && ptr[2] != toTypeHnd && ptr[3] != toTypeHnd)
173 while (*ptr != toTypeHnd)
203 [DebuggerStepThrough]
211 while (parentMethodTable != toTypeHnd)
213 if (parentMethodTable !=
null)
216 if (parentMethodTable == toTypeHnd)
220 if (parentMethodTable !=
null)
223 if (parentMethodTable == toTypeHnd)
227 if (parentMethodTable !=
null)
230 if (parentMethodTable == toTypeHnd)
234 if (parentMethodTable !=
null)
251 [DebuggerStepThrough]
256 CastResult.CanCast =>
obj,
257 CastResult.CannotCast =>
null,
264 [DebuggerStepThrough]
270 if (methodTable != toTypeHnd)
285 [DebuggerStepThrough]
298 [DebuggerStepThrough]
316 while (*ptr != toTypeHnd && ptr[1] != toTypeHnd && ptr[2] != toTypeHnd && ptr[3] != toTypeHnd)
331 while (*ptr != toTypeHnd)
354 [DebuggerStepThrough]
366 [DebuggerStepThrough]
373 if (ptr != toTypeHnd)
380 if (ptr != toTypeHnd)
387 if (ptr != toTypeHnd)
394 if (ptr != toTypeHnd)
412 [DebuggerStepThrough]
413 private unsafe
static ref
byte Unbox(
void* toTypeHnd,
object obj)
417 return ref
obj.GetRawData();
424 [DebuggerStepThrough]
433 [DebuggerStepThrough]
448 [DebuggerStepThrough]
473 [DebuggerStepThrough]
489 [DebuggerStepThrough]
static uint RotateLeft(uint value, int offset)
static unsafe object IsInstanceOfAny_NoCacheLookup(void *toTypeHnd, object obj)
static ref int TableData(int[] table)
static unsafe void StelemRef_Helper(ref object element, void *elementType, object obj)
static unsafe object ChkCastAny_NoCacheLookup(void *toTypeHnd, object obj)
static ref object ThrowArrayMismatchException()
static unsafe object IsInstanceOfInterface(void *toTypeHnd, object obj)
static unsafe object IsInstance_Helper(void *toTypeHnd, object obj)
static unsafe ref object LdelemaRef(Array array, int index, void *type)
static unsafe object ChkCastClassSpecial(void *toTypeHnd, object obj)
static unsafe object ChkCastClass(void *toTypeHnd, object obj)
static unsafe object IsInstanceOfAny(void *toTypeHnd, object obj)
static unsafe ref byte Unbox(void *toTypeHnd, object obj)
static unsafe object IsInstanceOfClass(void *toTypeHnd, object obj)
static CastResult TryGet(nuint source, nuint target)
static unsafe object ChkCast_Helper(void *toTypeHnd, object obj)
static unsafe object ChkCastAny(void *toTypeHnd, object obj)
static unsafe ref byte Unbox_Helper(void *toTypeHnd, object obj)
static unsafe object ChkCastInterface(void *toTypeHnd, object obj)
static void WriteBarrier(ref object dst, object obj)
static unsafe void StelemRef(Array array, int index, object obj)
static int HashShift(ref int tableData)
static ref CastCacheEntry Element(ref int tableData, int index)
static unsafe void StelemRef_Helper_NoCacheLookup(ref object element, void *elementType, object obj)
static int KeyToBucket(ref int tableData, nuint source, nuint target)
static int TableMask(ref int tableData)
static unsafe MethodTable * GetMethodTable(object obj)
static unsafe ref byte GetArrayDataReference(Array array)
static void ReadMemoryBarrier()
static bool Read(ref bool location)
bool NonTrivialInterfaceCast
unsafe MethodTable ** InterfaceMap
unsafe MethodTable * ParentMethodTable