https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Christoph Meullner
<cmuell...@gcc.gnu.org>:

https://gcc.gnu.org/g:f888d5fbea1820ac75d84dfef0a974e578670394

commit r16-2510-gf888d5fbea1820ac75d84dfef0a974e578670394
Author: Christoph Müllner <christoph.muell...@vrull.eu>
Date:   Fri Jul 25 10:27:59 2025 +0200

    RISC-V: Remove user-level interrupts

    There was once a RISC-V extension draft ("N"), which introduced
    user-level interrupts.  However, it was never ratified and the
    specification draft has been removed from the RISC-V ISA manual
    in commit `b6cade07034` with the comment "it'll likely need to
    be redesigned".

    Support for a N extension never made it to GCC, but we support
    fuction attributes for user-level interrupt handlers that use
    the URET instruction.

    The "user" interrupt attribute was documented in the RISC-V C API,
    but has been removed in PR #106 in May 2025 (driven by LLVM devs/
    maintainers and ack'ed by at least one GCC maintainer).

    Let's drop URET support from GCC as well.

    gcc/ChangeLog:

            * config/riscv/riscv.cc (enum riscv_privilege_levels): Remove
USER_MODE.
            (riscv_handle_type_attribute): Remove "user" interrupts.
            (riscv_expand_epilogue): Likewise.
            (riscv_get_interrupt_type): Likewise.
            * config/riscv/riscv.md (riscv_uret): Remove URET pattern.
            * doc/extend.texi: Remove documentation of user interrupts.

    gcc/testsuite/ChangeLog:

            * gcc.target/riscv/interrupt-conflict-mode.c: Remove "user"
            interrupts.
            * gcc.target/riscv/xtheadint-push-pop.c: Likewise.
            * gcc.target/riscv/interrupt-umode.c: Removed.

    Reported-by: Sam Elliott <quic_aelli...@quicinc.com>
    Signed-off-by: Christoph Müllner <christoph.muell...@vrull.eu>

Reply via email to