Почему Visual С++ больше не поддерживает встроенный ассемблер для Intel 64 и IA-64?
Отказ от поддержки встраиваемого ассемблерного кода (через ключевое слово __asm) при компиляции для 64-битных платформ Intel 64 и IA-64 скорее всего связан с желанием Microsoft упростить работу оптимизатора и разработку новых версий компилятора для Visual C++. Встроенный ассемблерный код ограничивает переносимость разрабатываемого ПО на другие платформы, а оптимизация от его использования в настоящее время редко оправдана – компилятор в большинстве случаев создаст достаточно эффективный код.
В случае, если необходимая функциональность не может быть реализована на уровне C++ кода, для замены ассемблерных вставок вы можете воспользоваться встраиваемыми (intrinsic) функциями или подключить к проекту внешние asm-файлы.
Библиографический список
- Обсуждение на сайте Stackoverflow.com. Why does MSVC not support inline assembly for AMD64 and Itanium targets?
- MSDN Library. Inline Assembler.
- Обсуждение на сайте www.pcreview.co.uk. No Inline-Assembly for x64 Builds?
0