ошибка: нераспознанная опция командной строки '-m64'
Я полагаю, вы ищете -march=armv8-a
(и друзей), а не -m64
. Опции GCC arm64 доступны в руководстве 3.18.1 AArch64 в руководстве.
Aarch64 включает ASIMD в базовую спецификацию, поэтому для него не требуется никаких дополнительных вращений. ASIMD - это «Расширенные инструкции SIMD» , и именно это ARM называет NEON в архитектурах Aarch32 и Aarch64.
Если вы хотите включить расширения, такие как CRC или Crypto, то опциявыглядят как -march=armv8.1-a+crc
или -march=armv8.1-a+crypto
или -march=armv8.1-a+crc+crypto
.
Эквивалентные параметры x86 будут следующими. Очевидно, что ARM-порт GCC не использует ту же модель, что и x86. Это сбивает с толку новых пользователей (или это сбивало с толку меня).
-march=armv8-a
→ -msse2
-march=armv8.1-a+crc
→ -msse2 -msse4.1
-march=armv8.1-a+crypto
→ -msse2 -mpclmul -maes
-march=armv8.1-a+crc+crypto
→ -msse2 -msse4.1 -mpclmul -maes
Набор инструкций ARM включает в себя криптографию SHA, поэтому параметры x86, вероятно, должны включать -msha
. Проблема в том, что x86 SHA не прибыл примерно через 8 лет после переноса умножения и AES.
Кроме того, компиляторы GCC ARM обычно не понимают -march=native
. На старых компиляторах GCC компилятор просто зависает. На GCC среднего уровня это просто игнорируется. Я полагаю, что последние компиляторы GCC чтят это.