1# These files implements the__aeabi functions we need instead of
2# relying on libgcc or equivalent as we need implementations suitable
3# for bare metal.
4srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_divmod_a32.S
5srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_divmod.c
6srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_ldivmod_a32.S
7srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_ldivmod.c
8srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_shift.c
9
10ifeq ($(CFG_ULIBS_MCOUNT),y)
11# We would not like to profile __aeabi functions as these provide
12# internal implementations for "/ %" operations. Also, "/ %" operations
13# could be used inside profiling code which could create an incorrect
14# cyclic behaviour.
15cflags-remove-arm32_aeabi_divmod.c-y += -pg
16cflags-remove-arm32_aeabi_ldivmod.c-y += -pg
17cflags-remove-arm32_aeabi_shift.c-y += -pg
18endif
19
20srcs-$(CFG_ARM32_$(sm)) += setjmp_a32.S
21srcs-$(CFG_ARM64_$(sm)) += setjmp_a64.S
22
23ifeq ($(CFG_TA_FLOAT_SUPPORT),y)
24# Floating point is only supported for user TAs
25ifneq ($(sm),core)
26srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_softfloat.c
27cflags-arm32_aeabi_softfloat.c-y += -Wno-aggregate-return
28cflags-arm32_aeabi_softfloat.c-y += -Wno-missing-prototypes
29cflags-arm32_aeabi_softfloat.c-y += -Wno-missing-declarations
30subdirs-$(CFG_ARM32_$(sm)) += softfloat
31endif
32endif
33