3.18.38 Параметры 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’. Некоторые соглашения о вызовах невозможно реализовать на некоторых наборах команд: например, ‘-march=rv32if -mabi=ilp32d’ недействительно, потому что соглашение о вызовах требует, чтобы значения 64 бит передавались в регистрах F, но регистры F имеют только 32 бита.
-mfdiv-mno-fdiv-
Использовать или нет аппаратные инструкции деления и извлечения квадратного корня с плавающей точкой. Это требует расширений F или D для регистров с плавающей точкой. По умолчанию они используются, если в указанной архитектуре есть эти инструкции.
-mdiv-mno-div-
Использовать или нет аппаратные инструкции для целочисленного деления. Это требует расширения М. По умолчанию они используются, если в указанной архитектуре есть эти инструкции.
-march=ISA-string-
Генерировать код для данного набора команд RISC-V (например, ‘rv64im’). Строки набора команд должны быть в нижнем регистре. Примеры включают ‘rv64i’, ‘rv32g’ и ‘rv32imaf’.
-mtune=processor-string-
Оптимизировать выходные данные для данного процессора, указанного именем микроархитектуры.
-mpreferred-stack-boundary=num-
Попытаться выровнять границу стека по границе в 2 в степени num байт. Если -mpreferred-stack-boundary не указан, по умолчанию используется 4 (16 байт или 128 бит).
Предупреждение: Если вы используете этот переключатель, вы должны скомпилировать все модули с тем же значением, включая любые библиотеки. Это включает системные библиотеки и модули запуска.
-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-
Использовать или не использовать операторы переназначения ассемблера при работе со символическими адресами. Альтернатива – использование макросов ассемблера, что может ограничить оптимизацию.
-mrelax-mno-relax-
Использовать или не использовать возможности релаксации линковщика для сокращения количества инструкций, необходимых для материализации адресов символов. По умолчанию используются возможности релаксации линковщика.
Далее: Параметры RL78, Предыдущее: Параметры PowerPC SPE, Вверх: Параметры подмодели [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.5.0/gcc/RISC-V-Options.html