3.20.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’ разрешает генерировать код с использованием аппаратных инструкций для операций с плавающей точкой, но при этом используются соглашения о вызовах для программной реализации операций с плавающей точкой. ‘hard’ разрешает генерировать инструкции для операций с плавающей точкой и использовать соглашения о вызовах, специфичные для FPU.
Значение по умолчанию зависит от конкретной конфигурации целевой платформы. Обратите внимание, что ABI с аппаратной и программной реализацией операций с плавающей точкой несовместимы при компоновке; необходимо компилировать всю программу с одним и тем же ABI и выполнять компоновку с совместимым набором библиотек.
-
-mhard-float -msoft-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, Enhanced DSP или Vector DSP. По умолчанию все эти параметры выключены.
-
-mdiv -mno-div-
Генерировать инструкции деления. По умолчанию параметр выключен.
-
-msmart -mno-smart-
Генерировать код для Smart Mode, используя только регистры с номерами 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-15.3.0/gcc/C_002dSKY-Options.html