3.19.49 Параметры 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», на которую указывает регистр
ep. Область данных «tiny» может содержать до 256 байт в общей сложности (128 байт для байтовых ссылок). -
-msda=n -
Разместить статические или глобальные переменные, размер которых не превышает n байт, в область данных «small», на которую указывает регистр
gp. Область данных «small» может содержать до 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-
Включает поддержку ABI V850 версии 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 как фиксированные.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/V850-Options.html