https://webassembly.studio/ позволяет проверять файлы WebAssembly (WASM) и соответствующий код x86, сгенерированный SpiderMonkey. Я хотел бы аналогичным образом проверить инструкции, генерируемые компиляторами WASM V8 (Liftoff и TurboFan).
Я совершенно не знаком с кодовой базой / API V8 (хотя я скомпилировал и связал его, а также выполнил несколько руководств). Кажется, что доступен класс v8::CompiledWasmModule
, но он, похоже, не предоставляет доступ к сгенерированным инструкциям x86 / x64 ни Liftoff, ни TurboFan.
WebAssembly - добавление нового кода операции описывает процесс добавления кода операции WASM в V8. В упомянутых классах доступны, казалось бы, подходящие функции для компиляции / выполнения WASM. Хотя они кажутся довольно глубоко слоистыми в кодовой базе V8, и к ним было бы трудно получить доступ, если бы я связал V8 как библиотеку. Кроме того, я не уверен, соответствует ли это Liftoff или TurboFan.
Может ли кто-нибудь, знакомый с кодовой базой V8, дать мне несколько указателей относительно того, как я могу получить доступ к модулю компиляции Liftoff и / или TurboFan WebAssembly, чтобы получить код x86 / x64?