3.18.53 Параметры V850
Эти параметры ‘-m’ определены для реализаций V850:
-mlong-calls-mno-long-calls-
Обрабатывать все вызовы как удалённые (близкие). Если вызовы предполагаются удалёнными, компилятор всегда загружает адрес функции в регистр и выполняет вызов через указатель.
-mno-ep-mep-
Не оптимизировать (оптимизировать) базовые блоки, которые используют один и тот же указатель индекса 4 или более раз, чтобы скопировать указатель в регистр
ep, и использовать более короткие инструкцииsldиsst. Параметр -mep включён по умолчанию, если оптимизация включена. -mno-prolog-function-mprolog-function-
Не использовать (использовать) внешние функции для сохранения и восстановления регистров в прологе и эпилоге функции. Внешние функции медленнее, но занимают меньше кода, если несколько функций сохраняют одинаковое количество регистров. Параметр -mprolog-function включён по умолчанию, если оптимизация включена.
-mspace-
Попытаться сделать код как можно меньше. В настоящее время это просто включает параметры -mep и -mprolog-function.
-mtda=n-
Разместить статические или глобальные переменные, размер которых равен или меньше n байтов, в небольшой области данных (tiny data area), на которую указывает регистр
ep. Область небольшой данных может содержать до 256 байт в целом (128 байт для байтовых ссылок). -msda=n-
Разместить статические или глобальные переменные, размер которых равен или меньше n байтов, в малой области данных (small data area), на которую указывает регистр
gp. Малая область данных может содержать до 64 килобайт. -mzda=n-
Разместить статические или глобальные переменные, размер которых равен или меньше n байтов, в первых 32 килобайтах памяти.
-mv850-
Указать, что целевой процессор — V850.
-mv850e3v5-
Указать, что целевой процессор — V850E3V5. Препроцессорная константа
__v850e3v5__определена, если этот параметр используется. -mv850e2v4-
Указать, что целевой процессор — V850E3V5. Это псевдоним для параметра -mv850e3v5.
-mv850e2v3-
Указать, что целевой процессор — V850E2V3. Препроцессорная константа
__v850e2v3__определена, если этот параметр используется. -mv850e2-
Указать, что целевой процессор — V850E2. Препроцессорная константа
__v850e2__определена, если этот параметр используется. -mv850e1-
Указать, что целевой процессор — V850E1. Препроцессорные константы
__v850e1__и__v850e__определены, если этот параметр используется. -mv850es-
Указать, что целевой процессор — V850ES. Это псевдоним для параметра -mv850e1.
-mv850e-
Указать, что целевой процессор — V850E. Препроцессорная константа
__v850e__определена, если этот параметр используется.Если ни -mv850, ни -mv850e, ни -mv850e1, ни -mv850e2, ни -mv850e2v3, ни -mv850e3v5 не определены, то выбирается целевой процессор по умолчанию, и соответствующая препроцессорная константа ‘__v850*__’ определена.
Препроцессорные константы
__v850и__v851__всегда определены, независимо от того, какой вариант процессора является целевым. -mdisable-callt-mno-disable-callt-
Этот параметр подавляет генерацию инструкции
CALLTдля вариантов архитектуры v850: v850e, v850e1, v850e2, v850e2v3 и v850e3v5.Этот параметр включён по умолчанию, когда используется ABI RH850 (см. -mrh850-abi), и выключен по умолчанию, когда используется ABI GCC. Если инструкции
CALLTгенерируются, то препроцессорная константа__V850_CALLT__определена. -mrelax-mno-relax-
Передать (или не передавать) параметр командной строки -mrelax ассемблеру.
-mlong-jumps-mno-long-jumps-
Отключить (или включить повторно) генерацию инструкций перехода, относительных к регистру PC.
-msoft-float-mhard-float-
Отключить (или включить повторно) генерацию инструкций аппаратной арифметики с плавающей точкой. Этот параметр имеет значение только в том случае, если целевая архитектура — ‘V850E2V3’ или выше. Если инструкции аппаратной арифметики с плавающей точкой генерируются, то препроцессорная константа
__FPU_OK__определена, в противном случае определена константа__NO_FPU__. -mloop-
Включает использование инструкции e3v5 LOOP. Использование этой инструкции по умолчанию не включено при выборе архитектуры e3v5, так как её использование всё ещё экспериментальное.
-mrh850-abi-mghs-
Включает поддержку версии V850 ABI для RH850. Это значение по умолчанию. С этой версией ABI применяются следующие правила:
- Целочисленные структуры и объединения возвращаются через указатель памяти, а не через регистр.
- Крупные структуры и объединения (больше 8 байт) передаются по значению.
- Функции выравниваются до границ 16 бит.
- Поддерживается параметр командной строки -m8byte-align.
- Параметр командной строки -mdisable-callt включён по умолчанию. Параметр командной строки -mno-disable-callt не поддерживается.
Когда эта версия ABI включена, препроцессорная константа
__V850_RH850_ABI__определена. -mgcc-abi-
Включает поддержку старой версии ABI V850 для GCC. С этой версией ABI применяются следующие правила:
- Целочисленные структуры и объединения возвращаются в регистре
r10. - Крупные структуры и объединения (больше 8 байт) передаются по ссылке.
- Функции выравниваются до границ 32 бит, если не оптимизируется размер.
- Параметр командной строки -m8byte-align не поддерживается.
- Параметр командной строки -mdisable-callt поддерживается, но не включён по умолчанию.
Когда эта версия ABI включена, препроцессорная константа
__V850_GCC_ABI__определена. - Целочисленные структуры и объединения возвращаются в регистре
-m8byte-align-mno-8byte-align-
Включает поддержку выравнивания типов
doubleиlong longна границах 8 байт. По умолчанию выравнивание всех объектов ограничено 4 байтами. Когда -m8byte-align активен, препроцессорная константа__V850_8BYTE_ALIGN__определена. -mbig-switch-
Генерировать код, подходящий для больших таблиц переключения. Используйте этот параметр только в том случае, если ассемблер/линкер жалуется на ветви вне диапазона в таблице переключения.
-mapp-regs-
Этот параметр вызывает использование r2 и r5 в коде, генерируемом компилятором. Это значение по умолчанию.
-mno-app-regs-
Этот параметр вызывает обработку r2 и r5 как фиксированных регистров.
Далее: Параметры VAX, Предыдущее: Параметры TILEPro, Наверх: Параметры подмоделей [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.5.0/gcc/V850-Options.html