Description
Description
This issue tracks implementation progress of UnmanagedCallersOnly for the Swift calling convention. When a Swift function calls into .NET, it utilizes the swiftself
and swifterror
registers to pass context pointers according to the calling convention. In methods annotated with the UnmanagedCallersOnly
attribute, users can add SwiftSelf
argument to load swiftself
register value. Additionally, users can add SwiftError
argument to store an exception pointer into swifterror
register.
The existing runtime tests should be used for verification.
Tasks
- [mono] Add SwiftError support for Swift reverse pinvokes #101122
- [Mono] added simple reverse pinvoke support to interpreter #102185
Note: The default configuration on Apple and Apple mobile platforms uses the LLVM backend, but native wrappers are compiled with the mini backend. Efforts to enable LLVM compilation of native wrappers has been done in #96910.