@@ -227,7 +227,8 @@ else () # MSVC
227227  set (i686_SOURCES ${i386_SOURCES} )
228228endif  () # if (NOT MSVC) 
229229
230- set (arm_SOURCES
230+ # These are sources that should be appropriate for any ARM platform. 
231+ set (arm_GENERIC_SOURCES
231232  arm/aeabi_cdcmp.S
232233  arm/aeabi_cdcmpeq_check_nan.c
233234  arm/aeabi_cfcmp.S
@@ -253,32 +254,10 @@ set(arm_SOURCES
253254  arm/divmodsi4.S
254255  arm/divsi3.S
255256  arm/modsi3.S
256-   arm/negdf2vfp.S
257-   arm/negsf2vfp.S
258257  arm/switch16.S
259258  arm/switch32.S
260259  arm/switch8.S
261260  arm/switchu8.S
262-   arm/sync_fetch_and_add_4.S
263-   arm/sync_fetch_and_add_8.S
264-   arm/sync_fetch_and_and_4.S
265-   arm/sync_fetch_and_and_8.S
266-   arm/sync_fetch_and_max_4.S
267-   arm/sync_fetch_and_max_8.S
268-   arm/sync_fetch_and_min_4.S
269-   arm/sync_fetch_and_min_8.S
270-   arm/sync_fetch_and_nand_4.S
271-   arm/sync_fetch_and_nand_8.S
272-   arm/sync_fetch_and_or_4.S
273-   arm/sync_fetch_and_or_8.S
274-   arm/sync_fetch_and_sub_4.S
275-   arm/sync_fetch_and_sub_8.S
276-   arm/sync_fetch_and_umax_4.S
277-   arm/sync_fetch_and_umax_8.S
278-   arm/sync_fetch_and_umin_4.S
279-   arm/sync_fetch_and_umin_8.S
280-   arm/sync_fetch_and_xor_4.S
281-   arm/sync_fetch_and_xor_8.S
282261  arm/sync_synchronize.S
283262  arm/udivmodsi4.S
284263  arm/udivsi3.S
@@ -304,7 +283,32 @@ set(aarch64_SOURCES
304283  trunctfsf2.c
305284  ${GENERIC_SOURCES} )
306285
307- set (armhf_SOURCES
286+ # These are sources for the ARM platform that require Thumb2 instructions 
287+ # support. 
288+ set (arm_THUMB_SOURCES
289+   arm/sync_fetch_and_add_4.S
290+   arm/sync_fetch_and_add_8.S
291+   arm/sync_fetch_and_and_4.S
292+   arm/sync_fetch_and_and_8.S
293+   arm/sync_fetch_and_max_4.S
294+   arm/sync_fetch_and_max_8.S
295+   arm/sync_fetch_and_min_4.S
296+   arm/sync_fetch_and_min_8.S
297+   arm/sync_fetch_and_nand_4.S
298+   arm/sync_fetch_and_nand_8.S
299+   arm/sync_fetch_and_or_4.S
300+   arm/sync_fetch_and_or_8.S
301+   arm/sync_fetch_and_sub_4.S
302+   arm/sync_fetch_and_sub_8.S
303+   arm/sync_fetch_and_umax_4.S
304+   arm/sync_fetch_and_umax_8.S
305+   arm/sync_fetch_and_umin_4.S
306+   arm/sync_fetch_and_umin_8.S
307+   arm/sync_fetch_and_xor_4.S
308+   arm/sync_fetch_and_xor_8.S)
309+ 
310+ # These are sources for the ARM platform that require VFP instructions support. 
311+ set (arm_VFP_SOURCES
308312  arm/adddf3vfp.S
309313  arm/addsf3vfp.S
310314  arm/divdf3vfp.S
@@ -330,6 +334,8 @@ set(armhf_SOURCES
330334  arm/ltsf2vfp.S
331335  arm/muldf3vfp.S
332336  arm/mulsf3vfp.S
337+   arm/negdf2vfp.S
338+   arm/negsf2vfp.S
333339  arm/nedf2vfp.S
334340  arm/nesf2vfp.S
335341  arm/restore_vfp_d8_d15_regs.S
@@ -338,16 +344,18 @@ set(armhf_SOURCES
338344  arm/subsf3vfp.S
339345  arm/truncdfsf2vfp.S
340346  arm/unorddf2vfp.S
341-   arm/unordsf2vfp.S
342-   ${arm_SOURCES} )
343- set (armv7_SOURCES ${arm_SOURCES} )
344- set (armv7s_SOURCES ${arm_SOURCES} )
347+   arm/unordsf2vfp.S)
348+ 
349+ set (arm_SOURCES ${arm_GENERIC_SOURCES} )
350+ set (armhf_SOURCES ${arm_GENERIC_SOURCES}  ${arm_VFP_SOURCES} )
351+ set (armv7_SOURCES ${arm_GENERIC_SOURCES}  ${arm_VFP_SOURCES}  ${arm_THUMB_SOURCES} )
352+ set (armv7s_SOURCES ${arm_GENERIC_SOURCES}  ${arm_VFP_SOURCES}  ${arm_THUMB_SOURCES} )
345353set (arm64_SOURCES ${aarch64_SOURCES} )
346354
347355# macho_embedded archs 
348356set (armv6m_SOURCES ${GENERIC_SOURCES} )
349- set (armv7m_SOURCES ${arm_SOURCES } )
350- set (armv7em_SOURCES ${arm_SOURCES } )
357+ set (armv7m_SOURCES ${arm_GENERIC_SOURCES}    ${arm_THUMB_SOURCES }
358+ set (armv7em_SOURCES ${arm_GENERIC_SOURCES}    ${arm_THUMB_SOURCES }
351359
352360set (mips_SOURCES ${GENERIC_SOURCES} )
353361set (mipsel_SOURCES ${mips_SOURCES} )
0 commit comments