3.19.11 Параметры 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-
Выбор кода с порядком байтов big-endian или little-endian. По умолчанию используется little-endian.
-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-
Разрешить планирование последовательностей пролога и эпилога функций. Использование этого параметра может привести к коду, который не соответствует требованиям пролога C-SKY V2 ABI и который не может быть отлажен или прослежен назад. По умолчанию выключено.
-msim-
Компонует библиотеку libsemi.a, совместимую с симулятором. Применимо только к компилятору ELF.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/C-SKY-Options.html