javascript - 在 OdinMonkey 中优化 asm.js

标签 javascript assembly x86 spidermonkey asm.js

假设我正在编写一个带有 asm.js 后端的编译器。为了生成最高效的代码,我想知道生成的 asm.js 代码是如何翻译成机器代码的。有没有办法使用 SpiderMonkey 构建转储由 OdinMonkey 生成的(在我的例子中是 x86-64)程序集:https://developer.mozilla.org/en-US/docs/SpiderMonkey/Build_Documentation

最佳答案

我刚刚了解到 OdinMonkey 不会直接生成汇编代码 ( https://github.com/dherman/asm.js/issues/80#issuecomment-31673247 ),但会为 IonMonkey 生成优化的 MIR 代码,然后将其转换为 LIR 代码,然后再转换为机器代码。

因此我的问题应该是如何转储 IonMonkey 处理和输出的程序集。对于中间代码,可以使用带有 IONFLAGS=logs 的 SpiderMonkey js shell 的调试版本。这在/tmp/ion.cfg 中提供了相当多的信息。对于汇编代码,本站(https://developer.mozilla.org/en-US/docs/SpiderMonkey/Hacking_Tips)建议使用gdb反汇编机器码。

关于javascript - 在 OdinMonkey 中优化 asm.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890967/

相关文章:

javascript - 将 'prompt()' 的结果拆分为数组中的项目?

c - .byte 在这个 asm 行中是什么意思?

assembly - NASM:在寄存器中存储段和偏移量的远调用

c++ - 如何在运行时区分 C++ 中的 Intel CPU 各代?

javascript - 在一个元素上鼠标按下?

javascript - 将属性从嵌套模型映射到 extjs 表单 View

javascript - 表单提交后选中的复选框保持选中/未选中状态

c - 为什么下面的c函数和asm代码一样

assembly - 为什么从AT&T切换到Intel语法会使本教程使用GAS出现段错误?

c - 使用 AVX vector 内在函数手动矢量化的运行速度与 Ryzen 上添加的 4 个标量 FP 的速度大致相同?