-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mono][wasm] Fix the usage of function pointers in mixed mode. #54098
Conversation
Tagging subscribers to this area: @BrzVlad Issue DetailsThe llvm compiled code expects function pointers to be a MonoFtnDesc*, while
|
361687b
to
9fd1df3
Compare
fd16461
to
a6357b2
Compare
Fixes #50965 |
The llvm compiled code expects function pointers to be a MonoFtnDesc*, while the interpreter expects them to be a InterpMethod*. Use a MonoFtnDesc in both cases.
It's ugly that passing function pointers between aot and interp would only work in llvmonly. Is it feasible, if we decide to care about it, to use function descriptors also in normal jit/aot mode when doing a |
For non-llvmonly mode, the interpreter should use the same representation as the jitted code i.e. normal pointers to the method code, for interpreted code, that would be some kind of trampoline to enter the interpreter. |
That would have problems on the interp side, since, instead of having direct access to the InterpMethod when doing a ldftn, we would have this native pointer that we have to call and enter the interpreter every time. |
/azp run |
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list. |
/azp run runtime runtime-staging |
No pipelines are associated with this pull request. |
The llvm compiled code expects function pointers to be a MonoFtnDesc*, while
the interpreter expects them to be a InterpMethod*. Use a MonoFtnDesc in
both cases.