GCC - The Complete Reference (537669), страница 88
Текст из файла (страница 88)
-8(В2 Аналогична опции -в1ш, но дополнительно передает компоновщику опции для размещения инициализированных данных, начиная с адреса Ох40000000, а инициализированных нулями данных — с адрчса Ох80000000. Опции для платФормы ЦЗОЧ .минке чп.,яг ннслчнь лгцинн шг)яегю дяи и)го о гж ГгеатгкктгГлтг оГгогГоссоГгоо Мгук -вадв-орбв)хе Позволяет передавать ассемблеру опции) -о при оптимизации.
Опция -о используется ассемблером для "запарадлелнвшгия" соседних инструкций, где это возможно. Опция -шавш-орс1ш?яе применяется по умолчанию, ее можно отключить опцией -шпо-авш-оре?ш?ге. -вЬгапсг)-со8?=питЬег увеличивает внутреннюю цену ветвленггй равную числу ппшъег. Большая цена означает, что компилятор во избежание ветвления будет генерировать большее количество инструкций. По умолчанию устаЧовлено значение 2.
Также см. опцию -шсопг?-ехес. -всопо'-ехесег?итЬег устанавливает максимальное количество условно выполняемых инструкций, генерируемых вместо ветвления. По умолчаиию установлено значение 4. Также см. опцию -вгьгапсь-сове. -вех?вев Компонует разделы .
вехе, .г?аеа, .Ьвв . вег1пдв, .гог?ага, . гог?аеа1 и .г?аеа1 во внешнюю память, которая начинается с адреса Ох80000000. -вех?вевогу Идентична опции -шехешеш. -во)тсср Компонует раздел . сехс в текстовый Раздел внутренней области памяти (оп-с)г)р гпегпогу), начиная с адреса Ох40 0 00 0 0 О. Кроме того, разделы . г?аеа, . Ьв в, . всг?пдв, .гог?ага, .гог?аса1 и .г?аса1 компонуются в раздел данных внутренней области памяти (оп-сЫР шепюгу), начиная с адреса Ох20000000. Глава 21.
Машинно-зависимые опции компилятора 395 Опции для поддержки платформы НЗ/300 Ниже перечислены опции, определенные для реализаций Н8/300. -гпаЯ19п-300 При установке этой опции на платформах Н 8/3ООН и Н8/Я будут использоваться такие же правила выравнивания, как и для платформы Н8/300. По умолчанию выравнивание данных типа 1опд и 21оас на платформах Н8/ЗООН и Н8/8 производится по границе 4 байтов.
Установка опции -ша11дп-300 приводит к тому, что данные выравниваются по границе 2 байта. Опция не влияет на параметры платформы Н 8/300. Генерирует код для платформы НЗ/300Н, -)п1'п132 Генерирует данные типа 1пс как 32-битные значения. -гпге!ах При наличии возможности во время компоновки сокрашает отдельные адресные ссылки. Эта опция устанавливает опцию компоновщика -ке1ах. -1П5 Генерирует код для платформы Н8/8. -гп52600 Генерирует код для платформы Н8/82600. Эта опция должна использоваться совместно с опцией -гав. Опции для платформы НРРА Ниже перечислены опции, определенные для реализаций Н8/300.
-гпагсп=згсг11йесйиге Генерирует код для указанной архитектуры. Для параметра ах.с)зй сессике допустимы следующие значения: 1. О (для РА 1.0), 1. 1 (лля РЛ 1.1) и 2. О (для РА 2.0). Код, откомпилированный для более ранних архитектур, будет выполняться и на более поздних архитектурах, но не наоборот. Для определения требуемой архитектуры для конкретного компьютера изучите файл /ивк/11ЫвсЬеа.птотте1в в системе НР1)Х. -гпЬ19-5тлг)гсп Генерирует код, совместимый с большими таблицами переключений.
Эта опция используется только в случае, когда ассемблер или компоновщик выдает предупрежзение о наличии в таблице переключений ветвлений, адреса которых выхолят за пределы допустимого диапазона. 396 Часть Н1, Внутренняя структура и окружение -вй5аЫе-1ргея5 Запрещает любое использование специальных регистров для хранения чисел с плавающей точкой, Эта опция необходима для компиляции ядра, которое выполняет "ленивое" контекстное переключение регистров для чисел с плавающей точкой.
Если установить опцию -вкЖваЬ1е-Грхедв и попытаться выполнить операцию с числами с плавающей точкой, то компилятор выдаст ошибку. -ппй5аЫе 1пдех1пя Запрещает компилятору использовать режимы индексации адресов. Это позволяет избежать некоторых проблем, связанных с компиляцией в системе МАСН сгенерированного кода формата М1О. -в1а5~-1пйгес1-саИ5 Генерирует код, который предполагает, что вызовы не выходят за пределы допустимых областей. В этом случае непрямые вызовы в коде, вырабатываемом компилятором, будут выполняться быстрее.
Опция -шхавс-йпЫхесс-са11в не будет работать при использовании разделяемых библиотек или вложенных функций. -вяа5 Разрешает использовать только те директивы ассемблера, которые совместимы с ассемблером пав. -в1ивр-1п-де!ау Заполняет отложенные вызовы функций инструкциями безусловного перехода. При этом изменяется указатель возврата вызова этой функции, он становится адресом назначения условного перехода. -в1пйег-ор1 Разрешает оптимизационный проход для компоновщика НРЬХ. Эта опция исключает возможность использования отладки символов.
Кроме того, она вызывает сбой в компоновщиках НР13Х 8 и НР0Х 9, в результате которого компоновщики выдают неправильные сообщения об ошибках при компоновке некоторых программ. -в!опя-!Оад-51оге Генерирует последовательности загрузки и записи, состоящие из трех инструкций.
В некоторых случаях это требуется лля компоновщика НРУХ 10. Эта опция идентична опции +1с, которая применяется в компиляторах НР -впо"5расе-гея5 Генерирует код, в котором предполагается, что платформа, для которой выполняется компиляция, не имеет разделяющих регистров (трасс ге81зтегз). Глава 21. Машинно-зависимые опции компилятора 397 Это позволяет компилятору быстрее выполнять непрямые вызовы и использовать режимы не масштабированной индексной адресации. Такой код применяется для систем РА уровня "0" и системных ядер. -тра-г!5с-1-0 Идентична опции -тахсЬ=1. О.
-гора-г)5с-1-1 Идентична опции -гяахсЬ=1. 1. -пзра-пк-2-0 Идентична опции -швхоЬ=2. О. -трог1аЫе-гип1ппе Исггользуетсоглашеиие о вызовах, прешгоженное НРдля обеспечения переносимости кода на системы Е1.Е -1п5с!зес!и!е= $уре Применяет планировку кода в соответствии с ограничениями указанного типа машины. Для параметра еурв допустимы следующие значения; 700, 7100, 710 0Г С, 7200, 7300 и 8000. Длл определения опции планирования, требуемой для конкретного компьютера, изучите файл системы НР1)Х /ивх/11ЫвсЬеб.шобе1в. По умолчанию используется значение 8000.
-п35огк-г!Оа1 Генерирует код, содержащий вызовы функций библиотеки эмуляции операций иад числами с плавающей точкой. Для некоторых платформ Н РРА такие библиотеки недоступны. В обычных условиях используются средства компилятора С, но их невозможно подключить непосредственно при кросс-компиляции. Поэтому при выполнении кросс-компиляции необходимо точно указать соответствующие функции библиотек. Конфигурация компилятора 1грра1.
1-*-рхо обеспечивает полную программную поддержку операций с плавающей точкой. Опция -швосе-к1оае изменяет соглашение о вьшовах для объектных файлов, поэтому она должна использоваться только и случае компиляции всех модулей про~раммы. Используемые программой библиотеки также следует скомпилировать с укамнием этой опции. В этом случае с опцией -творе-81оас должна быть скомпилирована и библиотека 11Ьдсс. а, которая входит в состав компилятора ОСС.
Опции компилятора для платформы !А-б4 Ниже перечислены опции, определенные для архитектуры 1пге! 1А-64. -пзаи10-р!с Генерирует самоперемещающийся код, т,е, код с автоматически перемещаемой адресацией (ае1Г-ге1осагаЫе собе). Кроме топк применение этой опции устанавлнва- 398 Часть В1. Внутренняя структура и окружение ет опцию -тясопвеапе-др. Используется при компиляции кода для жестко проши- ваемых программ (программно-алпаратнык средств, йгщткаге).
-тЬ-йер Генерирует код, который обходит известные ошибки аппаратуры! гап1цгл В. -тЬ|9-епс!!ап Генерирует код для архитектуры, работающей с обратным порядком байтов. Эта опция по умолчанию применяется для системы ИРАХ. Также см. опцию -тв11сс1е-епк11ап. -тсопйап1-Яр Генерирует код, который использует единственное постоянное значение регистра глобального указателя. Опция используется лри компиляции ядра. Также см. опцию -шапсс-р1с. -тс!твгагй2-аяп Генерирует код ассемблера для построчной отладки в формате РЮАВРТ2. Эта опция может быть очень полезной, кода не используется ассемблер 0)Ч1).
Отключить действие опции -пктттакйся-авто можно с помощью опции -впо-бмакйся-авв. -тУхе6-гапде=гапде Генерирует код, который работает с указанным в поле капде диапазоном регистров, как с фиксированными регистрами. Диапазон регистров задается адресами двух регистров, начального и конечного, с дефисом между ними.
Кроме того, можно указывать одновременно несколько диапазонов регистров, разделяя их запятыми. Фиксированными регистрами считаются те, которые не могут использоваться блоком распределения регистров. Опция -втй1хеб-калде используется при компиляции кода ядра. тяпо-ав По этой опции компилятор вырабатывает код, предназначенный для ассемблера 0)ЧР. Опция -твдпп-ав установлена ло умолчанию.
Ее действие можно отменить применением опции -впо-дпи-ав. -тяпы-Ы Генерирует код, предназначенный для компоновки программой-компоновщиком О!Ч Б. Опция -втдпи-1б установлена по умолчанию. Ее действие можно отменить опцией -впс-дпн-16. -т!и!!пе-йтгЫе-тах-тЬгои9Ьри1 По этой опции компилятор вырабатывает код для выполнения раздельной подстановки (1пйле б|тчЫез) с использованием алгоритма максимальной пропускной способности.
Также см. опцию -вт1п11пе-б1тг1бе-тя1п-1асепсу. глава й1. машинно-зависимые опции компилятора 399 -пт!пЯ!пе-сИЬИе-пттп-(а~епсу Генерирует код для выполнения раздельной подстановки (!п!ше т))тчибез) с использованием алгоритма минимальной задержки Также см. опцию -в1п11пе-бьмЫевах-спгопдприе.