3.17.25 Опции MeP
-mabsdiff- Включает инструкцию
abs, которая вычисляет абсолютную разницу между двумя регистрами. -mall-opts- Включает все необязательные инструкции — среднее арифметическое, умножение, деление, битовые операции, поиск старшего нуля, абсолютную разницу, min/max, обрезку и насыщение.
-maverage- Включает инструкцию
ave, которая вычисляет среднее арифметическое двух регистров. -
-mbased=n - Переменные размером n байт или меньше по умолчанию помещаются в раздел
.based. Базисные переменные используют регистр$tpв качестве базового регистра, а раздел.basedимеет ограничение в 128 байт. -mbitops- Включает инструкции для битовых операций — проверку бита (
btstm), установку (bsetm), очистку (bclrm), инверсию (bnotm) и проверку с установкой (tas). -
-mc=name - Выбирает раздел, в котором будут размещены константные данные. name может быть
tiny,near, илиfar. -mclip- Включает инструкцию
clip. Обратите внимание, что-mclipне полезна, если вы также не предоставите-mminmax. -
-mconfig=name - Выбирает одну из встроенных конфигураций ядра. Каждый чип MeP содержит один или несколько модулей; каждый модуль имеет центральный процессор (CPU) и различные сопроцессоры, необязательные инструкции и периферийные устройства. Инструмент
MeP-Integrator, не входящий в состав GCC, предоставляет эти конфигурации через этот параметр; использование этого параметра равносильно использованию всех соответствующих параметров командной строки. По умолчанию используется конфигурацияdefault. -mcop- Включает инструкции сопроцессора. По умолчанию это 32-битный сопроцессор. Обратите внимание, что сопроцессор обычно включается с помощью параметра
-mconfig=. -mcop32- Включает инструкции 32-битного сопроцессора.
-mcop64- Включает инструкции 64-битного сопроцессора.
-mivc2- Включает планирование IVC2. IVC2 — это 64-битный VLIW сопроцессор.
-mdc- Приводит к размещению константных переменных в разделе
.near. -mdiv- Включает инструкции
divиdivu. -meb- Генерирует код в формате big-endian.
-mel- Генерирует код в формате little-endian.
-mio-volatile- Указывает компилятору, что любая переменная, помеченная атрибутом
io, должна рассматриваться как переменная с volatile свойством. -ml- Приводит к тому, что переменные по умолчанию помещаются в раздел
.far. -mleadz- Включает инструкцию
leadz(поиск старшего нуля). -mm- Приводит к тому, что переменные по умолчанию помещаются в раздел
.near. -mminmax- Включает инструкции
minиmax. -mmult- Включает инструкции умножения и умножения-с-суммированием.
-mno-opts- Отключает все необязательные инструкции, включенные с помощью
-mall-opts. -mrepeat- Включает инструкции
repeatиerepeat, используемые для циклов с низкой накладными расходами. -ms- Приводит к тому, что все переменные по умолчанию помещаются в раздел
.tinyОбратите внимание, что этот раздел имеет ограничение в 65536 байт. Доступ к этим переменным осуществляется с использованием базового регистра%gp. -msatur- Включает инструкции насыщения. Обратите внимание, что компилятор в настоящее время не генерирует их самостоятельно, но этот параметр включён для совместимости с другими инструментами, такими как
as. -msdram- Подключает среду выполнения, основанную на SDRAM, вместо среды выполнения по умолчанию, основанной на ROM.
-msim- Подключает библиотеки среды выполнения симулятора.
-msimnovec- Подключает библиотеки среды выполнения симулятора, исключая встроенную поддержку векторов и таблиц сброса и исключений.
-mtf- Приводит к тому, что все функции по умолчанию помещаются в раздел
.farБез этого параметра функции по умолчанию помещаются в раздел.near. -
-mtiny=n - Переменные размером n байт или меньше выделяются в раздел
.tinyЭти переменные используют базовый регистр$gp. По умолчанию этот параметр равен 4, но обратите внимание, что раздел.tinyимеет ограничение в 65536 байт.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/MeP-Options.html