Spec-Zone.ru › GCC 5

3.17.38 Параметры RX

Эти параметры командной строки определены для целей RX:

-m64bit-doubles
-m32bit-doubles

Сделать тип данных double 64-битовым (-m64bit-doubles) или 32-битовым (-m32bit-doubles) размером. По умолчанию используется -m32bit-doubles. Примечание Аппаратное обеспечение плавающей точки RX работает только с 32-битными значениями, поэтому по умолчанию используется -m32bit-doubles.

-fpu
-nofpu

Включает (-fpu) или отключает (-nofpu) использование аппаратного обеспечения плавающей точки RX. По умолчанию включено для серии RX600 и отключено для серии RX200.

Однако инструкции плавающей точки генерируются только для 32-битных значений с плавающей точкой, поэтому аппаратное обеспечение FPU не используется для двойных значений, если используется параметр -m64bit-doubles.

Примечание Если параметр -fpu включен, то -funsafe-math-optimizations также автоматически включается. Это связано с тем, что инструкции FPU RX сами по себе небезопасны.

-mcpu=name

Выбирает тип ЦП RX, на который будет нацелена компиляция. В настоящее время поддерживаются три типа: универсальные аппаратные средства серии ‘RX600’ и ‘RX200’, а также конкретный ЦП ‘RX610’. По умолчанию используется ‘RX600’.

Единственное различие между ‘RX600’ и ‘RX610’ заключается в том, что ‘RX610’ не поддерживает инструкцию MVTIPL.

Серия ‘RX200’ не имеет блока аппаратной плавающей точки, поэтому по умолчанию включен параметр -nofpu при выборе этого типа.

-mbig-endian-data
-mlittle-endian-data

Данные (но не код) хранятся в формате big-endian. По умолчанию используется -mlittle-endian-data, то есть данные хранятся в формате little-endian.

-msmall-data-limit=N

Указывает максимальный размер в байтах глобальных и статических переменных, которые могут быть помещены в область малых данных. Использование области малых данных может привести к более компактному и быстрому коду, но размер области ограничен, и программист должен убедиться, что область не переполняется. Кроме того, при использовании области малых данных один из регистров RX (обычно r13) зарезервирован для использования, указывающего на эту область, поэтому он больше недоступен для использования компилятором. Это может привести к более медленному и/или большему коду, если переменные будут помещаться в стек вместо хранения в этом регистре.

Обратите внимание, что общие переменные (переменные, которые не были инициализированы) и константы не помещаются в область малых данных, поскольку они назначаются другим секциям в исполняемом файле.

Значение по умолчанию равно нулю, что отключает эту функцию. Обратите внимание, что эта функция по умолчанию не включена при более высоких уровнях оптимизации (-O2 и т. д.) из-за потенциально негативного влияния на зарезервированный регистр. Программист должен экспериментировать и выяснить, полезна ли эта функция для его программы. См. описание параметра -mpid для описания того, как выбирается фактический регистр для хранения указателя на область малых данных.

-msim
-mno-sim

Использовать симуляторный запуск. По умолчанию используется специфичная для платы среда выполнения libgloss.

-mas100-syntax
-mno-as100-syntax

При генерации выходных данных ассемблера используется синтаксис, совместимый с ассемблером Renesas AS100. Этот синтаксис также может обрабатываться ассемблером GAS, но он имеет некоторые ограничения, поэтому по умолчанию он не генерируется.

-mmax-constant-size=N

Указывает максимальный размер в байтах константы, которая может быть использована в качестве операнда в инструкции RX. Хотя набор инструкций RX позволяет использовать константы длиной до 4 байт в инструкциях, более длинное значение приводит к более длинной инструкции. Поэтому в некоторых случаях может быть полезно ограничить размер констант, используемых в инструкциях. Слишком большие константы вместо этого помещаются в пул констант и ссылаются через косвенную адресацию регистра.

Значение N может быть от 0 до 4. Значение 0 (по умолчанию) или 4 означает, что константы любого размера разрешены.

-mrelax

Включить релаксацию линковщика. Релаксация линковщика — это процесс, в ходе которого линковщик пытается уменьшить размер программы, найдя более короткие версии различных инструкций. Отключено по умолчанию.

-mint-register=N

Укажите количество регистров, которые нужно зарезервировать для функций быстрых обработчиков прерываний. Значение N может быть от 0 до 4. Значение 1 означает, что регистр r13 зарезервирован для исключительного использования быстрых обработчиков прерываний. Значение 2 резервирует r13 и r12. Значение 3 резервирует r13, r12 и r11, а значение 4 резервирует r13 до r10. Значение 0 (по умолчанию) не резервирует регистры.

-msave-acc-in-interrupts

Указывает, что функции обработчиков прерываний должны сохранять регистр аккумулятора. Это необходимо только в том случае, если обычный код может использовать регистр аккумулятора, например, потому что он выполняет 64-битные умножения. По умолчанию регистр аккумулятора игнорируется, так как это делает обработчики прерываний быстрее.

-mpid
-mno-pid

Включает генерацию независимых от позиции данных. При включении любой доступ к константным данным выполняется с помощью смещения от базового адреса, хранящегося в регистре. Это позволяет определить расположение константных данных во время выполнения, без необходимости перемещения исполняемого файла, что выгодно для встроенных приложений с ограниченным объёмом памяти. Данные, которые могут быть изменены, не затрагиваются этим параметром.

Обратите внимание, что использование этой функции резервирует регистр, обычно r13, для базового адреса константных данных. Это может привести к более медленному и/или большему коду, особенно в сложных функциях.

Фактический регистр, выбранный для хранения базового адреса константных данных, зависит от того, включены ли параметры командной строки -msmall-data-limit и/или -mint-register. Регистры выделяется начиная с r13, по убыванию, сначала удовлетворяя требованиям -mint-register, затем -mpid, а затем -msmall-data-limit. Таким образом, возможно, что регистр области малых данных будет r8, если оба -mint-register=4 и -mpid указаны в командной строке.

По умолчанию эта функция не включена. По умолчанию можно вернуться, используя параметр командной строки -mno-pid.

-mno-warn-multiple-fast-interrupts
-mwarn-multiple-fast-interrupts

Препятствует GCC от выдачи сообщения об ошибке, если он обнаруживает более одного быстрого обработчика прерываний при компиляции файла. По умолчанию выдаётся сообщение об ошибке для каждого дополнительного быстрого обработчика прерываний, так как RX поддерживает только одно такое прерывание.

Примечание: Общий параметр GCC -ffixed-reg имеет особое значение для порта RX, когда используется с атрибутом функции interrupt. Этот атрибут указывает на функцию, предназначенную для обработки быстрых прерываний. GCC гарантирует, что он использует только регистры r10, r11, r12 и/или r13, и только при условии, что обычное использование соответствующих регистров было ограничено параметрами командной строки -ffixed-reg или -mint-register.

Далее: Параметры S/390 и zSeries, Предыдущее: Параметры RS/6000 и PowerPC, Выше: Параметры подмоделей [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.5.0/gcc/RX-Options.html

Spec-Zone.ru

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