-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Move return buffer handling from interop to the JIT #39294
Commits on Jul 7, 2020
-
Configuration menu - View commit details
-
Copy full SHA for c17d786 - Browse repository at this point
Copy the full SHA c17d786View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8eecd35 - Browse repository at this point
Copy the full SHA 8eecd35View commit details -
On Windows non-arm32, unmanaged instance methods have their hidden re…
…tbuf arg after the `this` parameter, not before.
Configuration menu - View commit details
-
Copy full SHA for c06a040 - Browse repository at this point
Copy the full SHA c06a040View commit details
Commits on Jul 8, 2020
-
Teach the JIT to generate a return buffer for reverse P/Invokes for t…
…hiscall on required platforms. Still need to reorder the emit so the arguments are emitted correctly.
Configuration menu - View commit details
-
Copy full SHA for 9448965 - Browse repository at this point
Copy the full SHA 9448965View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7a26d40 - Browse repository at this point
Copy the full SHA 7a26d40View commit details -
Remove isInstanceMethod support in the interop subsystem now that the…
… JIT can handle it.
Configuration menu - View commit details
-
Copy full SHA for a75f746 - Browse repository at this point
Copy the full SHA a75f746View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4f09a4f - Browse repository at this point
Copy the full SHA 4f09a4fView commit details -
Configuration menu - View commit details
-
Copy full SHA for e4aaf91 - Browse repository at this point
Copy the full SHA e4aaf91View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3d66e53 - Browse repository at this point
Copy the full SHA 3d66e53View commit details -
Remove interop-specific handling of x86 thiscall and get non trivial-…
…primitive-wrapper struct returning thiscall working.
Configuration menu - View commit details
-
Copy full SHA for 4eee458 - Browse repository at this point
Copy the full SHA 4eee458View commit details
Commits on Jul 9, 2020
-
Configuration menu - View commit details
-
Copy full SHA for a7e0b52 - Browse repository at this point
Copy the full SHA a7e0b52View commit details
Commits on Jul 10, 2020
-
Don't unwrap single primitive field structs on x86 any more. RyuJIT s…
…eems to optimize them correctly now. Also this enables the JIT to correctly handle native instance method calls that return single primitive field structs.
Configuration menu - View commit details
-
Copy full SHA for 8eb6846 - Browse repository at this point
Copy the full SHA 8eb6846View commit details -
Pass the retbuf arg on the stack as the first argument (inserted last…
… since the arguments have already been reversed) on x86.
Configuration menu - View commit details
-
Copy full SHA for 110c2ae - Browse repository at this point
Copy the full SHA 110c2aeView commit details
Commits on Jul 13, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 96336f5 - Browse repository at this point
Copy the full SHA 96336f5View commit details -
Enable returning 8-byte structs in multiple registers on x86 and add …
…a test in interop to validate.
Configuration menu - View commit details
-
Copy full SHA for 48e3fce - Browse repository at this point
Copy the full SHA 48e3fceView commit details
Commits on Jul 14, 2020
-
Since the x86 stub linker path emulates the stdcall calling conventio…
…n for thiscall Reverse P/Invoke stubs, update the stub linker to handle the case where a return value would be an enregistered return on stdcall but is returned via a return buffer for thiscall.
Configuration menu - View commit details
-
Copy full SHA for b83c60a - Browse repository at this point
Copy the full SHA b83c60aView commit details -
Configuration menu - View commit details
-
Copy full SHA for f3bdf58 - Browse repository at this point
Copy the full SHA f3bdf58View commit details -
Merge branch 'master' of https://github.com/dotnet/runtime into retbu…
…f-move-to-jit
Configuration menu - View commit details
-
Copy full SHA for e7b8369 - Browse repository at this point
Copy the full SHA e7b8369View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5324b7e - Browse repository at this point
Copy the full SHA 5324b7eView commit details -
Don't check IsUmanagedValueTypeReturnedByRef unless the methodtable i…
…s a value type. Use a type handle instead of a method table. Don't check size for enums.
Configuration menu - View commit details
-
Copy full SHA for 3c60ca2 - Browse repository at this point
Copy the full SHA 3c60ca2View commit details
Commits on Jul 15, 2020
-
Merge branch 'master' of https://github.com/dotnet/runtime into retbu…
…f-move-to-jit
Configuration menu - View commit details
-
Copy full SHA for f23c291 - Browse repository at this point
Copy the full SHA f23c291View commit details
Commits on Jul 16, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 0a6790b - Browse repository at this point
Copy the full SHA 0a6790bView commit details
Commits on Sep 14, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 925ec02 - Browse repository at this point
Copy the full SHA 925ec02View commit details
Commits on Sep 30, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 47553e5 - Browse repository at this point
Copy the full SHA 47553e5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 779708a - Browse repository at this point
Copy the full SHA 779708aView commit details
Commits on Oct 1, 2020
-
Propogate calling convention through the JIT so it can determine stru…
…ct return type based on calling convention. Update runtime side to not assume that the JIT enregisters 8-byte struct returns on Windows x86 (since it doesn't).
Configuration menu - View commit details
-
Copy full SHA for 4b8870b - Browse repository at this point
Copy the full SHA 4b8870bView commit details -
Remove now-unused code for multireg struct returns in the x86 reverse…
… P/Invoke stub linker. Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 6c56bc8 - Browse repository at this point
Copy the full SHA 6c56bc8View commit details
Commits on Oct 2, 2020
-
Treat RuntimeArgumentHandle and RuntimeMethodHandleInternal as ELEMEN…
…T_TYPE_I when jitting on all platforms. When I removed the struct normalization code from x86, I inadvertantly broke treating these types as ELEMENT_TYPE_I. On all platforms other than x86, this was handled at an earlier point in the code. Remove the if-def and make this happen on all platforms.
Configuration menu - View commit details
-
Copy full SHA for 3897473 - Browse repository at this point
Copy the full SHA 3897473View commit details
Commits on Oct 3, 2020
-
Treat RuntimeFieldHandleInternal as an ELEMENT_TYPE_I since it is use…
…d similarly to RuntimeMethodHandleInternal across the FCall boundary
Configuration menu - View commit details
-
Copy full SHA for 426b0f3 - Browse repository at this point
Copy the full SHA 426b0f3View commit details -
Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for cc73336 - Browse repository at this point
Copy the full SHA cc73336View commit details -
Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for a825b8a - Browse repository at this point
Copy the full SHA a825b8aView commit details -
Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 9c0cbb1 - Browse repository at this point
Copy the full SHA 9c0cbb1View commit details
Commits on Oct 5, 2020
-
Fix stack imbalance in x86 ThisCall reverse tests where native has a …
…return buffer but the managed calling convention doesn't.
Configuration menu - View commit details
-
Copy full SHA for 63507b7 - Browse repository at this point
Copy the full SHA 63507b7View commit details -
Merge branch 'master' of https://github.com/dotnet/runtime into retbu…
…f-move-to-jit
Configuration menu - View commit details
-
Copy full SHA for b72dcb4 - Browse repository at this point
Copy the full SHA b72dcb4View commit details
Commits on Oct 7, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 1262c27 - Browse repository at this point
Copy the full SHA 1262c27View commit details -
Fix instance call P/Invoke's on Windows ARM64.
Make better usage of canReturnInRegister to avoid a struct that has been marked as byref being marked as ByValueAsHfa. Instance call return buffers on Windows ARM64 don't use the standard return buffer register, so don't use use it in that case.
Configuration menu - View commit details
-
Copy full SHA for ef2adac - Browse repository at this point
Copy the full SHA ef2adacView commit details
Commits on Oct 8, 2020
-
Fix the reverse P/Invoke case for instance methods on ARM64.
Treat the return buffer as a normal arg and don't use the special retbuf register. Implicitly return the return buffer argument from the function to satisfy the C++ compiler's dependence on the implicit behavior (similar to Windows x64).
Configuration menu - View commit details
-
Copy full SHA for 5c2a9bc - Browse repository at this point
Copy the full SHA 5c2a9bcView commit details -
Update src/coreclr/src/vm/dllimportcallback.cpp
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for dd44e32 - Browse repository at this point
Copy the full SHA dd44e32View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1056c44 - Browse repository at this point
Copy the full SHA 1056c44View commit details -
Merge branches 'retbuf-move-to-jit' and 'retbuf-move-to-jit' of githu…
…b.com:jkoritzinsky/runtime into retbuf-move-to-jit
Configuration menu - View commit details
-
Copy full SHA for a0218a1 - Browse repository at this point
Copy the full SHA a0218a1View commit details -
Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 47bf6aa - Browse repository at this point
Copy the full SHA 47bf6aaView commit details
Commits on Oct 9, 2020
-
For x86 reverse P/Invokes where the return is an 8-byte struct, handl…
…e the case where native expects the returned struct in EAX:EDX but the managed call expects to return the result in a return buffer. Now that interop isn't bashing the return value to long and we aren't changing the x86 managed calling convention to support returning arbitrary 8-byte structs in EAX:EDX, the managed calling convention expects to return an arbitrary 8-byte struct in a return buffer. Since in this case, native code expects the return to be enregistered, we need to introduce a return buffer into the stack while executing the stub so the managed calling convention can point to the stub correctly.
Configuration menu - View commit details
-
Copy full SHA for a1bb21c - Browse repository at this point
Copy the full SHA a1bb21cView commit details -
Flip EAX/EDX slots in the x86 reverse P/Invoke stub. Now that they ma…
…tch the order that a return buffer uses, we can remove creation of our custom return buffer and instead point the return buffer directly into the EAX/EDX slots so our EAX/EDX restore path automatically handles the "native enregistered return, managed retrun buffer return" case.
Configuration menu - View commit details
-
Copy full SHA for 254063b - Browse repository at this point
Copy the full SHA 254063bView commit details
Commits on Oct 12, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 71adacb - Browse repository at this point
Copy the full SHA 71adacbView commit details -
Disable test on Win ARM32 to avoid blocking CI.
Not fixing the test since we don't officially support Windows ARM32 anyway and this scenario is already a corner case. Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 195713b - Browse repository at this point
Copy the full SHA 195713bView commit details
Commits on Oct 14, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 8833b06 - Browse repository at this point
Copy the full SHA 8833b06View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7e2c1f9 - Browse repository at this point
Copy the full SHA 7e2c1f9View commit details -
Explicitly validate size for this optimization.
Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 382113f - Browse repository at this point
Copy the full SHA 382113fView commit details -
Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for bd4022a - Browse repository at this point
Copy the full SHA bd4022aView commit details -
Configuration menu - View commit details
-
Copy full SHA for c4acc94 - Browse repository at this point
Copy the full SHA c4acc94View commit details
Commits on Oct 15, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 1694da8 - Browse repository at this point
Copy the full SHA 1694da8View commit details
Commits on Oct 16, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 5dd9031 - Browse repository at this point
Copy the full SHA 5dd9031View commit details -
Fixed passing a trivial struct in registers to a fast tail call (that…
… generates a direct jmp instruction).
Configuration menu - View commit details
-
Copy full SHA for 7182ad0 - Browse repository at this point
Copy the full SHA 7182ad0View commit details
Commits on Oct 19, 2020
-
Configuration menu - View commit details
-
Copy full SHA for e329242 - Browse repository at this point
Copy the full SHA e329242View commit details -
Configuration menu - View commit details
-
Copy full SHA for 94f6a1d - Browse repository at this point
Copy the full SHA 94f6a1dView commit details
Commits on Oct 23, 2020
-
Configuration menu - View commit details
-
Copy full SHA for cfce1d7 - Browse repository at this point
Copy the full SHA cfce1d7View commit details
Commits on Oct 27, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 0368407 - Browse repository at this point
Copy the full SHA 0368407View commit details -
Remove the old validation that relates only to the old x86 struct nor…
…malization model. The new model normalizes within the JIT, so the interop IL stubs don't need to account for it. Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for a4286f3 - Browse repository at this point
Copy the full SHA a4286f3View commit details
Commits on Oct 28, 2020
-
Apply suggestions from code review
Co-authored-by: Carol Eidt <carol.eidt@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for bae4165 - Browse repository at this point
Copy the full SHA bae4165View commit details -
Configuration menu - View commit details
-
Copy full SHA for 77d6bf6 - Browse repository at this point
Copy the full SHA 77d6bf6View commit details -
introduce a CORINFO_UNMANAGED_CALLCONV_MANAGED enum member to represe…
…nt the managed calling convention. Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 9e965f8 - Browse repository at this point
Copy the full SHA 9e965f8View commit details -
Configuration menu - View commit details
-
Copy full SHA for c28925e - Browse repository at this point
Copy the full SHA c28925eView commit details
Commits on Oct 30, 2020
-
Apply suggestions from code review
Co-authored-by: Sergey Andreenko <seandree@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for e5212cb - Browse repository at this point
Copy the full SHA e5212cbView commit details
Commits on Nov 2, 2020
-
Configuration menu - View commit details
-
Copy full SHA for e020165 - Browse repository at this point
Copy the full SHA e020165View commit details -
Configuration menu - View commit details
-
Copy full SHA for 90cfcef - Browse repository at this point
Copy the full SHA 90cfcefView commit details -
Configuration menu - View commit details
-
Copy full SHA for 41b21a5 - Browse repository at this point
Copy the full SHA 41b21a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for f6eeddf - Browse repository at this point
Copy the full SHA f6eeddfView commit details -
Use a union with the tailCalInfo pointer to store the unmanaged calli…
…ng convention since native calls cannot be tail calls.
Configuration menu - View commit details
-
Copy full SHA for 71c9032 - Browse repository at this point
Copy the full SHA 71c9032View commit details
Commits on Nov 3, 2020
-
Configuration menu - View commit details
-
Copy full SHA for b334b37 - Browse repository at this point
Copy the full SHA b334b37View commit details
Commits on Nov 23, 2020
-
Update src/coreclr/src/jit/importer.cpp
Co-authored-by: Andy Ayers <andya@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 28b1d48 - Browse repository at this point
Copy the full SHA 28b1d48View commit details -
Configuration menu - View commit details
-
Copy full SHA for aab5ca0 - Browse repository at this point
Copy the full SHA aab5ca0View commit details
Commits on Nov 24, 2020
-
Add some comments around CorInfoUnmanagedCallConv
Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 96081a0 - Browse repository at this point
Copy the full SHA 96081a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0ef4948 - Browse repository at this point
Copy the full SHA 0ef4948View commit details
Commits on Nov 30, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 6ee4a82 - Browse repository at this point
Copy the full SHA 6ee4a82View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3c89d74 - Browse repository at this point
Copy the full SHA 3c89d74View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2ce4270 - Browse repository at this point
Copy the full SHA 2ce4270View commit details -
Fix compMethodReturnsRetBufAddr
Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for fb00bc9 - Browse repository at this point
Copy the full SHA fb00bc9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8f9478a - Browse repository at this point
Copy the full SHA 8f9478aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 68d4081 - Browse repository at this point
Copy the full SHA 68d4081View commit details
Commits on Dec 1, 2020
-
Configuration menu - View commit details
-
Copy full SHA for e26c36d - Browse repository at this point
Copy the full SHA e26c36dView commit details -
Configuration menu - View commit details
-
Copy full SHA for c1040aa - Browse repository at this point
Copy the full SHA c1040aaView commit details
Commits on Dec 2, 2020
-
Configuration menu - View commit details
-
Copy full SHA for fa2f2aa - Browse repository at this point
Copy the full SHA fa2f2aaView commit details