Skip to content
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

x64 Windows does not correctly handle __m128 returns. #27002

Closed
tannergooding opened this issue Oct 2, 2019 · 3 comments

Comments

@tannergooding
Copy link
Member

commented Oct 2, 2019

The default calling convention for x64 Windows specifies that __m128, __m128i, and __m128d are returned in XMM0: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention?view=vs-2019#return-values

These types correspond to the System.Runtime.Intrinsics.Vector128<T> type on the managed side and it is not currently being returned in XMM0.

#23899 adds support for passing Vector128<T> across interop boundaries and so this will need to be correctly handled.

@tannergooding

This comment has been minimized.

Copy link
Member Author

commented Oct 2, 2019

@CarolEidt

This comment has been minimized.

Copy link
Member

commented Oct 2, 2019

How is this distinct from #15943?

@tannergooding

This comment has been minimized.

Copy link
Member Author

commented Oct 2, 2019

I forgot I logged the former and couldn't find it in GitHub search. I'll update the former with this specific scenario shortly and then will close this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.