[RyuJIT] Always insert r2r indirection cell at the end of the args list#125670
[RyuJIT] Always insert r2r indirection cell at the end of the args list#125670kg wants to merge 2 commits intodotnet:mainfrom
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
There was a problem hiding this comment.
Pull request overview
This PR updates CoreCLR JIT call argument construction so the ReadyToRun (R2R) indirection cell argument is always appended at the end of the call argument list. This ensures correct argument ordering for Wasm’s managed calling convention (portable entry point as the last argument) while remaining behavior-neutral on other targets where the indirection cell is passed via a dedicated register.
Changes:
- Change R2R indirection cell insertion from
InsertAfterThisOrFirsttoPushBackso it becomes the last argument. - Clarify the
FEATURE_READYTORUNpreprocessor block end comment.
You can also share your feedback on Copilot code review. Take the survey.
|
Diffs look good (positive even). But it seems LA64 and RISCV64 have some problem with this change. cc @dotnet/samsung @shushanhf, any idea why this would matter for RISCV64/LA64? |
OK, we will test it on LA64. Thanks! |
#125669 but universal. Wasm needs the indirection cell at the end of the arguments list, and on other arches it shouldn't matter where we put it. Opening draft PR to generate diffs on CI.