[wasm] Outline exception throws in the interp and ifdef out unreachable opcodes ...
authorKatelyn Gadd <kg@luminance.org>
Wed, 14 Dec 2022 17:53:36 +0000 (09:53 -0800)
committerGitHub <noreply@github.com>
Wed, 14 Dec 2022 17:53:36 +0000 (09:53 -0800)
commitd316bb475962918827112145eac8982e5e4c0b5b
tree07e5178aff0f8f1e64ad129f5dc9d79a6e1d5dc4
parentd6070965e75b37f51db79862cadaec4177453a67
[wasm] Outline exception throws in the interp and ifdef out unreachable opcodes (#79239)

* Outline THROW_EX_GENERAL and ifdef out unreachable opcodes in the wasm version of the mono interpreter for better performance
* Introduce IROPDEF for intermediate opcodes that are only used during code generation
* Move IR opcodes to the end of the table and don't generate jump targets for them
* Add an include guard to mintops.def to ensure that config.h is always included when it is used
* Make the jiterp opcodes platform specific, fix a bug in genmintops that produced wrong ordering
* Fix jiterpreter heuristic erroneously rejecting mov opcodes
src/mono/mono/mini/interp/interp.c
src/mono/mono/mini/interp/jiterpreter.c
src/mono/mono/mini/interp/mintops.c
src/mono/mono/mini/interp/mintops.def
src/mono/wasm/runtime/genmintops.py
src/mono/wasm/runtime/jiterpreter.ts