Commit 402f2db8 by DJ Delorie Committed by DJ Delorie

m32c.c (m32c_emit_epilogue): Check for R8C or M16C chip and ignore the…

m32c.c (m32c_emit_epilogue): Check for R8C or M16C chip and ignore the "fast_interrupt" attribute if so.

* config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C
chip and ignore the "fast_interrupt" attribute if so.

From-SVN: r151780
parent ee3422cf
2009-09-16 DJ Delorie <dj@redhat.com>
* config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C
chip and ignore the "fast_interrupt" attribute if so.
2009-09-16 Richard Henderson <rth@redhat.com>
PR middle-end/41360
......
......@@ -4052,8 +4052,26 @@ m32c_emit_epilogue (void)
if (!bank_switch_p (cfun->decl) && cfun->machine->intr_pushm)
emit_insn (gen_popm (GEN_INT (cfun->machine->intr_pushm)));
/* The FREIT (Fast REturn from InTerrupt) instruction should be
generated only for M32C/M32CM targets (generate the REIT
instruction otherwise). */
if (fast_interrupt_p (cfun->decl))
emit_jump_insn (gen_epilogue_freit ());
{
/* Check if fast_attribute is set for M32C or M32CM. */
if (TARGET_A24)
{
emit_jump_insn (gen_epilogue_freit ());
}
/* If fast_interrupt attribute is set for an R8C or M16C
target ignore this attribute and generated REIT
instruction. */
else
{
warning (OPT_Wattributes,
"%<fast_interrupt%> attribute directive ignored");
emit_jump_insn (gen_epilogue_reit_16 ());
}
}
else if (TARGET_A16)
emit_jump_insn (gen_epilogue_reit_16 ());
else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment