[PATCH] D28463: [Builtin] [ARM] Update CMake to support the build of armv6m

Weiming Zhao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 8 22:45:20 PST 2017


weimingz created this revision.
weimingz added reviewers: rengolin, compnerd.
weimingz added a subscriber: llvm-commits.
Herald added subscribers: mgorny, aemerson.

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.


https://reviews.llvm.org/D28463

Files:
  cmake/base-config-ix.cmake
  cmake/builtin-config-ix.cmake
  lib/builtins/CMakeLists.txt


Index: lib/builtins/CMakeLists.txt
===================================================================
--- lib/builtins/CMakeLists.txt
+++ lib/builtins/CMakeLists.txt
@@ -302,6 +302,12 @@
   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 @@
   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 @@
     ${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(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})
 
Index: cmake/builtin-config-ix.cmake
===================================================================
--- cmake/builtin-config-ix.cmake
+++ cmake/builtin-config-ix.cmake
@@ -24,7 +24,7 @@
 
 
 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)
Index: cmake/base-config-ix.cmake
===================================================================
--- cmake/base-config-ix.cmake
+++ cmake/base-config-ix.cmake
@@ -166,6 +166,8 @@
     elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "mips")
       test_target_arch(mips "" "-mips32r2" "--target=mips-linux-gnu")
       test_target_arch(mips64 "" "-mips64r2" "--target=mips64-linux-gnu" "-mabi=64")
+    elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "armv6m")
+      test_target_arch(armv6m "" "-march=armv6m" "-mfloat-abi=soft")
     elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "arm")
       if(WIN32)
         test_target_arch(arm "" "" "")


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28463.83586.patch
Type: text/x-patch
Size: 2287 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170109/6c3809fe/attachment.bin>


More information about the llvm-commits mailing list