gcc: RX Function Attributes

1 
1 6.31.26 RX Function Attributes
1 ------------------------------
1 
1 These function attributes are supported by the RX back end:
1 
1 'fast_interrupt'
1      Use this attribute on the RX port to indicate that the specified
1      function is a fast interrupt handler.  This is just like the
1      'interrupt' attribute, except that 'freit' is used to return
1      instead of 'reit'.
1 
1 'interrupt'
1      Use this attribute to indicate that the specified function is an
1      interrupt handler.  The compiler generates function entry and exit
1      sequences suitable for use in an interrupt handler when this
1      attribute is present.
1 
1      On RX and RL78 targets, you may specify one or more vector numbers
1      as arguments to the attribute, as well as naming an alternate table
1      name.  Parameters are handled sequentially, so one handler can be
1      assigned to multiple entries in multiple tables.  One may also pass
1      the magic string '"$default"' which causes the function to be used
1      for any unfilled slots in the current table.
1 
1      This example shows a simple assignment of a function to one vector
1      in the default table (note that preprocessor macros may be used for
1      chip-specific symbolic vector names):
1           void __attribute__ ((interrupt (5))) txd1_handler ();
1 
1      This example assigns a function to two slots in the default table
1      (using preprocessor macros defined elsewhere) and makes it the
1      default for the 'dct' table:
1           void __attribute__ ((interrupt (RXD1_VECT,RXD2_VECT,"dct","$default")))
1           	txd1_handler ();
1 
1 'naked'
1      This attribute allows the compiler to construct the requisite
1      function declaration, while allowing the body of the function to be
1      assembly code.  The specified function will not have
1      prologue/epilogue sequences generated by the compiler.  Only basic
11      'asm' statements can safely be included in naked functions (⇒
      Basic Asm).  While using extended 'asm' or a mixture of basic
1      'asm' and C code may appear to work, they cannot be depended upon
1      to work reliably and are not supported.
1 
1 'vector'
1      This RX attribute is similar to the 'interrupt' attribute,
1      including its parameters, but does not make the function an
1      interrupt-handler type function (i.e.  it retains the normal C
1      function calling ABI). See the 'interrupt' attribute for a
1      description of its arguments.
1