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
[mono][interp] Tweaks to x86 call convention handling (#88466)
First, we no longer assert that the call convetion is cdecl on the slowpath. The pinvoke trampoline on x86 restores the saved stack pointer so it doesn't matter if the pinvoke callee pops or not the stack. Therefore both stdcall and cdecl calls should be supported with the same path. Untested.
Second, we use the fastpath (which uses the C call convention) only if the pinvoke signature is also cdecl, otherwise we have cconv mismatch.
g_assertf (csignature->call_convention==MONO_CALL_DEFAULT||csignature->call_convention==MONO_CALL_C, "Interpreter supports only cdecl pinvoke on x86");
0 commit comments