Skip to content

[mono] Implement UnmanagedCallersOnly support for Swift calling convention #100010

Closed
@kotlarmilos

Description

@kotlarmilos

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions