74

この質問が示すように、g ++を使用すると、実行できますg++ -S -masm=intel test.cpp。また、clangを使用すると、実行できますがclang++ -S test.cpp-masm=intelclang()ではサポートされていませんwarning argument unused during compilation: -masm=intel。clangでIntel構文を取得するにはどうすればよいですか?

4

3 に答える 3

120

@thakisによって以下に記載されているように、Clang の新しいバージョン (3.5+) は-masm=intel引数を受け入れます。


古いバージョンの場合、これにより、clang がインテルの構文でアセンブリ コードを発行するようになります。

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

を使用-mllvm <arg>して、clang コマンド ラインから llvm オプションを渡すことができます。悲しいことに、このオプションは十分に文書化されていないようです。そのため、llvm メーリング リストをブラウズすることでしか見つけられませんでした。

于 2012-08-14T17:44:17.360 に答える
47

clang r208683 (clang 3.5+) の時点で、それは理解でき-masm=intelます。したがって、clang が十分に新しい場合は、そのまま使用できます。

于 2014-05-13T11:47:55.820 に答える
17

Clangに通常のLLVMバイトコードを出力させることができると仮定すると、llcを使用してアセンブリ言語にコンパイルし、その--x86-asm-syntax=intelオプションを使用してIntel構文で結果を取得できます。

于 2012-06-12T03:45:26.757 に答える