r261244 - in /trunk/gcc: ChangeLog config/riscv...

wilson@gcc.gnu.org wilson@gcc.gnu.org
Wed Jun 6 19:08:00 GMT 2018


Author: wilson
Date: Wed Jun  6 19:08:36 2018
New Revision: 261244

URL: https://gcc.gnu.org/viewcvs?rev=261244&root=gcc&view=rev
Log:
RISC-V: Add interrupt attribute modes.

	gcc/
	* config/riscv/riscv.c (enum riscv_privilege_levels): New.
	(struct machine_function): New field interrupt_mode.
	(riscv_handle_type_attribute): New function.  Add forward declaration.
	(riscv_attribute_table) <interrupt>: Use riscv_handle_type_attribute.
	(riscv_expand_epilogue): Check interrupt_mode field.
	(riscv_set_current_function): Check interrupt attribute args and
	set interrupt_mode field.
	* config/riscv/riscv.md (UNSPECV_SRET, UNSPECV_URET): New.
	(riscv_sret, riscv_uret): New.
	* doc/extend.texi (RISC-V Function Attributes) <interrupt>: Document
	new arguments to interrupt attribute.

	gcc/testsuite/
	* gcc.target/riscv/interrupt-5.c (sub3): Add new test.
	* gcc.target/riscv/interrupt-mmode.c: New.
	* gcc.target/riscv/interrupt-smode.c: New.
	* gcc.target/riscv/interrupt-umode.c: New.

Added:
    trunk/gcc/testsuite/gcc.target/riscv/interrupt-mmode.c
    trunk/gcc/testsuite/gcc.target/riscv/interrupt-smode.c
    trunk/gcc/testsuite/gcc.target/riscv/interrupt-umode.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/riscv/riscv.c
    trunk/gcc/config/riscv/riscv.md
    trunk/gcc/doc/extend.texi
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/riscv/interrupt-5.c



More information about the Gcc-cvs mailing list