假设我正在编写一个带有 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/