Spec-Zone.ru › GCC 7

6.31.3 Атрибуты функций ARC

Эти атрибуты функций поддерживаются бэкэндом ARC:

interrupt

Используйте этот атрибут, чтобы указать, что указанная функция является обработчиком прерываний. Компилятор генерирует последовательности входа и выхода функции, подходящие для использования в обработчике прерываний, когда этот атрибут присутствует.

В ARC вы должны указать тип прерывания, которое должно быть обработано, в параметре атрибута прерывания следующим образом:

void f () __attribute__ ((interrupt ("ilink1")));

Допустимые значения для этого параметра: ilink1 и ilink2.

long_call
medium_call
short_call

Эти атрибуты определяют, как вызывается конкретная функция. Эти атрибуты переопределяют переключатели командной строки -mlong-calls и -mmedium-calls (см. Параметры ARC) и #pragma long_calls настройки.

Для ARC функция, помеченная атрибутом long_call, всегда вызывается с помощью инструкций register-indirect jump-and-link, что позволяет разместить вызываемую функцию в любом месте 32-битного адресного пространства. Функция, помеченная атрибутом medium_call, всегда достаточно близка, чтобы ее можно было вызвать с помощью инструкции безусловного ветвления branch-and-link, имеющей смещение в 25 бит от места вызова. Функция, помеченная атрибутом short_call, всегда достаточно близка, чтобы ее можно было вызвать с помощью инструкции условного ветвления branch-and-link, имеющей смещение в 21 бит от места вызова.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.5.0/gcc/ARC-Function-Attributes.html

Spec-Zone.ru

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