[ARC]Fast interrupts support.
When a processor enters a fast interrupts handler, and duplicate register banks are configured, the processor saves the user context by saving the registers in the main register bank to these additional registers in the duplicate register bank. In this fast interrupt context, when you specify the rgf_banked_regs option,the compiler does not save the registers duplicated in the additional register bank are not saved. gcc/ 2017-05-09 Claudiu Zissulescu <claziss@synopsys.com> Andrew Burgess <andrew.burgess@embecosm.com> * config/arc/arc.c (ARC_AUTOBLINK_IRQ_P): Consider fast interrupts case also. (ARC_AUTOFP_IRQ_P): Likewise. (ARC_AUTO_IRQ_P): Likewise. (rgf_banked_register_count): New variable. (parse_mrgf_banked_regs_option): New function. (arc_override_options): Handle rgf_banked_regs option. (arc_handle_interrupt_attribute): Add firq option. (arc_compute_function_type): Return fast irq type when required. (arc_must_save_register): Handle fast interrupts. (arc_expand_prologue): Do not emit dwarf info for fast interrupts. (arc_return_address_regs): Update. * config/arc/arc.h (arc_return_address_regs): Update. (arc_function_type): Add fast interrupt type. (ARC_INTERRUPT_P): Update. (RC_FAST_INTERRUPT_P): Define. * config/arc/arc.md (simple_return): Update for fast interrupts. (p_return_i): Likewise. * config/arc/arc.opt (mrgf-banked-regs): New option. * doc/invoke.texi (mrgf-banked-regs): Document. testsuite/ 2017-05-09 Claudiu Zissulescu <claziss@synopsys.com> Andrew Burgess <andrew.burgess@embecosm.com> * gcc.target/arc/firq-1.c: New file. * gcc.target/arc/firq-2.c: Likewise. * gcc.target/arc/firq-3.c: Likewise. * gcc.target/arc/firq-4.c: Likewise. * gcc.target/arc/firq-5.c: Likewise. * gcc.target/arc/firq-6.c: Likewise. Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com> From-SVN: r247796
Showing
gcc/testsuite/gcc.target/arc/firq-1.c
0 → 100644
gcc/testsuite/gcc.target/arc/firq-2.c
0 → 100644
gcc/testsuite/gcc.target/arc/firq-3.c
0 → 100644
gcc/testsuite/gcc.target/arc/firq-4.c
0 → 100644
gcc/testsuite/gcc.target/arc/firq-5.c
0 → 100644
gcc/testsuite/gcc.target/arc/firq-6.c
0 → 100644
Please
register
or
sign in
to comment