I'm trying to understand the details of how the Prestub and the JIT backpatch work.
On x86, the PrestubFrame looks like: +... stack-based args for real method +12 return address +8 m_Datum (MethodDesc*) +4 m_Next ESI--->+0 the frame vptr +... negative space stuff I can see that the call to the Prestub from _CallDescWorkerInternal (asm) pushes the return address, then the Prestub prolog pushes m_Next and the frame vptr. But I can't see where the MethodDesc* is pushed into ESI+8. But then PreStubWorker() can get the MethodDesc* from the PrestubMethodFrame object (previous ESI) just fine. What am I missing here? Thanks, Nam