You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Register funcptr precodes in backpatching table for proper tiered compilation lifecycle
Funcptr precodes for backpatchable methods are now registered in the entry point
slot backpatching table at creation time, replacing the ad-hoc funcptr precode
lookup and patching that was previously done in TryBackpatchEntryPointSlots.
This ensures:
- During non-final tiers, funcptr precode targets point to the method's precode
(temporary entry point), so calls flow through the same path as vtable calls
- At final tier, SetBackpatchableEntryPoint calls Backpatch_Locked to update all
registered slots (including funcptr precodes) to the final code
- During rejit, BackpatchToResetEntryPointSlots resets funcptr targets via the
backpatching table, ensuring proper re-discovery through the prestub
The change adds Precode::GetTargetSlot() and StubPrecode::GetTargetSlot() to
expose the writable target field address for registration as a SlotType_Normal
entry point slot.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
0 commit comments