Skip to content

Revisit EH at P/Invoke boundary for QCalls #123482

@am11

Description

@am11

we don't push them on pinvoke boundary for perf reason (@jkotas believed the perf hit would not be acceptable

On Unix, we would have to get rid of the internal EH interop for QCalls to do this correctly: catch the exception on QCall unmanaged side, store it in a thread local variable or in an [out] argument register, and rethrow it on the managed size.

Also, we would have the do something about the other managed->unmanaged transitions that do not go through the regular PInvoke path. For the less perf-sensitive transitions like ThePreStub, it should be ok to push the callee saved float registers.

Originally posted by @jkotas in #123307 (comment)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions