| # SPDX-License-Identifier: Apache-2.0 |
| list(APPEND TOOLCHAIN_C_FLAGS -mcpu=${GCC_M_CPU}) |
| list(APPEND TOOLCHAIN_LD_FLAGS -mcpu=${GCC_M_CPU}) |
| |
| if(CONFIG_COMPILER_ISA_THUMB2) |
| list(APPEND TOOLCHAIN_C_FLAGS -mthumb) |
| list(APPEND TOOLCHAIN_LD_FLAGS -mthumb) |
| endif() |
| |
| list(APPEND TOOLCHAIN_C_FLAGS -mabi=aapcs) |
| list(APPEND TOOLCHAIN_LD_FLAGS -mabi=aapcs) |
| |
| # Defines a mapping from GCC_M_CPU to FPU |
| |
| if(CONFIG_CPU_HAS_FPU_DOUBLE_PRECISION) |
| set(PRECISION_TOKEN) |
| else() |
| set(PRECISION_TOKEN sp-) |
| endif() |
| |
| set(FPU_FOR_cortex-m4 fpv4-${PRECISION_TOKEN}d16) |
| set(FPU_FOR_cortex-m7 fpv5-${PRECISION_TOKEN}d16) |
| set(FPU_FOR_cortex-m33 fpv5-${PRECISION_TOKEN}d16) |
| set(FPU_FOR_cortex-m33+nodsp fpv5-${PRECISION_TOKEN}d16) |
| set(FPU_FOR_cortex-m55 auto) |
| set(FPU_FOR_cortex-m55+nomve.fp auto) |
| set(FPU_FOR_cortex-m55+nomve auto) |
| set(FPU_FOR_cortex-m55+nodsp auto) |
| |
| if(CONFIG_FPU) |
| list(APPEND TOOLCHAIN_C_FLAGS -mfpu=${FPU_FOR_${GCC_M_CPU}}) |
| list(APPEND TOOLCHAIN_LD_FLAGS -mfpu=${FPU_FOR_${GCC_M_CPU}}) |
| if (CONFIG_FP_SOFTABI) |
| list(APPEND TOOLCHAIN_C_FLAGS -mfloat-abi=softfp) |
| list(APPEND TOOLCHAIN_LD_FLAGS -mfloat-abi=softfp) |
| elseif(CONFIG_FP_HARDABI) |
| list(APPEND TOOLCHAIN_C_FLAGS -mfloat-abi=hard) |
| list(APPEND TOOLCHAIN_LD_FLAGS -mfloat-abi=hard) |
| endif() |
| endif() |
| |
| if(CONFIG_FP16) |
| if (CONFIG_FP16_IEEE) |
| list(APPEND TOOLCHAIN_C_FLAGS -mfp16-format=ieee) |
| list(APPEND TOOLCHAIN_LD_FLAGS -mfp16-format=ieee) |
| elseif(CONFIG_FP16_ALT) |
| list(APPEND TOOLCHAIN_C_FLAGS -mfp16-format=alternative) |
| list(APPEND TOOLCHAIN_LD_FLAGS -mfp16-format=alternative) |
| endif() |
| endif() |