Spec-Zone.ru › GCC 7

3.18.37 Опции RISC-V

Эти параметры командной строки определены для целей RISC-V:

-mbranch-cost=n

Установите стоимость ветвлений примерно в n инструкций.

-mplt
-mno-plt

При генерации кода PIC разрешить или запретить использование PLT. Игнорируется для не-PIC. По умолчанию используется -mplt.

-mabi=ABI-string

Укажите соглашение о вызовах для целочисленных и с плавающей точкой типов. ABI-string содержит две части: размер целочисленных типов и регистры, используемые для типов с плавающей точкой. Например, ‘-march=rv64ifd -mabi=lp64d’ означает, что ‘long’ и указатели являются 64-битными (явно определяет ‘int’ как 32-битный), и что значения с плавающей точкой до 64 бит широкие передаются в регистрах F. В отличие от ‘-march=rv64ifd -mabi=lp64f’, который всё ещё позволяет компилятору генерировать код, использующий расширения F и D, но допускает передачу в регистрах только значений с плавающей точкой до 32 бит длиной; или ‘-march=rv64ifd -mabi=lp64’, в котором никакие аргументы с плавающей точкой не передаются в регистрах.

По умолчанию этот аргумент зависит от системы. Пользователи, которые хотят использовать конкретное соглашение о вызовах, должны явно его указать. Допустимые соглашения о вызовах: ‘ilp32’, ‘ilp32f’, ‘ilp32d’, ‘lp64’, ‘lp64f’ и ‘lp64d’. Некоторые соглашения о вызовах невозможно реализовать на некоторых ISA: например, ‘-march=rv32if -mabi=ilp32d’ недействителен, потому что соглашение о вызовах требует, чтобы 64-битные значения передавались в регистрах F, но регистры F имеют только 32 бита ширины.

-mfdiv
-mno-fdiv

Использовать или нет аппаратные инструкции для деления и извлечения квадратного корня с плавающей точкой. Это требует расширений F или D для регистров с плавающей точкой. По умолчанию они используются, если указанная архитектура имеет эти инструкции.

-mdiv
-mno-div

Использовать или нет аппаратные инструкции для целочисленного деления. Это требует расширения M. По умолчанию они используются, если указанная архитектура имеет эти инструкции.

-march=ISA-string

Генерировать код для заданной ISA RISC-V (например, ‘rv64im’). Строки ISA должны быть в нижнем регистре. Примеры включают ‘rv64i’, ‘rv32g’ и ‘rv32imaf’.

-mtune=processor-string

Оптимизировать вывод для данного процессора, указанного именем микроархитектуры.

-msmall-data-limit=n

Поместить глобальные и статические данные размером меньше n байтов в специальный раздел (на некоторых целях).

-msave-restore
-mno-save-restore

Использовать или нет более компактный, но медленный пролог и эпилог, использующий вызовы функций из библиотеки. По умолчанию используются быстрые встроенные прологи и эпилоги.

-mstrict-align
-mno-strict-align

Запретить или разрешить невыровненные обращения к памяти. По умолчанию устанавливается в зависимости от того, поддерживает ли оптимизируемый процессор быстрое невыровненное обращение или нет.

-mcmodel=medlow

Генерировать код для модели кода средне-низкого уровня. Программа и её статически определённые символы должны находиться в одном диапазоне адресов 2 Гбайта и должны располагаться между абсолютными адресами -2 Гбайта и +2 Гбайта. Программы могут быть статически или динамически связаны. Это модель кода по умолчанию.

-mcmodel=medany

Генерировать код для модели кода средне-любой. Программа и её статически определённые символы должны располагаться в любом диапазоне адресов 2 Гбайта. Программы могут быть статически или динамически связаны.

-mexplicit-relocs
-mno-exlicit-relocs

Использовать или не использовать операторы перемещения ассемблера при работе со символическими адресами. Альтернативой является использование макросов ассемблера, что может ограничить оптимизацию.

Далее: Опции RL78, Предыдущее: Опции PowerPC, Вверх: Опции Подмодели [Оглавление][Индекс]

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

Spec-Zone.ru

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