Spec-Zone.ru › GCC 4

3.17.33 Параметры Nios II

Это параметры, определенные для процессора Altera Nios II.

-G num
Поместить глобальные и статические объекты, не превышающие num байт, в секции small data или BSS вместо обычных секций data или BSS. Значение по умолчанию для num равно 8.
-mgpopt
-mno-gpopt
Генерировать (не генерировать) GP-относительные обращения к объектам в секциях small data или BSS. Значение по умолчанию — -mgpopt, за исключением случаев, когда -fpic или -fPIC указано для генерации позиционно-независимого кода. Обратите внимание, что Nios II ABI не допускает GP-относительных обращений из общих библиотек.

Возможно, вам потребуется явно указать -mno-gpopt, когда вы собираете программы, содержащие большое количество small data, включая большие секции GOT data. В этом случае 16-битного смещения для GP-относительного адресования может быть недостаточно для доступа ко всей секции small data.

-mel
-meb
Генерировать код little-endian (по умолчанию) или big-endian (экспериментальный), соответственно.
-mbypass-cache
-mno-bypass-cache
Принудительно обходить кэш для всех инструкций загрузки и сохранения, используя варианты инструкций I/O. По умолчанию кэш не обходится.
-mno-cache-volatile
-mcache-volatile
Доступ к volatile памяти обходит кэш, используя варианты инструкций загрузки и сохранения I/O. По умолчанию кэш не обходится.
-mno-fast-sw-div
-mfast-sw-div
Не использовать табличный быстрый деление для малых чисел. По умолчанию используется быстрый деление при -O3 и выше.
-mno-hw-mul
-mhw-mul
-mno-hw-mulx
-mhw-mulx
-mno-hw-div
-mhw-div
Включить или отключить вывода mul, mulx и div семейств инструкций компилятором. По умолчанию выводить mul, и не выводить div и mulx.
-mcustom-insn=N
-mno-custom-insn
Каждый параметр -mcustom-insn=N включает использование пользовательской инструкции с кодированием N при генерации кода, использующего insn. Например, -mcustom-fadds=253 генерирует пользовательскую инструкцию 253 для операций сложения одноточного плавающей точки вместо стандартного поведения использования вызова библиотеки.

Поддерживаются следующие значения insn. За исключением случаев, о которых сказано отдельно, операции с плавающей точкой ожидают реализации с нормальной семантикой IEEE 754 и соответствуют непосредственно операторам C или эквивалентным встроенным функциям GCC (см. Другие встроенные функции).

Одноточная плавающая точка:

‘fadds’, ‘fsubs’, ‘fdivs’, ‘fmuls’
Бинарные арифметические операции.
‘fnegs’
Унарное отрицание.
‘fabss’
Унарное абсолютное значение.
‘fcmpeqs’, ‘fcmpges’, ‘fcmpgts’, ‘fcmples’, ‘fcmplts’, ‘fcmpnes’
Операции сравнения.
‘fmins’, ‘fmaxs’
Минимальное и максимальное значения с плавающей точкой. Эти инструкции генерируются только если -ffinite-math-only указано.
‘fsqrts’
Операция извлечения квадратного корня.
‘fcoss’, ‘fsins’, ‘ftans’, ‘fatans’, ‘fexps’, ‘flogs’
Тригонометрические и экспоненциальные функции с плавающей точкой. Эти инструкции генерируются только если -funsafe-math-optimizations также указано.

Двухточная плавающая точка:

‘faddd’, ‘fsubd’, ‘fdivd’, ‘fmuld’
Бинарные арифметические операции.
‘fnegd’
Унарное отрицание.
‘fabsd’
Унарное абсолютное значение.
‘fcmpeqd’, ‘fcmpged’, ‘fcmpgtd’, ‘fcmpled’, ‘fcmpltd’, ‘fcmpned’
Операции сравнения.
‘fmind’, ‘fmaxd’
Минимальное и максимальное значения с двойной плавающей точкой. Эти инструкции генерируются только если -ffinite-math-only указано.
‘fsqrtd’
Операция извлечения квадратного корня.
‘fcosd’, ‘fsind’, ‘ftand’, ‘fatand’, ‘fexpd’, ‘flogd’
Тригонометрические и экспоненциальные функции с двойной плавающей точкой. Эти инструкции генерируются только если -funsafe-math-optimizations также указано.

Преобразования:

