bionic: add support for non-NEON memcpy() on NEON SoCs
Some SoCs that support NEON nevertheless perform better with a non-NEON than a NEON memcpy(). This patch adds build variable ARCH_ARM_USE_NON_NEON_MEMCPY, which can be set in BoardConfig.mk. When ARCH_ARM_USE_NON_NEON_MEMCPY is defined, we compile in the non-NEON optimized memcpy() even if the SoC supports NEON. Change-Id: Ia0e5bee6bad5880ffc5ff8f34a1382d567546cf9
This commit is contained in:

committed by
Iliyan Malchev

parent
08b51e2c09
commit
08e72d0161
@@ -478,6 +478,9 @@ ifeq ($(TARGET_ARCH),arm)
|
|||||||
ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
|
ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
|
||||||
libc_common_cflags += -DHAVE_ARM_TLS_REGISTER
|
libc_common_cflags += -DHAVE_ARM_TLS_REGISTER
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(ARCH_ARM_USE_NON_NEON_MEMCPY),true)
|
||||||
|
libc_common_cflags += -DARCH_ARM_USE_NON_NEON_MEMCPY
|
||||||
|
endif
|
||||||
else # !arm
|
else # !arm
|
||||||
ifeq ($(TARGET_ARCH),x86)
|
ifeq ($(TARGET_ARCH),x86)
|
||||||
libc_crt_target_cflags :=
|
libc_crt_target_cflags :=
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
#include <machine/cpu-features.h>
|
#include <machine/cpu-features.h>
|
||||||
#include <machine/asm.h>
|
#include <machine/asm.h>
|
||||||
|
|
||||||
#if defined(__ARM_NEON__)
|
#if defined(__ARM_NEON__) && !defined(ARCH_ARM_USE_NON_NEON_MEMCPY)
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.fpu neon
|
.fpu neon
|
||||||
|
Reference in New Issue
Block a user