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. #13523

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

x64 Windows does not correctly handle __m128 returns. #13523

tannergooding opened this issue Oct 2, 2019 · 3 comments
Labels
arch-x64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI os-windows
Milestone

Comments

@tannergooding
Copy link
Member

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.

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

@tannergooding
Copy link
Member Author

CC. @CarolEidt

@CarolEidt
Copy link
Contributor

How is this distinct from #9578?

@tannergooding
Copy link
Member Author

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.

@msftgits msftgits transferred this issue from dotnet/coreclr Jan 31, 2020
@msftgits msftgits added this to the 5.0 milestone Jan 31, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 12, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-x64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI os-windows
Projects
None yet
Development

No branches or pull requests

3 participants