‘fextsd’
Преобразование из однократной точности в двойную точность.
‘ftruncds’
Преобразование из двойной точности в однократную точность.
‘fixsi’, ‘fixsu’, ‘fixdi’, ‘fixdu’
Преобразование из плавающей точки в целые со знаком или без знака, с усечением к нулю.
‘floatis’, ‘floatus’, ‘floatid’, ‘floatud’
Преобразование из целых со знаком или без знака в типы с плавающей точкой.

Кроме того, все следующие инструкции передачи для внутренних регистров X и Y должны быть предоставлены для использования любых инструкций с двойной точностью с плавающей точкой. Пользовательские инструкции, принимающие два операнда с двойной точностью, ожидают первого операнда в 64-битном регистре X. Другой операнд (или только операнд унарной операции) передается пользовательской арифметической инструкции с наименее значащим полубайтом в исходном регистре src1 и наибольшим значащим полубайтом в src2. Пользовательская инструкция, возвращающая результат с двойной точностью, возвращает наибольший значащий 32-битный разряд в регистре назначения и другой полубайт в 32-битном регистре Y. GCC автоматически генерирует необходимые последовательности кода для записи регистра X и/или чтения регистра Y при использовании инструкций с двойной точностью с плавающей точкой.

‘fwrx’
Записать src1 в наименее значащий полубайт X и src2 в наибольший значащий полубайт X.
‘fwry’
Записать src1 в Y.
‘frdxhi’, ‘frdxlo’
Прочитать наибольший или наименьший (соответственно) значащий полубайт X и сохранить его в dest.
‘frdy’
Прочитать значение Y и сохранить его в dest.

Обратите внимание, что вы можете получить больший локальный контроль над генерацией пользовательских инструкций Nios II, используя атрибуты функций target("custom-insn=N") и target("no-custom-insn") (см. Атрибуты функций) или псевдокоманды (см. Псевдокоманды опций для функций).

-mcustom-fpu-cfg=name
Этот параметр включает предварительно определенный, именованный набор кодировок пользовательских инструкций (см. -mcustom-insn выше). В настоящее время определены следующие наборы:

-mcustom-fpu-cfg=60-1 эквивалентно:

-mcustom-fmuls=252 
-mcustom-fadds=253 
-mcustom-fsubs=254 
-fsingle-precision-constant

-mcustom-fpu-cfg=60-2 эквивалентно:

-mcustom-fmuls=252 
-mcustom-fadds=253 
-mcustom-fsubs=254 
-mcustom-fdivs=255 
-fsingle-precision-constant

-mcustom-fpu-cfg=72-3 эквивалентно:

-mcustom-floatus=243 
-mcustom-fixsi=244 
-mcustom-floatis=245 
-mcustom-fcmpgts=246 
-mcustom-fcmples=249 
-mcustom-fcmpeqs=250 
-mcustom-fcmpnes=251 
-mcustom-fmuls=252 
-mcustom-fadds=253 
-mcustom-fsubs=254 
-mcustom-fdivs=255 
-fsingle-precision-constant

Назначения пользовательских инструкций, заданные отдельными параметрами -mcustom-insn=, переопределяют те, что заданы -mcustom-fpu-cfg=, независимо от порядка параметров в командной строке.

Обратите внимание, что вы можете получить больший локальный контроль над выбором конфигурации FPU, используя атрибут функции target("custom-fpu-cfg=name") (см. Атрибуты функций) или псевдокоманду (см. Псевдокоманды опций для функций).

Эти дополнительные параметры ‘-m’ доступны для целевой системы Altera Nios II ELF (bare-metal):

-mhal
Связь с HAL BSP. Это подавляет связь с предоставленным GCC начальным и завершающим кодом C-runtime, и обычно используется в сочетании с -msys-crt0= для указания расположения альтернативного начального кода, предоставляемого HAL BSP.
-msmallc
Связь с ограниченной версией библиотеки C, -lsmallc, а не Newlib.
-msys-crt0=startfile
startfile — имя файла startfile (crt0), которое следует использовать при линковке. Этот параметр полезен только в сочетании с -mhal.
-msys-lib=systemlib
systemlib — имя библиотеки, предоставляющей низкоуровневые системные вызовы, необходимые для библиотеки C, например, read и write. Этот параметр обычно используется для связи с библиотекой, предоставленной HAL BSP.

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

Spec-Zone.ru

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