| # These files implements the__aeabi functions we need instead of |
| # relying on libgcc or equivalent as we need implementations suitable |
| # for bare metal. |
| srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_divmod_a32.S |
| srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_divmod.c |
| srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_ldivmod_a32.S |
| srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_ldivmod.c |
| srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_shift.c |
| |
| ifeq ($(CFG_ULIBS_MCOUNT),y) |
| # We would not like to profile __aeabi functions as these provide |
| # internal implementations for "/ %" operations. Also, "/ %" operations |
| # could be used inside profiling code which could create an incorrect |
| # cyclic behaviour. |
| cflags-remove-arm32_aeabi_divmod.c-y += -pg |
| cflags-remove-arm32_aeabi_ldivmod.c-y += -pg |
| cflags-remove-arm32_aeabi_shift.c-y += -pg |
| endif |
| |
| srcs-$(CFG_ARM32_$(sm)) += setjmp_a32.S |
| srcs-$(CFG_ARM64_$(sm)) += setjmp_a64.S |
| |
| ifeq ($(CFG_TA_FLOAT_SUPPORT),y) |
| # Floating point is only supported for user TAs |
| ifneq ($(sm),core) |
| srcs-$(CFG_ARM32_$(sm)) += arm32_aeabi_softfloat.c |
| cflags-arm32_aeabi_softfloat.c-y += -Wno-aggregate-return |
| cflags-arm32_aeabi_softfloat.c-y += -Wno-missing-prototypes |
| cflags-arm32_aeabi_softfloat.c-y += -Wno-missing-declarations |
| subdirs-$(CFG_ARM32_$(sm)) += softfloat |
| endif |
| endif |