You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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)