Spec-Zone.ru › GCC 7

6.31.11 Атрибуты функций M32C

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

bank_switch

При добавлении к обработчику прерывания с портом M32C заставляет пролог и эпилог использовать переключение банков для сохранения регистров вместо их сохранения в стеке.

fast_interrupt

Используйте этот атрибут на порту M32C, чтобы указать, что указанная функция является быстрым обработчиком прерываний. Это аналогично атрибуту interrupt, за исключением того, что для возврата используется freit, а не reit.

function_vector

На целевых платформах M16C/M32C атрибут function_vector объявляет функцию специального вызова подпрограммы страницы. Использование этого атрибута уменьшает размер кода на 2 байта для каждого вызова подпрограммы. Аргументом атрибута является номер записи вектора из таблицы векторов специальной страницы, которая содержит 16 младших битов адреса входа подпрограммы. Каждая таблица векторов имеет номер специальной страницы (от 18 до 255), используемый в инструкциях jsrs. Адреса перехода процедур генерируются путем добавления 0x0F0000 (в случае целей M16C) или 0xFF0000 (в случае целей M32C) к 2-байтовым адресам, установленным в таблице векторов. Поэтому необходимо гарантировать, что все подпрограммы специальной страницы будут отображаться в диапазоне адресов от 0x0F0000 до 0x0FFFFF (для M16C) и от 0xFF0000 до 0xFFFFFF (для M32C).

В следующем примере 2 байта сохраняются для каждого вызова функции foo.

void foo (void) __attribute__((function_vector(0x18)));
void foo (void)
{
}

void bar (void)
{
    foo();
}

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

Этот атрибут игнорируется для целевых платформ R8C.

interrupt

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

Далее: Атрибуты функций M32R/D, Предыдущее: Атрибуты функций IA-64, Вверх: Атрибуты функций [Оглавление][Индекс]

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

Spec-Zone.ru

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