6.33.4 Атрибуты функций ARC
Эти атрибуты функций поддерживаются бэкендом ARC:
interrupt-
Используйте этот атрибут, чтобы указать, что указанная функция является обработчиком прерывания. Компилятор генерирует последовательности входа и выхода из функции, подходящие для использования в обработчике прерываний, при наличии этого атрибута.
В ARC вы должны указать тип прерывания, которое будет обрабатываться в параметре атрибута прерывания, как показано ниже:
void f () __attribute__ ((interrupt ("ilink1")));Допустимые значения для этого параметра:
ilink1иilink2. long_callmedium_callshort_call-
Эти атрибуты указывают, как вызывается конкретная функция. Эти атрибуты переопределяют командно-строчные переключатели -mlong-calls и -mmedium-calls (см. Параметры ARC) и настройки
#pragma long_calls.Для ARC функция, помеченная атрибутом
long_call, всегда вызывается с помощью инструкций косвенного перехода и связывания, что позволяет поместить вызываемую функцию в любом месте 32-битного адресного пространства. Функция, помеченная атрибутомmedium_call, всегда достаточно близка, чтобы быть вызываемой с помощью инструкции безусловного перехода и связывания, имеющей смещение в 25 бит от места вызова. Функция, помеченная атрибутомshort_call, всегда достаточно близка, чтобы быть вызываемой с помощью инструкции условного перехода и связывания, имеющей смещение в 21 бит от места вызова. jli_always-
Принудительно вызывает конкретную функцию с использованием инструкции
jli. Инструкцияjliиспользует таблицу, хранящуюся в разделе.jlitab, которая содержит расположение функций, адресованных с помощью этой инструкции. jli_fixed-
Идентично предыдущему, но расположение функции в таблице
jliизвестно и задано как параметр атрибута. secure_call-
Этот атрибут позволяет помечать функции защищенного кода, которые могут вызываться из обычного режима. Расположение функции защищенного вызова в таблице
sjliнеобходимо передать в качестве аргумента.
Далее: Атрибуты функций ARM, Предыдущее: Атрибуты функций AMD GCN, Наверх: Атрибуты функций [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.5.0/gcc/ARC-Function-Attributes.html