As described in dotnet/coreclr#8275 (review) , I'll start TheUMEntryPrestub implementation for x86.
In frames.h, there is some comments about this function.
Reverse P/Invoke (used for C++ exports & fixups as well as delegates
obtained from function pointers):
Normal stub:
x86: The stub is generated by UMEntryThunk::CompileUMThunkWorker
(in DllImportCallback.cpp) and it is frameless. It calls directly
the managed target or to IL stub if marshaling is required.
non-x86: The stub exists statically as UMThunkStub and calls to IL stub.
Prestub:
The prestub is generated by GenerateUMThunkPrestub (x86) or exists statically
as TheUMEntryPrestub (64-bit), and it erects an UMThkCallFrame frame.
As described in dotnet/coreclr#8275 (review) , I'll start
TheUMEntryPrestubimplementation for x86.In frames.h, there is some comments about this function.