| # Copyright (c) 2022 Carlo Caione <ccaione@baylibre.com> |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| config RISCV_ISA_RV32I |
| bool |
| help |
| RV32I Base Integer Instruction Set - 32bit |
| |
| config RISCV_ISA_RV32E |
| bool |
| help |
| RV32E Base Integer Instruction Set (Embedded) - 32bit |
| |
| config RISCV_ISA_RV64I |
| bool |
| default y if 64BIT |
| help |
| RV64I Base Integer Instruction Set - 64bit |
| |
| config RISCV_ISA_RV128I |
| bool |
| help |
| RV128I Base Integer Instruction Set - 128bit |
| |
| config RISCV_ISA_EXT_M |
| bool |
| help |
| (M) - Standard Extension for Integer Multiplication and Division |
| |
| Standard integer multiplication and division instruction extension, |
| which is named "M" and contains instructions that multiply or divide |
| values held in two integer registers. |
| |
| config RISCV_ISA_EXT_A |
| bool |
| help |
| (A) - Standard Extension for Atomic Instructions |
| |
| The standard atomic instruction extension is denoted by instruction |
| subset name "A", and contains instructions that atomically |
| read-modify-write memory to support synchronization between multiple |
| RISC-V threads running in the same memory space. |
| |
| config RISCV_ISA_EXT_F |
| bool |
| help |
| (F) - Standard Extension for Single-Precision Floating-Point |
| |
| Standard instruction-set extension for single-precision |
| floating-point, which is named "F" and adds single-precision |
| floating-point computational instructions compliant with the IEEE |
| 754-2008 arithmetic standard. |
| |
| config RISCV_ISA_EXT_D |
| bool |
| depends on RISCV_ISA_EXT_F |
| help |
| (D) - Standard Extension for Double-Precision Floating-Point |
| |
| Standard double-precision floating-point instruction-set extension, |
| which is named "D" and adds double-precision floating-point |
| computational instructions compliant with the IEEE 754-2008 |
| arithmetic standard. |
| |
| config RISCV_ISA_EXT_G |
| bool |
| select RISCV_ISA_EXT_M |
| select RISCV_ISA_EXT_A |
| select RISCV_ISA_EXT_F |
| select RISCV_ISA_EXT_D |
| select RISCV_ISA_EXT_ZICSR |
| select RISCV_ISA_EXT_ZIFENCEI |
| help |
| (IMAFDZicsr_Zifencei) IMAFDZicsr_Zifencei extensions |
| |
| config RISCV_ISA_EXT_Q |
| bool |
| depends on RISCV_ISA_RV64I |
| depends on RISCV_ISA_EXT_F |
| depends on RISCV_ISA_EXT_D |
| help |
| (Q) - Standard Extension for Quad-Precision Floating-Point |
| |
| Standard extension for 128-bit binary floating-point instructions |
| compliant with the IEEE 754-2008 arithmetic standard. The 128-bit or |
| quad-precision binary floatingpoint instruction subset is named "Q". |
| |
| config RISCV_ISA_EXT_C |
| bool |
| help |
| (C) - Standard Extension for Compressed Instructions |
| |
| RISC-V standard compressed instruction set extension, named "C", |
| which reduces static and dynamic code size by adding short 16-bit |
| instruction encodings for common operations. |
| |
| config RISCV_ISA_EXT_ZICSR |
| bool |
| help |
| (Zicsr) - Standard Extension for Control and Status Register (CSR) Instructions |
| |
| The "Zicsr" extension introduces support for the full set of CSR |
| instructions that operate on CSRs registers. |
| |
| config RISCV_ISA_EXT_ZIFENCEI |
| bool |
| help |
| (Zifencei) - Standard Extension for Instruction-Fetch Fence |
| |
| The "Zifencei" extension includes the FENCE.I instruction that |
| provides explicit synchronization between writes to instruction |
| memory and instruction fetches on the same hart. |
| |
| config RISCV_ISA_EXT_ZBA |
| bool |
| help |
| (Zba) - Zba BitManip Extension |
| |
| The Zba instructions can be used to accelerate the generation of |
| addresses that index into arrays of basic types (halfword, word, |
| doubleword) using both unsigned word-sized and XLEN-sized indices: a |
| shifted index is added to a base address. |
| |
| config RISCV_ISA_EXT_ZBB |
| bool |
| help |
| (Zbb) - Zbb BitManip Extension (Basic bit-manipulation) |
| |
| The Zbb instructions can be used for basic bit-manipulation (logical |
| with negate, count leading / trailing zero bits, count population, |
| etc...). |
| |
| config RISCV_ISA_EXT_ZBC |
| bool |
| help |
| (Zbc) - Zbc BitManip Extension (Carry-less multiplication) |
| |
| The Zbc instructions can be used for carry-less multiplication that |
| is the multiplication in the polynomial ring over GF(2). |
| |
| config RISCV_ISA_EXT_ZBS |
| bool |
| help |
| (Zbs) - Zbs BitManip Extension (Single-bit instructions) |
| |
| The Zbs instructions can be used for single-bit instructions that |
| provide a mechanism to set, clear, invert, or extract a single bit in |
| a register. |