[wasm] Implement LEAVE_CHECK in the jiterpreter (as a bailout) (#84387)
authorKatelyn Gadd <kg@luminance.org>
Thu, 6 Apr 2023 12:08:58 +0000 (05:08 -0700)
committerGitHub <noreply@github.com>
Thu, 6 Apr 2023 12:08:58 +0000 (05:08 -0700)
commit8f7d818aeb4632490482df20c6c9af592ff8f176
tree83499a7af8aba6d4d41a2221f231f6e0bc3793a7
parent2c8cb129ed084e374f06eaa29f21e9ab0b9e8066
[wasm] Implement LEAVE_CHECK in the jiterpreter (as a bailout) (#84387)

LEAVE_CHECK is a variant of LEAVE that only appears inside catch clauses, and catch clauses will not be running during normal optimized execution. So it's reasonable for the jiterpreter to compile them into bailouts, which will allow trace compilation to continue past the catch clause.
src/mono/mono/mini/interp/jiterpreter.c
src/mono/wasm/runtime/jiterpreter-support.ts
src/mono/wasm/runtime/jiterpreter-trace-generator.ts