Skip to content

Instantly share code, notes, and snippets.

@eblot
Created October 28, 2019 16:52
Show Gist options
  • Save eblot/04bc09727158266e1fec3a1789d65415 to your computer and use it in GitHub Desktop.
Save eblot/04bc09727158266e1fec3a1789d65415 to your computer and use it in GitHub Desktop.
FP support for bare metal CortexM (adapted from Yves Delley's)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt
index f42e13714c9..35fe752f037 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -380,52 +380,61 @@ set(arm_Thumb1_SjLj_EH_SOURCES
arm/restore_vfp_d8_d15_regs.S
arm/save_vfp_d8_d15_regs.S
)
-set(arm_Thumb1_VFPv2_SOURCES
- arm/adddf3vfp.S
+set(arm_Thumb1_VFPv2_sgl_SOURCES
arm/addsf3vfp.S
- arm/divdf3vfp.S
arm/divsf3vfp.S
- arm/eqdf2vfp.S
arm/eqsf2vfp.S
+ arm/fixsfsivfp.S
+ arm/fixunssfsivfp.S
+ arm/floatsisfvfp.S
+ arm/floatunssisfvfp.S
+ arm/gesf2vfp.S
+ arm/gtsf2vfp.S
+ arm/lesf2vfp.S
+ arm/ltsf2vfp.S
+ arm/mulsf3vfp.S
+ arm/negsf2vfp.S
+ arm/nesf2vfp.S
+ arm/subsf3vfp.S
+ arm/unordsf2vfp.S
+)
+set(arm_Thumb1_VFPv2_dbl_SOURCES
+ arm/adddf3vfp.S
+ arm/divdf3vfp.S
+ arm/eqdf2vfp.S
arm/extendsfdf2vfp.S
arm/fixdfsivfp.S
- arm/fixsfsivfp.S
arm/fixunsdfsivfp.S
- arm/fixunssfsivfp.S
arm/floatsidfvfp.S
- arm/floatsisfvfp.S
arm/floatunssidfvfp.S
- arm/floatunssisfvfp.S
arm/gedf2vfp.S
- arm/gesf2vfp.S
arm/gtdf2vfp.S
- arm/gtsf2vfp.S
arm/ledf2vfp.S
- arm/lesf2vfp.S
arm/ltdf2vfp.S
- arm/ltsf2vfp.S
arm/muldf3vfp.S
- arm/mulsf3vfp.S
arm/nedf2vfp.S
arm/negdf2vfp.S
- arm/negsf2vfp.S
- arm/nesf2vfp.S
arm/subdf3vfp.S
- arm/subsf3vfp.S
arm/truncdfsf2vfp.S
arm/unorddf2vfp.S
- arm/unordsf2vfp.S
+)
+set(arm_Thumb1_VFPv2_SOURCES
+ ${arm_Thumb1_VFPv2_sgl_SOURCES}
+ ${arm_Thumb1_VFPv2_dbl_SOURCES}
)
set(arm_Thumb1_icache_SOURCES
arm/sync_synchronize.S
)
-set(arm_Thumb1_SOURCES
+set(arm_Thumb1_sgl_SOURCES
${arm_Thumb1_JT_SOURCES}
${arm_Thumb1_SjLj_EH_SOURCES}
- ${arm_Thumb1_VFPv2_SOURCES}
+ ${arm_Thumb1_VFPv2_sgl_SOURCES}
${arm_Thumb1_icache_SOURCES}
)
-
+set(arm_Thumb1_SOURCES
+ ${arm_Thumb1_sgl_SOURCES}
+ ${arm_Thumb1_VFPv2_dbl_SOURCES}
+)
if(MINGW)
set(arm_SOURCES
arm/aeabi_idivmod.S
@@ -438,10 +447,14 @@ if(MINGW)
filter_builtin_sources(arm_SOURCES EXCLUDE arm_SOURCES "${arm_SOURCES};${GENERIC_SOURCES}")
elseif(NOT WIN32)
# TODO the EABI sources should only be added to EABI targets
- set(arm_SOURCES
+ set(arm_sgl_SOURCES
${arm_SOURCES}
${arm_EABI_SOURCES}
- ${arm_Thumb1_SOURCES}
+ ${arm_Thumb1_sgl_SOURCES}
+ )
+ set(arm_SOURCES
+ ${arm_sgl_SOURCES}
+ ${arm_Thumb1_VFPv2_dbl_SOURCES}
)
set(thumb1_SOURCES
@@ -471,8 +484,8 @@ set(arm64_SOURCES ${aarch64_SOURCES})
# macho_embedded archs
set(armv6m_SOURCES ${thumb1_SOURCES})
-set(armv7m_SOURCES ${arm_SOURCES})
-set(armv7em_SOURCES ${arm_SOURCES})
+set(armv7m_SOURCES ${arm_sgl_SOURCES})
+set(armv7em_SOURCES ${arm_sgl_SOURCES})
# hexagon arch
set(hexagon_SOURCES ${GENERIC_SOURCES} ${GENERIC_TF_SOURCES})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment