m68k.c (m68k_attribute_table): Add "interrupt".
* config/m68k/m68k.c (m68k_attribute_table): Add "interrupt". (m68k_get_function_kind): Return m68k_fk_interrupt_handler on "interrupt". * doc/extend.texi (interrupt): Mention m68k. From-SVN: r125290
This commit is contained in:
parent
097dbf654d
commit
2bccb817ce
|
@ -1,3 +1,10 @@
|
||||||
|
2007-06-03 Kazu Hirata <kazu@codesourcery.com>
|
||||||
|
|
||||||
|
* config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
|
||||||
|
(m68k_get_function_kind): Return m68k_fk_interrupt_handler on
|
||||||
|
"interrupt".
|
||||||
|
* doc/extend.texi (interrupt): Mention m68k.
|
||||||
|
|
||||||
2007-06-02 Uros Bizjak <ubizjak@gmail.com>
|
2007-06-02 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
* config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
|
* config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
|
||||||
|
|
|
@ -222,6 +222,7 @@ int m68k_last_compare_had_fp_operands;
|
||||||
static const struct attribute_spec m68k_attribute_table[] =
|
static const struct attribute_spec m68k_attribute_table[] =
|
||||||
{
|
{
|
||||||
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
|
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
|
||||||
|
{ "interrupt", 0, 0, true, false, false, m68k_handle_fndecl_attribute },
|
||||||
{ "interrupt_handler", 0, 0, true, false, false, m68k_handle_fndecl_attribute },
|
{ "interrupt_handler", 0, 0, true, false, false, m68k_handle_fndecl_attribute },
|
||||||
{ "interrupt_thread", 0, 0, true, false, false, m68k_handle_fndecl_attribute },
|
{ "interrupt_thread", 0, 0, true, false, false, m68k_handle_fndecl_attribute },
|
||||||
{ NULL, 0, 0, false, false, false, NULL }
|
{ NULL, 0, 0, false, false, false, NULL }
|
||||||
|
@ -634,9 +635,10 @@ m68k_cpp_cpu_family (const char *prefix)
|
||||||
return concat ("__m", prefix, "_family_", m68k_cpu_entry->family, NULL);
|
return concat ("__m", prefix, "_family_", m68k_cpu_entry->family, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return m68k_fk_interrupt_handler if FUNC has an "interrupt_handler"
|
/* Return m68k_fk_interrupt_handler if FUNC has an "interrupt" or
|
||||||
attribute and interrupt_thread if FUNC has an "interrupt_thread"
|
"interrupt_handler" attribute and interrupt_thread if FUNC has an
|
||||||
attribute. Otherwise, return m68k_fk_normal_function. */
|
"interrupt_thread" attribute. Otherwise, return
|
||||||
|
m68k_fk_normal_function. */
|
||||||
|
|
||||||
enum m68k_function_kind
|
enum m68k_function_kind
|
||||||
m68k_get_function_kind (tree func)
|
m68k_get_function_kind (tree func)
|
||||||
|
@ -646,6 +648,10 @@ m68k_get_function_kind (tree func)
|
||||||
if (TREE_CODE (func) != FUNCTION_DECL)
|
if (TREE_CODE (func) != FUNCTION_DECL)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
a = lookup_attribute ("interrupt", DECL_ATTRIBUTES (func));
|
||||||
|
if (a != NULL_TREE)
|
||||||
|
return m68k_fk_interrupt_handler;
|
||||||
|
|
||||||
a = lookup_attribute ("interrupt_handler", DECL_ATTRIBUTES (func));
|
a = lookup_attribute ("interrupt_handler", DECL_ATTRIBUTES (func));
|
||||||
if (a != NULL_TREE)
|
if (a != NULL_TREE)
|
||||||
return m68k_fk_interrupt_handler;
|
return m68k_fk_interrupt_handler;
|
||||||
|
|
|
@ -2043,12 +2043,13 @@ This attribute is ignored for R8C target.
|
||||||
|
|
||||||
@item interrupt
|
@item interrupt
|
||||||
@cindex interrupt handler functions
|
@cindex interrupt handler functions
|
||||||
Use this attribute on the ARM, AVR, C4x, CRX, M32C, M32R/D, MS1, and Xstormy16
|
Use this attribute on the ARM, AVR, C4x, CRX, M32C, M32R/D, m68k, MS1,
|
||||||
ports to indicate that the specified function is an interrupt handler.
|
and Xstormy16 ports to indicate that the specified function is an
|
||||||
The compiler will generate function entry and exit sequences suitable
|
interrupt handler. The compiler will generate function entry and exit
|
||||||
for use in an interrupt handler when this attribute is present.
|
sequences suitable for use in an interrupt handler when this attribute
|
||||||
|
is present.
|
||||||
|
|
||||||
Note, interrupt handlers for the Blackfin, m68k, H8/300, H8/300H, H8S, and
|
Note, interrupt handlers for the Blackfin, H8/300, H8/300H, H8S, and
|
||||||
SH processors can be specified via the @code{interrupt_handler} attribute.
|
SH processors can be specified via the @code{interrupt_handler} attribute.
|
||||||
|
|
||||||
Note, on the AVR, interrupts will be enabled inside the function.
|
Note, on the AVR, interrupts will be enabled inside the function.
|
||||||
|
|
Loading…
Reference in New Issue