Add Sspmp extension support to RISC-V
Binutils now supports the RISC-V Sspmp, Sspmpen, and Smpmpdeleg extensions and their associated CSRs.
This commit introduces support for the RISC-V Sspmp, Sspmpen, and Smpmpdeleg extensions, including their control and status registers (CSRs). The changes affect BFD for ELF parsing and GAS for assembler syntax and CSR handling, along with corresponding test suite updates.
In Details
Support for the RISC-V Sspmp (Scalar Symmetric Memory Protection), Sspmpen (Scalar Symmetric Memory Protection Enable), and Smpmpdeleg (Symmetric Memory Protection Delegation) extensions and their CSRs is added. This involves updates to BFD's riscv_implicit_subsets and riscv_supported_std_s_ext in elfxx-riscv.c, and to GAS's CSR handling in tc-riscv.c and riscv-opc.h. New test cases are included in the GAS test suite.
- RISC-V
- An open-standard instruction set architecture (ISA) based on reduced instruction set computing principles. It is designed to be simple, modular, and extensible.
- Sspmp extension
- A proposed extension for the RISC-V architecture related to memory protection, likely involving scalar operations for managing protection attributes.
- CSR
- Control and Status Register. Special registers in a processor architecture used for controlling system functions, managing interrupts, and monitoring status. In RISC-V, CSRs are accessed via specific instructions.
- BFD
- The 'Binary File Descriptor' library. It's a core component of GNU Binutils, providing a common interface for reading and writing various object file formats, such as ELF, COFF, and a.out.
- GAS
- The GNU Assembler, part of the GNU Binutils package. It translates assembly language code into machine code.
- ELF
- Executable and Linkable Format. A standard file format for executables, object code, shared libraries, and core dumps, primarily used on Unix-like operating systems.