Hi Philippe, > On 9/4/25 21:21, Stefan Hajnoczi wrote: > > On Mon, Apr 07, 2025 at 11:45:51PM +0900, Kohei Tokunaga wrote: > >> This patch series enables QEMU's system emulator to run in a browser using > >> Emscripten. > >> It includes implementations and workarounds to address browser environment > >> limitations, as shown in the following. > > > > I think it would be great to merge this even if there are limitations > > once code review comments have been addressed. Developing WebAssembly > > support in-tree is likely to allow this effort to develop further than > > if done in personal repos (and with significant efforts required to > > rebase the code periodically). > > > >> # New TCG Backend for Browsers > >> > >> A new TCG backend translates IR instructions into Wasm instructions and runs > >> them using the browser's WebAssembly APIs (WebAssembly.Module and > >> WebAssembly.instantiate). To minimize compilation overhead and avoid hitting > >> the browser's limitation of the number of instances, this backend integrates > >> a forked TCI. TBs run on TCI by default, with frequently executed TBs > >> compiled into WebAssembly. > >> > >> # Workaround for Running 64-bit Guests > >> > >> The current implementation uses Wasm's 32-bit memory model, even though Wasm > >> supports 64-bit variables and instructions. This patch explores implementing > >> TCG 64-bit instructions while leveraging SoftMMU for address translation. To > >> enable 64-bit guest support in Wasm today, it was necessary to partially > >> revert recent changes that removed support for different pointer widths > >> between the host and guest (e.g., commits > >> a70af12addd9060fdf8f3dbd42b42e3072c3914f and > >> bf455ec50b6fea15b4d2493059365bf94c706273) when compiling with > >> Emscripten. While this serves as a temporary workaround, a long-term > >> solution could involve adopting Wasm's 64-bit memory model once it gains > >> broader support, as it is currently not widely adopted (e.g., unsupported by > >> Safari and libffi). Feedback and suggestions on this approach are welcome. > > The biggest problem I'm seeing is we no longer support 64-bit guests on > 32-bit hosts, and don't plan to revert that.
Yes, so the sixth patch ("[PATCH 06/10] include/exec: Allow using 64bit guest addresses on emscripten") should be considered as a temporary workaround, enabled only for Emsripten builds. It will be removed once wasm64 gains broader support and is adopted in the Wasm backend.