zephyr/cmake/compiler
Stephanos Ioannidis 6df8f7e435 arch: arm: cortex_m: Add ARMv8.1-M MVE configs
This commit adds the ARMv8.1-M M-Profile Vector Extension (MVE)
configurations as well as the compiler flags to enable it.

The M-Profile Vector Extension consists of the MVE-I and MVE-F
instruction sets which are integer and floating-point vector
instruction sets, respectively.

The MVE-I instruction set is a superset of the ARM DSP instruction
set (ARMv7E-M) and therefore depends on ARMV8_M_DSP, and the MVE-F
instruction set is a superset of the ARM MVE-I instruction set and
therefore depends on ARMV8_1_M_MVEI.

The SoCs that implement the MVE instruction set should select the
following configurations:

  select ARMV8_M_DSP
  select ARMV8_1_M_MVEI
  select ARMV8_1_M_MVEF (if floating-point MVE is supported)

The GCC compiler flags for the MVE instruction set are specified
through the `-mcpu` flag.

In case of the Cortex-M55 (the only supported processor type for
ARMv8.1-M at the time of writing), the `-mcpu=cortex-m55` flag, by
default, enables all the supported extensions which are DSP, MVE-I and
MVE-F.

The extensions that are not supported can be specified by appending
`+no(ext)` to the `-mcpu=cortex-m55` flag:

  -mcpu=cortex-m55           Cortex-M55 with DSP + MVE-I + MVE-F
  -mcpu=cortex-m55+nomve.fp  Cortex-M55 with DSP + MVE-I
  -mcpu=cortex-m55+nomve     Cortex-M55 with DSP
  -mcpu=cortex-m55+nodsp     Cortex-M55 without any extensions

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-14 20:29:57 -04:00
..
arcmwdt ARC: MWDT: generate access to builtin funcs only if ARCMWDT_LIBC is used 2021-08-13 13:43:19 -05:00
clang cmake: oneApi: add oneApi support on windows 2021-07-27 07:20:12 -04:00
gcc arch: arm: cortex_m: Add ARMv8.1-M MVE configs 2021-08-14 20:29:57 -04:00
host-gcc cmake: host-gcc: Remove libgcc library path resolution 2021-06-16 18:35:54 +02:00
icx cmake: fix isystem_include_dir path for windows 2021-04-02 13:36:49 -04:00
xcc toolchain: Xtensa C compiler using new abstraction pattern 2020-09-04 20:36:59 +02:00
compiler_flags_template.cmake cpp: Restore C++2A Kconfig 2021-07-14 07:19:43 -04:00