正如this question所示,使用g ++,我可以g++ -S -masm=intel test.cpp
。
另外,对于clang,我可以clang++ -S test.cpp
,但clang(-masm=intel
)不支持warning argument unused during compilation: -masm=intel
。如何使用clang获取intel语法?
答案 0 :(得分:101)
作为noted below by @thakis,较新版本的Clang(3.5+)接受-masm=intel
参数。
对于旧版本,应该使用英特尔语法发出汇编代码:
clang++ -S -mllvm --x86-asm-syntax=intel test.cpp
您可以使用-mllvm <arg>
从clang命令行传入llvm选项。遗憾的是,这个选项似乎没有很好地记录,因此我只是通过浏览llvm邮件列表找到它。
答案 1 :(得分:34)
从clang r208683(铿锵3.5+)开始,它理解-masm=intel
。所以,如果你的铿锵声足够新,你可以使用它。
答案 2 :(得分:16)
假设您可以让Clang发出正常的LLVM字节代码,然后您可以使用llc编译为汇编语言,并使用其--x86-asm-syntax=intel
选项以英特尔语法获得结果。