From e1c28cdba6f970815744f1a24ffed5a7b5709ee9 Mon Sep 17 00:00:00 2001 From: Weiming Zhao Date: Thu, 19 Jan 2017 18:46:11 +0000 Subject: [Builtin] [ARM] Update CMake to support the build of armv6m Summary: Setting -DCOMPILER_RT_TEST_TARGET_TRIPLE=armv6m-none-eabi will enable the build of builtin functions ARMv6m. Currently, only those asms that support armv6m are added. TODO:All asm sin ARM_EABI_Sources are ported for thumb1 so Thumb1_EABI_Sources will be deprecated. Reviewers: rengolin, compnerd Reviewed By: compnerd Subscribers: aemerson, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D28463 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@292504 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/base-config-ix.cmake | 1 + cmake/builtin-config-ix.cmake | 2 +- lib/builtins/CMakeLists.txt | 26 +++++++++++++++++++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake index 71d14992e..6f9f15139 100644 --- a/cmake/base-config-ix.cmake +++ b/cmake/base-config-ix.cmake @@ -172,6 +172,7 @@ macro(test_targets) else() test_target_arch(arm "" "-march=armv7-a" "-mfloat-abi=soft") test_target_arch(armhf "" "-march=armv7-a" "-mfloat-abi=hard") + test_target_arch(armv6m "" "-march=armv6m" "-mfloat-abi=soft") endif() elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "aarch32") test_target_arch(aarch32 "" "-march=armv8-a") diff --git a/cmake/builtin-config-ix.cmake b/cmake/builtin-config-ix.cmake index 8cb4ca1a2..dc2ec1694 100644 --- a/cmake/builtin-config-ix.cmake +++ b/cmake/builtin-config-ix.cmake @@ -24,7 +24,7 @@ int foo(int x, int y) { set(ARM64 aarch64) -set(ARM32 arm armhf) +set(ARM32 arm armhf armv6m) set(X86 i386 i686) set(X86_64 x86_64) set(MIPS32 mips mipsel) diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt index 3cf78616a..775dafe89 100644 --- a/lib/builtins/CMakeLists.txt +++ b/lib/builtins/CMakeLists.txt @@ -302,6 +302,12 @@ set(arm_SOURCES arm/umodsi3.S ${GENERIC_SOURCES}) +set(thumb1_SOURCES + arm/divsi3.S + arm/udivsi3.S + arm/comparesf2.S + ${GENERIC_SOURCES}) + set(arm_EABI_SOURCES arm/aeabi_cdcmp.S arm/aeabi_cdcmpeq_check_nan.c @@ -320,6 +326,20 @@ set(arm_EABI_SOURCES arm/aeabi_memset.S arm/aeabi_uidivmod.S arm/aeabi_uldivmod.S) + +set(thumb1_EABI_SOURCES + arm/aeabi_cdcmpeq_check_nan.c + arm/aeabi_cfcmpeq_check_nan.c + arm/aeabi_div0.c + arm/aeabi_drsub.c + arm/aeabi_fcmp.S + arm/aeabi_frsub.c + arm/aeabi_idivmod.S + arm/aeabi_memcmp.S + arm/aeabi_memcpy.S + arm/aeabi_memmove.S + arm/aeabi_uidivmod.S) + set(arm_Thumb1_JT_SOURCES arm/switch16.S arm/switch32.S @@ -401,6 +421,10 @@ elseif(NOT WIN32) ${arm_SOURCES} ${arm_EABI_SOURCES} ${arm_Thumb1_SOURCES}) + + set(thumb1_SOURCES + ${thumb1_SOURCES} + ${thumb1_EABI_SOURCES}) endif() set(aarch64_SOURCES @@ -431,7 +455,7 @@ set(armv7k_SOURCES ${arm_SOURCES}) set(arm64_SOURCES ${aarch64_SOURCES}) # macho_embedded archs -set(armv6m_SOURCES ${GENERIC_SOURCES}) +set(armv6m_SOURCES ${thumb1_SOURCES}) set(armv7m_SOURCES ${arm_SOURCES}) set(armv7em_SOURCES ${arm_SOURCES}) -- cgit v1.2.3