These function attributes are supported by the ARC back end:
interruptOn 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 for ARCv1 architecture, and ilink and
firq for ARCv2 architecture.
long_callmedium_callshort_call#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.
jli_alwaysjli
instruction. The jli instruction makes use of a table stored
into .jlitab section, which holds the location of the functions
which are addressed using this instruction.
jli_fixedjli table is known and given as an attribute parameter.
secure_callsjli table needs to be passed as argument.
nakedasm statements can safely
be included in naked functions (see Basic Asm). While using
extended asm or a mixture of basic asm and C code may
appear to work, they cannot be depended upon to work reliably and are
not supported.