Spec-Zone.ru › GCC 4

3.17.1 Опции AArch64

Эти параметры определены для реализаций AArch64:

-mabi=name
Генерировать код для указанной модели данных. Допустимые значения — ‘ilp32’ для модели данных типа SysV, где int, long int и указатель имеют размер 32 бита, и ‘lp64’ для модели данных типа SysV, где int имеет размер 32 бита, а long int и указатель — 64 бита.

По умолчанию зависит от конкретной конфигурации целевой системы. Обратите внимание, что ABI LP64 и ILP32 не совместимы при линковке; необходимо скомпилировать всю программу с одним и тем же ABI и связать её с совместимым набором библиотек.

-mbig-endian
Генерировать код в формате big-endian. По умолчанию, когда GCC сконфигурирован для целевой системы ‘aarch64_be-*-*’.
-mgeneral-regs-only
Генерировать код, использующий только регистры общего назначения.
-mlittle-endian
Генерировать код в формате little-endian. По умолчанию, когда GCC сконфигурирован для целевой системы ‘aarch64-*-*’, но не для ‘aarch64_be-*-*’.
-mcmodel=tiny
Генерировать код для модели tiny. Программа и её статически определённые символы должны находиться в пределах 1 ГБ друг от друга. Указатели — 64 бита. Программы могут быть статически или динамически связаны. Эта модель не полностью реализована и в основном рассматривается как ‘small’.
-mcmodel=small
Генерировать код для модели small. Программа и её статически определённые символы должны находиться в пределах 4 ГБ друг от друга. Указатели — 64 бита. Программы могут быть статически или динамически связаны. Это модель кода по умолчанию.
-mcmodel=large
Генерировать код для модели large. Не делается предположений об адресах и размерах секций. Указатели — 64 бита. Программы могут быть только статически связаны.
-mstrict-align
Не предполагать, что система будет обрабатывать обращения к невыровненной памяти.
-momit-leaf-frame-pointer
-mno-omit-leaf-frame-pointer
Опустить или сохранить указатель фрейма в функциях листа. Предыдущее поведение — по умолчанию.
-mtls-dialect=desc
Использовать описатели TLS в качестве механизма хранения локальных данных потока для динамических обращений к переменным TLS. По умолчанию.
-mtls-dialect=traditional
Использовать традиционный TLS в качестве механизма хранения локальных данных потока для динамических обращений к переменным TLS.
-mfix-cortex-a53-835769
-mno-fix-cortex-a53-835769
Включить или отключить обходное решение для ошибки ARM Cortex-A53 с номером 835769. Это будет включать вставку инструкции NOP между инструкциями работы с памятью и инструкциями 64-битного умножения-сложения целых чисел.
-mfix-cortex-a53-843419
-mno-fix-cortex-a53-843419
Включить или отключить обходное решение для ошибки ARM Cortex-A53 с номером 843419. Это обходное решение ошибки выполняется во время линковки, и это лишь передаст соответствующий флаг компоновщику.
-march=name
Указать имя целевой архитектуры, необязательно с постфиксом одного или нескольких модификаторов функций. Этот параметр имеет вид -march=arch{+[no]feature}*, где единственное допустимое значение для arch — ‘armv8-a’. Допустимые значения для feature описаны в подсекции ниже.

В случае конфликтующих модификаторов функций используется самый правый.

GCC использует это имя, чтобы определить, какие инструкции можно выдать при генерации кода ассемблера.

Если -march указан без указания -mtune или -mcpu, код будет настроен на эффективную работу на различных целевых процессорах, реализующих целевую архитектуру.

-mtune=name
Указать имя целевого процессора, для которого GCC должен настроить производительность кода. Допустимые значения для этого параметра: ‘generic’, ‘cortex-a53’, ‘cortex-a57’.

Кроме того, этот параметр может указать, что GCC должен настроить производительность кода для системы big.LITTLE. Единственное допустимое значение — ‘cortex-a57.cortex-a53’.

Если ни -mtune=, ни -mcpu= ни -march= не указаны, код будет настроен на эффективную работу на различных целевых процессорах.

Этот параметр не может быть дополнен модификаторами функций.

-mcpu=name
Указать имя целевого процессора, необязательно с постфиксом одного или нескольких модификаторов функций. Этот параметр имеет вид -mcpu=cpu{+[no]feature}*, где допустимые значения для cpu такие же, как доступные для -mtune.

Допустимые значения для feature описаны в подсекции ниже.

В случае конфликтующих модификаторов функций используется самый правый.

GCC использует это имя, чтобы определить, какие инструкции можно выдать при генерации кода ассемблера (как если бы с помощью -march) и определить целевой процессор, для которого настраивается производительность (как если бы с помощью -mtune). Если этот параметр используется совместно с -march или -mtune, эти параметры имеют приоритет над соответствующей частью этого параметра.

3.17.1.1 Модификаторы функций -march и -mcpu

Модификаторы функций, используемые с -march и -mcpu, могут быть следующими:

‘crc’
Включить расширение CRC.
‘crypto’
Включить расширение Crypto. Это подразумевает включение расширения Advanced SIMD.
‘fp’
Включить инструкции с плавающей точкой.
‘simd’
Включить инструкции Advanced SIMD. Это подразумевает включение инструкций с плавающей точкой. По умолчанию для всех текущих возможных значений параметров -march и -mcpu=.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/AArch64-Options.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API