3.17.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для архитектур v850e, v850e1, v850e2, v850e2v3 и v850e3v5.Этот параметр включён по умолчанию, когда используется ABI RH850 (см.
-mrh850-abi), и выключен по умолчанию при использовании ABI GCC. Если генерируются инструкцииCALLT, то препроцессор C определит символ__V850_CALLT__. -
-mrelax-mno-relax - Передать (или не передать) параметр командной строки
-mrelaxассемблеру. -
-mlong-jumps-mno-long-jumps - Отключить (или включить снова) генерацию инструкций перехода по смещению относительно PC.
-
-msoft-float-mhard-float - Отключить (или включить снова) генерацию инструкций для аппаратной точки с плавающей запятой. Этот параметр имеет значение только при целевой архитектуре «
V850E2V3» или выше. Если генерируются инструкции для аппаратной точки с плавающей запятой, то препроцессор C определит символ__FPU_OK__, в противном случае — символ__NO_FPU__. -mloop- Включает использование инструкции LOOP для e3v5. Использование этой инструкции по умолчанию не включено при выборе архитектуры e3v5, потому что её использование всё ещё экспериментальное.
-
-mrh850-abi-mghs - Включает поддержку версии V850 ABI для RH850. Это значение по умолчанию. С этой версией ABI действуют следующие правила:
- Целочисленные структуры и объединения возвращаются через указатель на память, а не через регистр.
- Большие структуры и объединения (размером более 8 байт) передаются по значению.
- Функции выравниваются по границам 16 бит.
- Поддерживается параметр командной строки
-m8byte-align. - Параметр командной строки
-mdisable-calltвключён по умолчанию. Параметр командной строки-mno-disable-calltне поддерживается.
При включении этой версии ABI препроцессор C определяет символ
__V850_RH850_ABI__. -mgcc-abi- Включает поддержку старой версии ABI V850 для GCC. С этой версией ABI действуют следующие правила:
- Целочисленные структуры и объединения возвращаются в регистре
r10. - Большие структуры и объединения (размером более 8 байт) передаются по ссылке.
- Функции выравниваются по границам 32 бит, если оптимизация не направлена на уменьшение размера.
- Параметр командной строки
-m8byte-alignне поддерживается. - Параметр командной строки
-mdisable-calltподдерживается, но не включён по умолчанию.
При включении этой версии ABI препроцессор C определяет символ
__V850_GCC_ABI__. - Целочисленные структуры и объединения возвращаются в регистре
-
-m8byte-align-mno-8byte-align - Включает поддержку типов
doublesиlong longдля выравнивания на границах 8 байт. По умолчанию выравнивание всех объектов ограничено 4 байтами. Когда-m8byte-alignвключено, препроцессор C определит символ__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-4.9.4/gcc/V850-Options.html