diff --git a/arm-software/embedded/arm-multilib/json/multilib.json b/arm-software/embedded/arm-multilib/json/multilib.json index f080a16107d3..97eed503610b 100644 --- a/arm-software/embedded/arm-multilib/json/multilib.json +++ b/arm-software/embedded/arm-multilib/json/multilib.json @@ -274,6 +274,11 @@ "json": "armv7m_hard_fpv4_sp_d16_exn_rtti.json", "flags": "--target=thumbv7m-unknown-none-eabihf -mfpu=fpv4-sp-d16 -mno-unaligned-access" }, + { + "variant": "armebv7m_hard_fpv4_sp_d16_exn_rtti", + "json": "armebv7m_hard_fpv4_sp_d16_exn_rtti.json", + "flags": "--target=thumbebv7m-unknown-none-eabihf -mfpu=fpv4-sp-d16" + }, { "variant": "armv7m_hard_fpv4_sp_d16_unaligned", "json": "armv7m_hard_fpv4_sp_d16_unaligned.json", @@ -284,6 +289,11 @@ "json": "armv7m_hard_fpv4_sp_d16.json", "flags": "--target=thumbv7m-unknown-none-eabihf -mfpu=fpv4-sp-d16 -fno-exceptions -fno-rtti -mno-unaligned-access" }, + { + "variant": "armebv7m_hard_fpv4_sp_d16", + "json": "armebv7m_hard_fpv4_sp_d16.json", + "flags": "--target=thumbebv7m-unknown-none-eabihf -mfpu=fpv4-sp-d16 -fno-exceptions -fno-rtti" + }, { "variant": "armv7m_hard_fpv5_d16_exn_rtti", "json": "armv7m_hard_fpv5_d16_exn_rtti.json", diff --git a/arm-software/embedded/arm-multilib/json/variants/armebv7m_hard_fpv4_sp_d16.json b/arm-software/embedded/arm-multilib/json/variants/armebv7m_hard_fpv4_sp_d16.json new file mode 100644 index 000000000000..5f5ce6cb3e95 --- /dev/null +++ b/arm-software/embedded/arm-multilib/json/variants/armebv7m_hard_fpv4_sp_d16.json @@ -0,0 +1,40 @@ +{ + "args": { + "common": { + "TARGET_ARCH": "armv7m", + "VARIANT": "armebv7m_hard_fpv4_sp_d16", + "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7m -mbig-endian -mfpu=fpv4-sp-d16 -mno-unaligned-access", + "ENABLE_EXCEPTIONS": "OFF", + "ENABLE_RTTI": "OFF", + "TEST_EXECUTOR": "fvp", + "FVP_MODEL": "corstone-310", + "FVP_CONFIG": "cortex-m85 m-big-endian m-fp mve-none", + "BOOT_FLASH_ADDRESS": "0x01000000", + "BOOT_FLASH_SIZE": "2M", + "FLASH_ADDRESS": "0x60000000", + "FLASH_SIZE": "0x1000000", + "RAM_ADDRESS": "0x61000000", + "RAM_SIZE": "0x1000000", + "STACK_SIZE": "4K" + }, + "picolibc": { + "PICOLIBC_BUILD_TYPE": "minsize", + "ENABLE_CXX_LIBS": "ON", + "ENABLE_LIBC_TESTS": "ON", + "ENABLE_COMPILER_RT_TESTS": "ON", + "ENABLE_LIBCXX_TESTS": "ON" + }, + "newlib": { + "ENABLE_CXX_LIBS": "ON", + "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_COMPILER_RT_TESTS": "OFF", + "ENABLE_LIBCXX_TESTS": "OFF" + }, + "llvmlibc": { + "ENABLE_CXX_LIBS": "OFF", + "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_COMPILER_RT_TESTS": "OFF", + "ENABLE_LIBCXX_TESTS": "OFF" + } + } +} diff --git a/arm-software/embedded/arm-multilib/json/variants/armebv7m_hard_fpv4_sp_d16_exn_rtti.json b/arm-software/embedded/arm-multilib/json/variants/armebv7m_hard_fpv4_sp_d16_exn_rtti.json new file mode 100644 index 000000000000..d68d50aac6a3 --- /dev/null +++ b/arm-software/embedded/arm-multilib/json/variants/armebv7m_hard_fpv4_sp_d16_exn_rtti.json @@ -0,0 +1,40 @@ +{ + "args": { + "common": { + "TARGET_ARCH": "armv7m", + "VARIANT": "armebv7m_hard_fpv4_sp_d16_exn_rtti", + "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7m -mbig-endian -mfpu=fpv4-sp-d16 -mno-unaligned-access", + "ENABLE_EXCEPTIONS": "ON", + "ENABLE_RTTI": "ON", + "TEST_EXECUTOR": "fvp", + "FVP_MODEL": "corstone-310", + "FVP_CONFIG": "cortex-m85 m-big-endian m-fp mve-none", + "BOOT_FLASH_ADDRESS": "0x01000000", + "BOOT_FLASH_SIZE": "2M", + "FLASH_ADDRESS": "0x60000000", + "FLASH_SIZE": "0x1000000", + "RAM_ADDRESS": "0x61000000", + "RAM_SIZE": "0x1000000", + "STACK_SIZE": "4K" + }, + "picolibc": { + "PICOLIBC_BUILD_TYPE": "minsize", + "ENABLE_CXX_LIBS": "ON", + "ENABLE_LIBC_TESTS": "ON", + "ENABLE_COMPILER_RT_TESTS": "ON", + "ENABLE_LIBCXX_TESTS": "ON" + }, + "newlib": { + "ENABLE_CXX_LIBS": "ON", + "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_COMPILER_RT_TESTS": "OFF", + "ENABLE_LIBCXX_TESTS": "OFF" + }, + "llvmlibc": { + "ENABLE_CXX_LIBS": "OFF", + "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_COMPILER_RT_TESTS": "OFF", + "ENABLE_LIBCXX_TESTS": "OFF" + } + } +} diff --git a/arm-software/embedded/arm-multilib/multilib.yaml.in b/arm-software/embedded/arm-multilib/multilib.yaml.in index 3d6fb64e074c..a4c9ab5495c7 100644 --- a/arm-software/embedded/arm-multilib/multilib.yaml.in +++ b/arm-software/embedded/arm-multilib/multilib.yaml.in @@ -107,6 +107,9 @@ Mappings: - Match: --target=thumbv7em-unknown-none-eabihf Flags: - --target=thumbv7m-unknown-none-eabihf +- Match: --target=thumbebv7em-unknown-none-eabihf + Flags: + - --target=thumbebv7m-unknown-none-eabihf # v7-A and v7-R include the ISA in the triple, but that doesn't matter for # library selection, so canonicalise Thumb triples to ARM ones. diff --git a/arm-software/embedded/test/multilib/armv7m.test b/arm-software/embedded/test/multilib/armv7m.test index 18d5c5788267..f708f8859e61 100644 --- a/arm-software/embedded/test/multilib/armv7m.test +++ b/arm-software/embedded/test/multilib/armv7m.test @@ -75,6 +75,20 @@ # FPV5: arm-none-eabi/armv7m_hard_fpv5_d16_exn_rtti{{$}} # FPV5-EMPTY: +# RUN: %clang -print-multi-directory --target=armv7m-none-eabihf -mbig-endian -mfpu=fpv4-sp-d16 -fno-exceptions -fno-rtti | FileCheck %s --check-prefix=CHECK-BE-FPV4 +# RUN: %clang -print-multi-directory --target=armv7m-none-eabihf -mbig-endian -mfpu=fpv4-sp-d16 -fno-exceptions -fno-rtti -mno-unaligned-access | FileCheck %s --check-prefix=CHECK-BE-FPV4 +# RUN: %clang -print-multi-directory --target=armv7em-none-eabihf -mbig-endian -mfpu=fpv4-sp-d16 -fno-exceptions -fno-rtti | FileCheck %s --check-prefix=CHECK-BE-FPV4 +# RUN: %clang -print-multi-directory --target=armv7em-none-eabihf -mbig-endian -mfpu=fpv4-sp-d16 -fno-exceptions -fno-rtti -mno-unaligned-access | FileCheck %s --check-prefix=CHECK-BE-FPV4 +# CHECK-BE-FPV4: arm-none-eabi/armebv7m_hard_fpv4_sp_d16{{$}} +# CHECK-BE-FPV4-EMPTY: + +# RUN: %clang -print-multi-directory --target=armv7m-none-eabihf -mbig-endian -mfpu=fpv4-sp-d16 | FileCheck %s --check-prefix=CHECK-BE-FPV4-EXN-RTTI +# RUN: %clang -print-multi-directory --target=armv7m-none-eabihf -mbig-endian -mfpu=fpv4-sp-d16 -mno-unaligned-access | FileCheck %s --check-prefix=CHECK-BE-FPV4-EXN-RTTI +# RUN: %clang -print-multi-directory --target=armv7em-none-eabihf -mbig-endian -mfpu=fpv4-sp-d16 | FileCheck %s --check-prefix=CHECK-BE-FPV4-EXN-RTTI +# RUN: %clang -print-multi-directory --target=armv7em-none-eabihf -mbig-endian -mfpu=fpv4-sp-d16 -mno-unaligned-access | FileCheck %s --check-prefix=CHECK-BE-FPV4-EXN-RTTI +# CHECK-BE-FPV4-EXN-RTTI: arm-none-eabi/armebv7m_hard_fpv4_sp_d16_exn_rtti{{$}} +# CHECK-BE-FPV4-EXN-RTTI-EMPTY: + # %clang -print-multi-directory --target=arm-none-eabi -mcpu=cortex-m3 | FileCheck %s --check-prefix=NONE # %clang -print-multi-directory --target=arm-none-eabi -mcpu=cortex-m4 | FileCheck %s --check-prefix=SOFT-FPV4 # %clang -print-multi-directory --target=arm-none-eabihf -mcpu=cortex-m4 | FileCheck %s --check-prefix=FPV4