Spec-Zone.ru › GCC 4

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

Spec-Zone.ru

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