this only happens when building with arm_switch.cpp. if built with arm_table.cpp then it works. this is not a bug in my code as i have stepped through and diffed instruction by instruction when emulating. also, arm_switch.cpp is generated from the same code as arm_table.cpp
this crash only happens on mobile chrome-based browsers such as chrome, edge, opera.
it works in firefox mobile and safari on ios
it also works on desktop, all desktop web browsers (including chrome).
this only happens when building with
arm_switch.cpp
. if built witharm_table.cpp
then it works. this is not a bug in my code as i have stepped through and diffed instruction by instruction when emulating. also,arm_switch.cpp
is generated from the same code asarm_table.cpp
this crash only happens on mobile chrome-based browsers such as chrome, edge, opera.
it works in firefox mobile and safari on ios
it also works on desktop, all desktop web browsers (including chrome).
looks like it could be related to https://github.com/emscripten-core/emscripten/issues/14013, although i cannot see the issue tracker that was opened on chromium.
the solution for now is to do web builds using LUT instead giant switches.