These function attributes are supported by the ARC back end:
interrupt
On the ARC, you must specify the kind of interrupt to be handled in a parameter to the interrupt attribute like this:
void f () __attribute__ ((interrupt ("ilink1")));
Permissible values for this parameter are: ilink1
and ilink2
.
long_call
medium_call
short_call
-mlong-calls
and -mmedium-calls
(see ARC Options) command-line switches and #pragma long_calls
settings. For ARC, a function marked with the long_call
attribute is always called using register-indirect jump-and-link instructions, thereby enabling the called function to be placed anywhere within the 32-bit address space. A function marked with the medium_call
attribute will always be close enough to be called with an unconditional branch-and-link instruction, which has a 25-bit offset from the call site. A function marked with the short_call
attribute will always be close enough to be called with a conditional branch-and-link instruction, which has a 21-bit offset from the call site.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/ARC-Function-Attributes.html