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