Spec-Zone.ru › GCC 4

3.17.39 Параметры 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 также автоматически включается. Это связано с тем, что инструкции RX FPU сами по себе небезопасны.

-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
Использовать симулятор runtime. По умолчанию используется runtime 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.

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

Spec-Zone.ru

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