Enable return buffers on Windows ARM64 for struct-returning member functions (dotnet...
authorJeremy Koritzinsky <jkoritzinsky@gmail.com>
Fri, 5 Apr 2019 19:52:00 +0000 (12:52 -0700)
committerGitHub <noreply@github.com>
Fri, 5 Apr 2019 19:52:00 +0000 (12:52 -0700)
commitcceafbe668d6f653f5d0cb1a6253033c5465dbf1
treed32c7ba0066b64f61d1343a1aed84d2d3954ca32
parent0c43b98e0e95d863d963f4ff2844d1491b0cd9f5
Enable return buffers on Windows ARM64 for struct-returning member functions (dotnet/coreclr#23625)

* Enable return buffers on Windows ARM64 for struct-returning member functions. Fixes dotnet/coreclr#23577.

* Update comment to match new condition.

* Enable byref return on all Windows (excluding arm64 HFA. Add more test cases for ThisCall.

* On x86, if we have a normalized return value in an instance method, get back the actual type so that we correctly marshal it via a return buffer.

* Fix param ordering.

* Clean up based on PR feedback.

* Fix accidental variable shadowing.

Commit migrated from https://github.com/dotnet/coreclr/commit/04f97c9923156b0c695f5fe441ffd14624de8076
src/coreclr/src/vm/clrtocomcall.cpp
src/coreclr/src/vm/comtoclrcall.cpp
src/coreclr/src/vm/dispatchinfo.cpp
src/coreclr/src/vm/dllimport.cpp
src/coreclr/src/vm/ilmarshalers.h
src/coreclr/src/vm/mlinfo.cpp
src/coreclr/src/vm/mlinfo.h
src/coreclr/tests/src/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallNative.cpp
src/coreclr/tests/src/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallTest.cs