-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
JIT: Add support for SwiftIndirectResult
in Swift calling convention
#103570
Conversation
This reverts commit 974f37a.
cc @dotnet/jit-contrib PTAL @amanasifkhalid |
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.
LGTM, thanks!
@@ -2118,7 +2137,7 @@ void Compiler::impPopArgsForSwiftCall(GenTreeCall* call, CORINFO_SIG_INFO* sig, | |||
|
|||
// If using SwiftError*, spill entire stack as we will need to reuse the | |||
// error argument after the call. | |||
if (checkEntireStack) | |||
if (spillStack) |
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.
Could you update this comment to mention the SwiftIndirectResult case, please?
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.
I moved the existing comment up to where we assign spillStack
in the SwiftError*
case instead (there is already a comment on the new spillStack = true
I added)
Add a test for pinvoke/reverse pinvokes involving
SwiftIndirectResult
, and add the necessary support to make the tests pass in RyuJIT.