3.17.56 Опции Xtensa
Эти опции поддерживаются для целей Xtensa:
-mconst16-mno-const16-
Включить или отключить использование инструкций
CONST16для загрузки константных значений. ИнструкцияCONST16в настоящее время не является стандартной опцией Tensilica. При включении инструкцииCONST16всегда используются вместо стандартных инструкцийL32R. Использование инструкцийCONST16включено по умолчанию, только если инструкцияL32Rнедоступна. -mfused-madd-mno-fused-madd-
Включить или отключить использование объединенных инструкций умножения/сложения и умножения/вычитания в варианте с плавающей точкой. Это не имеет эффекта, если опция с плавающей точкой также не включена. Отключение объединенных инструкций умножения/сложения и умножения/вычитания заставляет компилятор использовать отдельные инструкции для операций умножения и сложения/вычитания. Это может быть желательно в некоторых случаях, когда требуются строго совместимые с IEEE 754 результаты: объединенные инструкции умножения/сложения/вычитания не округляют промежуточный результат, тем самым производя результаты с *большим* количеством битов точности, чем указано в стандарте IEEE. Отключение объединенных инструкций умножения/сложения/вычитания также гарантирует, что вывод программы не зависит от способности компилятора объединять операции умножения и сложения/вычитания.
-mserialize-volatile-mno-serialize-volatile-
При включении этой опции GCC вставляет инструкции
MEMWперед ссылками на памятьvolatileдля обеспечения последовательной согласованности. По умолчанию используется -mserialize-volatile. Используйте -mno-serialize-volatile, чтобы исключить инструкцииMEMW. -mforce-no-pic-
Для целей, таких как GNU/Linux, где весь код Xtensa в режиме пользователя должен быть кодом с независимой позицией (PIC), эта опция отключает PIC для компиляции кода ядра.
-mtext-section-literals-mno-text-section-literals-
Эти опции управляют обработкой пулов литералов. По умолчанию используется -mno-text-section-literals, который помещает литералы в отдельный раздел в выходном файле. Это позволяет поместить пул литералов в ОЗУ/ПЗУ данных, а также позволяет компоновщику объединить пулы литералов из отдельных объектных файлов, чтобы удалить избыточные литералы и улучшить размер кода. С помощью -mtext-section-literals литералы вставляются в текстовый раздел, чтобы сохранить их как можно ближе к их ссылкам. Это может быть необходимо для больших файлов ассемблера.
-mtarget-align-mno-target-align-
При включении этой опции GCC указывает ассемблеру автоматически выравнивать инструкции для уменьшения накладных расходов на ветвление за счет некоторой плотности кода. Ассемблер пытается расширить инструкции плотности для выравнивания целей ветвления и инструкций, следующих за инструкциями вызова. Если нет достаточного количества предыдущих инструкций безопасной плотности для выравнивания цели, расширение не выполняется. По умолчанию используется -mtarget-align. Эти опции не влияют на обработку автоматически выравниваемых инструкций, таких как
LOOP, которые ассемблер всегда выравнивает, либо расширяя инструкции плотности, либо вставляя инструкции NOP. -mlongcalls-mno-longcalls-
При включении этой опции GCC указывает ассемблеру на перевод прямых вызовов в косвенные вызовы, если он не может определить, что целевой объект прямого вызова находится в диапазоне, разрешенном инструкцией вызова. Этот перевод, как правило, выполняется для вызовов функций в других исходных файлах. В частности, ассемблер переводит прямую инструкцию
CALLвL32R, за которой следует инструкцияCALLX. По умолчанию используется -mno-longcalls. Эта опция должна использоваться в программах, где целевой объект вызова может потенциально находиться вне диапазона. Эта опция реализована в ассемблере, а не в компиляторе, поэтому генерируемый GCC код ассемблера по-прежнему показывает прямые инструкции вызова — посмотрите на дизассемблированный объектный код, чтобы увидеть фактические инструкции. Обратите внимание, что ассемблер использует косвенный вызов для каждого межфайлового вызова, а не только для тех, которые действительно находятся вне диапазона.
Далее: Опции zSeries, Предыдущее: Опции Xstormy16, Вверх: Опции подмоделей [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.5.0/gcc/Xtensa-Options.html