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