zephyr/arch
Stephanos Ioannidis 58a6a696a0 arch: riscv: Add Zc* compressed instruction extension support
This commit adds the support for the following new Zc* series compressed
instruction extensions:

  Zca  - Subset of the C extension without FP loads and stores
  Zcb  - "Simple" instructions
  Zcd  - Double-precision floating-point instructions
  Zcf  - Single-precision floating-point instructions
  Zcmp - "Complex" instructions for embedded CPUs
  Zcmt - Table jump instructions for embedded CPUs

With the introduction of the Zc* extensions, the C extension now implies
the following Zc* extensions:

  * Zca, always
  * Zcf if F is specified (RV32 only)
  * Zcd if D is specified

The Zc* extensions that are implied by the C extension are not specified in
the GCC `-march` flag because they are redundant and can interfere with the
resolution of the correct multi-lib for the selected architecture unless
the the alternate mappings for the redundant forms are manually specified.

All the implementation details in this commit are based on the Zc* v1.0.0
specification, which is the ratified version.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2025-07-19 15:32:35 -04:00
..
arc arch: arc: support CONFIG_ROM_START_OFFSET 2025-07-19 15:32:03 -04:00
arm arch: arm: cortex_m: Modifed FPU save and restore helpers 2025-07-19 13:45:07 -04:00
arm64 arch: arm64: core: fpu: mark unused function argument 2025-07-11 08:18:43 -10:00
common arch: arc: support CONFIG_ROM_START_OFFSET 2025-07-19 15:32:03 -04:00
mips arch/common: Mark interrupt tables const when !DYNAMIC_INTERRUPTS 2025-06-10 22:13:09 +02:00
posix arch/posix: Remove support for CONFIG_NATIVE_APPLICATION 2025-07-19 09:38:15 +02:00
riscv arch: riscv: Add Zc* compressed instruction extension support 2025-07-19 15:32:35 -04:00
rx include: arch: rx: Change data symbol name 2025-06-26 14:07:03 +02:00
sparc
x86 x86: rename DEBUG_INFO to X86_DEBUG_INFO 2025-06-20 14:43:42 -05:00
xtensa xtensa: tracing: instrument thread switching 2025-07-08 18:34:11 -05:00
archs.yml scripts: hwm_v2: add full_name property for archs 2025-06-06 10:29:44 +02:00
CMakeLists.txt
Kconfig riscv: select ATOMIC_OPERATIONS based on RISCV_ISA_EXT_A 2025-06-30 15:17:47 -05:00