This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
Cleanup ILStub signature delta management #23572
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While working on #23145, I noticed that the stub signature management always assumed that the "target sig" was the called sig. This is not the case in a reverse stub, so there was also code to account for these extra parameters. This PR updates the ILStubLinker to correctly account for reverse stubs and instance->unmanaged non-instance stubs so there is no code needed to adjust the stack delta from the target call in the stub.
Teach ILStubLinker to use the managed signature for the target stack delta when the stub is a reverse stub.
Make ILStubLinker understand changing calling conventions from instance to non-instance calling conventions.