interrupt-5.c
477 Bytes
-
RISC-V: Add interrupt attribute modes. · ec74725c
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. From-SVN: r261244
Jim Wilson committed