xref: /optee_os/lib/libutils/isoc/arch/arm/sub.mk (revision ef3bc69c72b8d46493eab724eab6e018423088e1)
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
10# We would not like to profile __aeabi functions as these provide
11# internal implementations for "/ %" operations. Also, "/ %" operations
12# could be used inside profiling code which could create an incorrect
13# cyclic behaviour.
14cflags-remove-arm32_aeabi_divmod.c-y += -pg
15cflags-remove-arm32_aeabi_ldivmod.c-y += -pg
16cflags-remove-arm32_aeabi_shift.c-y += -pg
17
18srcs-$(CFG_ARM32_$(sm)) += setjmp_a32.S
19srcs-$(CFG_ARM64_$(sm)) += setjmp_a64.S
20
21ifeq ($(CFG_TA_FLOAT_SUPPORT),y)
22# Floating point is only supported for user TAs
23ifneq ($(sm),core)
24srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_softfloat.c
25cflags-arm32_aeabi_softfloat.c-y += -Wno-aggregate-return
26cflags-arm32_aeabi_softfloat.c-y += -Wno-missing-prototypes
27cflags-arm32_aeabi_softfloat.c-y += -Wno-missing-declarations
28subdirs-$(CFG_ARM32_$(sm)) += softfloat
29endif
30endif
31