-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Don't pass stack pointer in ECX on x86 funclet ABI #113792
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
@dotnet/jit-contrib can someone take a look? |
For reference, here's the x64 ABI: runtime/src/coreclr/jit/codegenxarch.cpp Lines 10827 to 10840 in 2846fb4
and here's the x86 ABI: runtime/src/coreclr/jit/codegenxarch.cpp Lines 11099 to 11114 in 2846fb4
|
On a second thought, we probably don't need to set the RCX on NativeAOT x64 ABI either. PSPSym is not used with NativeAOT ABI, so |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks correct to me. @jkotas, do you agree?
Yes, I agree - it can be cleaned up separately. |
The restoring of stack pointer is handled by
EECodeManager::GetResumeSp
(CoreCLR on linux-x86) andResumeSp
in context (NativeAOT on win-x86). We are short on registers on x86 so ECX is not used and it was unnecessarily set to a value.