3.19.10 Параметры C-SKY
GCC поддерживает эти параметры при компиляции для процессоров C-SKY V2.
-
-march=arch -
Указывает архитектуру целевого C-SKY. Допустимые значения для arch это: ‘ck801’, ‘ck802’, ‘ck803’, ‘ck807’ и ‘ck810’. По умолчанию значение ‘ck810’.
-
-mcpu=cpu -
Указывает целевой процессор C-SKY. Допустимые значения для cpu это: ‘ck801’, ‘ck801t’, ‘ck802’, ‘ck802t’, ‘ck802j’, ‘ck803’, ‘ck803h’, ‘ck803t’, ‘ck803ht’, ‘ck803f’, ‘ck803fh’, ‘ck803e’, ‘ck803eh’, ‘ck803et’, ‘ck803eht’, ‘ck803ef’, ‘ck803efh’, ‘ck803ft’, ‘ck803eft’, ‘ck803efht’, ‘ck803r1’, ‘ck803hr1’, ‘ck803tr1’, ‘ck803htr1’, ‘ck803fr1’, ‘ck803fhr1’, ‘ck803er1’, ‘ck803ehr1’, ‘ck803etr1’, ‘ck803ehtr1’, ‘ck803efr1’, ‘ck803efhr1’, ‘ck803ftr1’, ‘ck803eftr1’, ‘ck803efhtr1’, ‘ck803s’, ‘ck803st’, ‘ck803se’, ‘ck803sf’, ‘ck803sef’, ‘ck803seft’, ‘ck807e’, ‘ck807ef’, ‘ck807’, ‘ck807f’, ‘ck810e’, ‘ck810et’, ‘ck810ef’, ‘ck810eft’, ‘ck810’, ‘ck810v’, ‘ck810f’, ‘ck810t’, ‘ck810fv’, ‘ck810tv’, ‘ck810ft’ и ‘ck810ftv’.
-
-mbig-endian -EB-mlittle-endian-EL-
Выберите код с большим или малым порядком байтов. По умолчанию используется малый порядок байтов.
-
-mfloat-abi=name -
Указывает используемый ABI для операций с плавающей точкой. Разрешенные значения: ‘soft’, ‘softfp’ и ‘hard’.
Указание ‘soft’ заставляет GCC генерировать вызовы библиотеки для операций с плавающей точкой. ‘softfp’ позволяет генерировать код, использующий аппаратные инструкции для операций с плавающей точкой, но всё ещё использует соглашения о вызовах soft-float. ‘hard’ позволяет генерировать инструкции для операций с плавающей точкой и использует соглашения о вызовах, специфичные для FPU.
Значение по умолчанию зависит от конкретной конфигурации целевой системы. Обратите внимание, что ABI для hard-float и soft-float не совместимы с точки зрения компоновки; необходимо скомпилировать всю программу с одинаковым ABI и скомпоновать с совместимым набором библиотек.
-
-mhard-float -msoft-float-
Выберите аппаратную или программную реализацию операций с плавающей точкой. По умолчанию используется программная реализация (soft float).
-
-mdouble-float -mno-double-float-
Когда активен параметр -mhard-float, включить генерацию инструкций с двойной точностью для плавающей точки. Это значение по умолчанию, за исключением компиляции для CK803.
-
-mfdivdu -mno-fdivdu-
Когда активен параметр -mhard-float, включить генерацию инструкций
frecipd,fsqrtd, иfdivd. Это значение по умолчанию, за исключением компиляции для CK803. -
-mfpu=fpu -
Выбрать процессор для операций с плавающей точкой. Этот параметр может использоваться только с параметром -mhard-float. Значения для fpu это ‘fpv2_sf’ (эквивалентно ‘-mno-double-float -mno-fdivdu’), ‘fpv2’ (‘-mdouble-float -mno-divdu’), и ‘fpv2_divd’ (‘-mdouble-float -mdivdu’).
-
-melrw -mno-elrw-
Включить расширенную инструкцию
lrw. По умолчанию включено для CK801 и выключено в противном случае. -
-mistack -mno-istack-
Включить инструкции стека прерываний; по умолчанию выключено.
Параметр -mistack необходим для обработки атрибутов функций
interruptиisr(см. Атрибуты функций C-SKY). -
-mmp -
Включить инструкции для многопроцессорных систем; по умолчанию выключено.
-
-mcp -
Включить инструкции сопроцессора; по умолчанию выключено.
-
-mcache -
Включить инструкции сопроцессора; по умолчанию выключено.
-
-msecurity -
Включить инструкции безопасности C-SKY; по умолчанию выключено.
-
-mtrust -
Включить инструкции доверия C-SKY; по умолчанию выключено.
-
-mdsp -medsp-mvdsp-
Соответственно, включить инструкции C-SKY DSP, Улучшенного DSP или Vector DSP. Все эти параметры по умолчанию выключены.
-
-mdiv -mno-div-
Генерировать инструкции деления. По умолчанию выключено.
-
-msmart -mno-smart-
Генерировать код для режима Smart, используя только регистры с номерами от 0 до 7 для возможности использования 16-битных инструкций. Этот параметр игнорируется для CK801, где такое поведение необходимо, и по умолчанию включен для CK802. Для других целей по умолчанию выключен.
-
-mhigh-registers -mno-high-registers-
Генерировать код, используя высокие регистры с номерами от 16 до 31. Этот параметр не поддерживается для CK801, CK802 или CK803, и включен по умолчанию для других процессоров.
-
-manchor -mno-anchor-
Генерировать код с использованием адресов глобальных символов-якорей.
-
-mpushpop -mno-pushpop-
Генерировать код, используя инструкции
pushиpop. По умолчанию включено. -
-mmultiple-stld -mstm-mno-multiple-stld-mno-stm-
Генерировать код, используя инструкции
stmиldm. Этот параметр не поддерживается для CK801, но включен по умолчанию для других процессоров. -
-mconstpool -mno-constpool-
Создавать пулы констант в компиляторе вместо переноса в ассемблер. Этот параметр является значением по умолчанию и необходим для корректной генерации кода для CK801 и CK802, и является необязательным для других процессоров.
-
-mstack-size -mno-stack-size-
Вставить директивы
.stack_sizeдля каждой функции в выходном ассемблерном коде. По умолчанию выключено. -
-mccrt -mno-ccrt-
Генерировать код для времени выполнения компилятора C-SKY вместо libgcc. По умолчанию выключено.
-
-mbranch-cost=n -
Установить затраты на ветвления приблизительно к
nинструкциям. Значение по умолчанию 1. -
-msched-prolog -mno-sched-prolog-
Разрешить планирование пролога и эпилога функции. Использование этого параметра может привести к коду, не соответствующему требованиям пролога ABI C-SKY V2, и который нельзя отладить или отследить. По умолчанию выключено.
-
-msim -
Компонует библиотеку libsemi.a, которая совместима с симулятором. Применимо только к компилятору ELF.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/C_002dSKY-Options.html