zephyr/cmake
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
..
app
bintools cmake: add option to force raw instruction mnemonics 2025-06-27 10:01:11 -05:00
compiler arch: riscv: Add Zc* compressed instruction extension support 2025-07-19 15:32:35 -04:00
emu cmake/emu: Use SIMICS_PROJECT environment variable as working dir 2025-05-20 12:47:25 +02:00
flash cmake: Fix support for "ninja flash" 2025-07-02 03:55:49 -10:00
ide
linker iar: linker_script: zero-init BSS 2025-06-30 15:18:30 -05:00
linker_script Revert "cmake: Add service section to commo-rom linker generator" 2025-07-16 16:39:36 -05:00
makefile_exports
modules cmake: kconfig: Add APP_DIR to kconfig environment 2025-07-08 13:40:34 -05:00
reports cmake: targets: support overriding puncover host and port 2025-06-27 09:59:30 -05:00
sca sca: eclair: use MISRA C:2012 Amendment 2 2025-06-30 15:20:13 -05:00
toolchain libc: remove POSIX_TIMERS dep from COMMON_LIBC_TIME 2025-07-08 13:38:11 -05:00
usage
util
cfb.cmake
extra_flags.cmake
gcc-m-cpu.cmake arch: arm: Add Cortex-A7 support 2025-04-04 09:35:03 +02:00
gcc-m-fpu.cmake soc: xlnx: zynq7000: add FPU support 2025-06-27 09:50:43 -05:00
gen_version_h.cmake
kobj.cmake cmake: fix syscall dependencies 2025-05-13 16:23:54 +02:00
llext-edk.cmake llext-edk: fix BOARD_TARGET variable generation to be Zephyr-compatible 2025-04-02 19:02:45 +02:00
mcuboot.cmake mcuboot: cmake: only set write_block_size when needed 2025-07-08 18:35:44 -05:00
package_helper.cmake
pristine.cmake
target_toolchain_flags.cmake
verify-toolchain.cmake
vif.cmake
yaml-filter.cmake cmake: yaml: switch to yaml for intermediate file 2025-04-10 10:11:47 +02:00