mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-15 13:09:14 +00:00
![Jan de Mooij](/assets/img/avatar_default.png)
JS JIT callers can call Wasm code either directly from Ion or through the JitEntry stub. In the JitEntry case, we didn't have a real JS JIT exit frame. To make JS frame iteration still work in this case, a special `JSJitToWasm` frame type was used to transition from Wasm frame iteration to JIT frame iteration. Now that we can unwind Wasm and JS frames directly, this caused some issues because there were places where we were expecting an actual JIT exit frame. This patch changes the JitEntry stub to initialize a JIT exit frame. To do this, we just need to store an `ExitFooterFrame` below the frame pointer. This is similar to what we were already doing in `GenerateJitEntryThrow`. This lets us remove the `JSJitToWasm` frame type and simplify frame iteration a bit. Differential Revision: https://phabricator.services.mozilla.com/D218346