Как этот вопрос показывает, с g++, я могу сделать g++ -S -masm=intel test.cpp
.
Кроме того, с clang я могу сделать clang++ -S test.cpp
, но -masm=intel
не поддерживается clang (warning argument unused during compilation: -masm=intel
). Как получить синтаксис intel с clang?
Как сгенерировать код сборки с clang в синтаксисе Intel?
Ответ 1
Как отмечено ниже @thakis, более новые версии Clang (3. 5+) принимают аргумент -masm=intel
.
Для более старых версий это должно заставить clang выдавать ассемблерный код с синтаксисом Intel:
clang++ -S -mllvm --x86-asm-syntax=intel test.cpp
Вы можете использовать -mllvm <arg>
для передачи параметров llvm из командной строки clang. К сожалению, эта опция не очень хорошо документирована, и поэтому я нашел ее, только просматривая списки рассылки llvm.
Ответ 2
Как по clang r208683 (clang 3.5+), он понимает -masm=intel
. Итак, если ваш clang достаточно новый, вы можете просто использовать его.
Ответ 3
Предполагая, что Clang может генерировать нормальные LLVM-байтовые коды, вы можете использовать llc для компиляции на ассемблере и использовать его --x86-asm-syntax=intel
, чтобы получить результат в синтаксисе Intel.