V8 引擎是否知道如何使用 Intel 语法打印生成的机器代码?

Does V8 engine know how to print generated machine code using Intel syntax?

我正在使用 D8 shell 和标志 --print-opt-code 打印 TurboFan 生成的代码。

但是,代码是使用 AT&T 语法打印的。我不熟悉它,但熟悉英特尔语法。我在 d8 --help 中进行了搜索,但没有找到相应的选项。 V8 是否可以选择使用 Intel 语法打印程序集?如果没有,是否有解决方法,例如我可以 运行 与 D8 一起将 AT&T 语法转换为 Intel 语法的程序?

(此处为 V8 开发人员。)

V8 只支持一种打印反汇编的语法。它非常接近 Intel 语法:目标在源之前(例如 movl eax, 2),间接内存地址如 [eax+ebx*2+1].

参考 https://en.wikipedia.org/wiki/X86_assembly_language#Syntax,我想你可以说 V8 从 AT&T 语法中获取的一个约定是操作宽度被编码为指令名称的后缀,例如movl 是 4 字节移动,movq 是 8 字节移动,testb 是 1 字节测试。