This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

r247795 - in /trunk: ChangeLog gcc/config/arc/a...


Author: claziss
Date: Tue May  9 14:19:22 2017
New Revision: 247795

URL: https://gcc.gnu.org/viewcvs?rev=247795&root=gcc&view=rev
Log:
[ARC] Automatic context save/restore for regular interrupts.

The AUX_IRQ_CTRL register controls the behavior of automated register
save and restore or prologue and epilogue sequences during a non-fast
interrupt entry and exit, and context save and restore instructions.

A user passes to the compiler the configuration of the AUX_IRQ_CTRL
register via mirq-ctrl-saved option.  This option, specifies
gneral-purposes registers that the processor saves/restores on
interrupt entry and exit, and it is only valid for ARC EM and ARC HS
cores.

gcc/
2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (irq_ctrl_saved): New variable.
	(ARC_AUTOBLINK_IRQ_P): Define.
	(ARC_AUTOFP_IRQ_P): Likewise.
	(ARC_AUTO_IRQ_P): Likewise.
	(irq_range): New function.
	(arc_must_save_register): Likewise.
	(arc_must_save_return_addr): Likewise.
	(arc_dwarf_emit_irq_save_regs): Likewise.
	(arc_override_options): Handle deferred options.
	(MUST_SAVE_REGISTER): Deleted, replaced by arc_must_save_register.
	(MUST_SAVE_RETURN_ADDR): Deleted, replaced by
	arc_must_save_return_addr.
	(arc_compute_frame_size): Handle automated save and restore of
	registers.
	(arc_expand_prologue): Likewise.
	(arc_expand_epilogue): Likewise.
	* config/arc/arc.md (stack_irq_dwarf): New unspec instruction.
	* config/arc/arc.opt (mirq-ctrl-saved): New option.
	* doc/invoke.texi (mirq-ctrl-saved): Document option.

testsuite/
2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/interrupt-5.c: Newfile.
	* gcc.target/arc/interrupt-6.c: Likewise.
	* gcc.target/arc/interrupt-7.c: Likewise.
	* gcc.target/arc/interrupt-8.c: Likewise.
	* gcc.target/arc/interrupt-9.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.target/arc/interrupt-5.c
    trunk/gcc/testsuite/gcc.target/arc/interrupt-6.c
    trunk/gcc/testsuite/gcc.target/arc/interrupt-7.c
    trunk/gcc/testsuite/gcc.target/arc/interrupt-8.c
    trunk/gcc/testsuite/gcc.target/arc/interrupt-9.c
Modified:
    trunk/ChangeLog
    trunk/gcc/config/arc/arc.c
    trunk/gcc/config/arc/arc.md
    trunk/gcc/config/arc/arc.opt
    trunk/gcc/doc/invoke.texi
    trunk/gcc/testsuite/ChangeLog


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]