GCC - The Complete Reference (537669), страница 85
Текст из файла (страница 85)
опцию -ата1рзза-ав. -В1ЕЕЕ Генерирует код, который полностью совместим с требованиями! ЕЕЕ, за исключением поддержки флага 1пехасо-81ад. Архитектура аппаратного обеспечения лля работы с числами с плаваюшей точкой процессора А!рпа оптимизирована для максимальной производительности и, по большей части, соответствует стандартам 1ЕЕЕ для арифметических операций с плавающей точкой. Тем не менее, для обеспечения полного соответствия требуется некоторая программная поддержка. При установленной опции -ат1еее при компиляции выполняется макрос препроцессора гжжж жр.
В этом случае получаемый код будет менее эффективен, но будет поддерживать денормализованные числа и такие специальные значения стандарта 1ЕЕЕ, как жаж (")Чот-А-1чоптЬег" — "не число") и положительная и отрицательная бесконечность. В других компиляторах для процессоров А!рпа эта опция имеет вид -1еее мьгп по 1пехасг. Также см. опцию -южеее-мьсп-жпехасг. -в! еее-соп1огваут1 Генерирует код, полностью совместимый со стандартом 1ЕЕЕ. Эта опция может использоваться только в случае, когда установлена опция -погар-ргесжвжоп=1 и одна из опций -тайр-агар-тассе=ви ИЛИ -тайр-сгар-таойе=вп1. Единственное назначение опции -аг1еее-сопбогатапг — вносить строку .ей1ад48 в пролог (заголовок файла) генерируемого компилятором ассемблерного файла. В ВЕС (Лч!Х это приводит к тому, что к программе будет подключена математическая библиотека, совместимая с! ЕЕЕ.
-в!еее-тдтй-1пехас1 ДЕйСтВуЕт аиаЛО~ИЧНО ОПЦИИ -та1ЕЕЕ-СОПВОГГчааг, НО За ОДНИМ ИСКЛЮЧЕНИЕМ: в генерируемом коде устанавливается флаг 1пехасг-81ад. Эта опция приводит к тому, что реализация математических операций в генерируемом коде полностью соответствует стандарту 1Е ЕЕ. Кроме того, помимо макроса предпроцессора хжжж РР, выполняется и макрос хжжж жр жхдст. В некоторых реализациях процессоров А!рЬа полученный при этом код может выполняться гораздо медленнее, чем код, генерируемый по умолчанию.
Поскольку флаг 1пехасе-б1ад используется лишь незначительной частью кода, опцию -та1еее-м1СЬ-1пехасс В большинстве случаев желательно не устанаа- Глава 21. Машинно-зависимые опции компилятора 38 1 лнвать. В других компиляторах для процессоров А)р)за эта опция имеет вид -1еее мвГЬ дпехасс. -т)а Г9Е-(гата При установленной этой опции область данных ограничена объемом, немного меньшим 2-х Гбайт. Программы, которым при выполнении необходимо более 2 Гбайт памяти для размещения данных, должны использовать функцию ква11ос () или авар() для выделения памяти под данные из "кучи" ()зеар) вместо использования сегмента данных программы.
Эта опция установлена по умолчанию. При генерации кода для совместно используемых библиотек опция -йрйс устанавливает опцию -швзаа11-бага, а опция -5Р1с — -в1агде-бага. -ттах Указывает, что компилятор должен генерировать код, использующий необязательный набор инструкций МАХ. По умолчанию применяется набор инструкций, указываемый с помощью опции -вери. Использование набора инструкций НХ можно спсгючить опцией -вшо-51х. Также см. опции -гасйх, -юЬзкх и -гвг1х. -ттетогу-1а1епсу=Вигами Устанавливает время ожидания, которое планировщик должен принимать при обращении к используемой приложением памяти. Время ожидания в значительной степени зависит от модели доступа к памяти, применяемой в приложении, и размера внешней кзш-памяти компьютера.
Продолжительность может указываться в виде десятичного числа, которое соотмтствует количеству циклов процессора. Кроме того, ее можно задавать в формате Ь1, Ъ2, ЪЗ или гаайп. Компилятор содержит оценки количества циклов процессора дзя стандартного аппаратного обеспечения типа ача и еу5 для кэшей уровней 1, 2 и 3 (которые также называют Г)сас)зе, аеас)ге и Всасйе соответственно), а также для основной памяти. Обратите внимание, что параметр ъз допустим только для типа 575. -т5таП-с)а1а При установленной опции -шехр11сйг-ге1осв доступ к статическим данным осуществляется с помощью перемещений др-ге1аг1хе, Опция -гввша11-баса устанавливает, что объекты длиной 8 байт н менее должны помещаться в область ванных малой длины (разделы . вбага и . вЬвв), а доступ к ним будет осуществляться с помощью !6-битных перемещений, основанных на регистре ддр.
Это ограничивает объем области коротких данных 64 Кбайтами, но позволяет осуществлять прямой доступ к переменным одной инструкцией. При генерации кода для совместно используемых библиотек опция -йр1с устанавливает опцию -говша11-баса, а опция -ЕРХС вЂ” -ш1агде-баса. -т5ой-т)оаэи Указывает, что компилятор не должен использовать аппаратные инструкции для яыполнения операций наа числами с плавающей точкой. Для выполнения таких хействий будут применяться функции библиотеки 11Ьдсс. а. Глава 21. машинно-зависимые опции компилятора 383 Опции для процессоров АКС Для процессоров АКС определены следующие опции.
-тсри=сри Генерирует код для указанного процессора АКС. Поддержка различных вариантов процессоров зависит от конфигурации компилятора. Тем не менее, для всех процессоров АКС поддерживается опция -всри=иаве, которая применяется по умолчанию. -тйасавиеМоп Помешает данные в указанный раздел кода. Выбранный в этой опции раздел можно замещать в коде указанием значения атрибута весезоп. Также см. опции -всехс и -вкостаса. -ттап91е-сри Присоединяет имя процессора ко всем открытым (рцбйс) именам программных символов.
В мультипроцессорных системах может существовать множество процессоров АКС с отличающимися наборами инструкций и регистров. Устанавливаемый этой опцией флаг предотвращает компоновку кодов, скомпилированных для разных процессоров. Никаких средств для одновременной поддержки различных, даже почти идентичных, процессоров не предусмотрено, -тгос(а2а=яес2уоп Помещает данные, доступные только для чтения, в указанный раздел кода. Выбранный в этой опции раздел можно изменить в коде значением атрибута вессхоп. Также см. опции -всехс и -вс(аса. -т1ех1=лесйоп Помещает функции в указанный раздел кода. Выбранный в этой опции раздел можно изменить в коде присвоением другого значения атрибуту яессзоп. Также см.
опции -вс(аса и -вкостаса. Генерирует код для режима работы с прямым порядком байтов (йп(е епсйап). Эта опция установлена по умолчанию. -ЕВ Генерирует код для режима работы с обратным порядком байтов (Ь1ц епгйап). Опции для процессоров АКМ Ниже перечислены опции, определенные для архитектур АКМ (Адчапсед К!ВС Масп1пез). 3 84 Часть )Н. Внутренняя структура и окружение -гпаЬог1-оп-поге1игп В конце функции похекихп генерирует вызов функции аЬохе ( ) . Вызов располагается таким образом, что он будет выполнен при попытке выхода из функции. -гпа!!9пгпепМгаря Генерирует код, который не будет вызывать прерываний, даже если прерывания разрешены определением вгяравнивания М М !). Вырабатываемый код представляет собой последовательность обращений к байтам вместо прямого доступа к полусловам. Эта опция игнорируется при компиляции кода для архитектуры АВМ версии 4 или выше, поскольку такие процессоры позволяют осуществлять прямой доступ к полусловам.
Установленная опция -ашо-а11дпгаепе-ехарв приводит к генерации кода, который предполагает, что блок управления памятью ММ!3 не будет вызывать прерывания при обращениях с нарушением выравнивания. Опция формирует более эффективный код в случае, когда предназначаемый процессор не имеет набора операций с полусловами. Обратите внимание, что зту опцию нельзя использовать для доступа к объектам, не имеющим выравнивания к границе слов„поскольку процессор в этом случае считает из памяти только один объект длиной 32 бита, выровненный по границе слова.
По умолчанию применяется опция -апо-а11дшвепк-ехарв, которая приводит к генерации более эффективного кода в случае недоступности аппаратных инструкций для работы с полусловами. В архитектурах АВМ до версии АВМч4 не было предусмотрено инструкций для доступа объектам в памяти длиной в половину машинного слова.