如何在英特尔语法中使用clang生成汇编代码?

正如这个问题所示,用g ++,我可以做g++ -S -masm=intel test.cpp 。 此外,与铿锵声,我可以做clang++ -S test.cpp ,但-masm=intel不支持铛( warning argument unused during compilation: -masm=intel )。 如何获得与clang英特尔语法?

这应该让clang用Intel语法发出汇编代码:

 clang++ -S -mllvm --x86-asm-syntax=intel test.cpp 

您可以使用-mllvm <arg>从clang命令行传入llvm选项。 可悲的是,这个选项似乎没有很好的logging,因此我只能通过浏览llvm邮件列表来find它。


如下面的@thakis所述 ,Clang(3.5+)的新版本不再需要它,因为它现在支持-masm=intel语法。

从r208683 (铛3.5+)开始,它理解-masm=intel 。 所以如果你的叮当是新的,你可以使用它。

假设您可以让Clang发出正常的LLVM字节代码,然后可以使用llc编译为汇编语言,并使用其--x86-asm-syntax=intel选项以英特尔语法获得结果。