From 22e36b0e5285778c14d108a40007c7297ff4146a Mon Sep 17 00:00:00 2001 From: Pracheer Date: Fri, 28 Mar 2014 11:32:50 +0530 Subject: libc: Add cortex-a53 bionic code Add cortex-a53 makefile. Currently it uses cortex-a15 bionic code. Change-Id: I1401b54b6c61d17782dff827d69f92b35a4f5c4f --- libc/arch-arm/cortex-a53/cortex-a53.mk | 1 + 1 file changed, 1 insertion(+) create mode 100644 libc/arch-arm/cortex-a53/cortex-a53.mk diff --git a/libc/arch-arm/cortex-a53/cortex-a53.mk b/libc/arch-arm/cortex-a53/cortex-a53.mk new file mode 100644 index 000000000..9af03d94b --- /dev/null +++ b/libc/arch-arm/cortex-a53/cortex-a53.mk @@ -0,0 +1 @@ +include bionic/libc/arch-arm/cortex-a15/cortex-a15.mk -- cgit v1.2.3 From 75c7ca34825cbbcaf250caeb1e6821c59c739aa2 Mon Sep 17 00:00:00 2001 From: Pracheer Date: Fri, 28 Mar 2014 17:51:17 +0530 Subject: msm8916: Enable QCOM bionic optimizations Enable QCOM bionic optimizations for 8916. Define QCOM_NEON_OPTIMIZATION for using QCOM specific bionic optimizations. Change-Id: I77cb7380ed2eed42a94cdf8f2ff04e800ff75092 --- libm/Android.mk | 9 +++++---- libm/upstream-freebsd/lib/msun/src/e_pow.c | 2 +- libm/upstream-freebsd/lib/msun/src/k_cos.c | 2 +- libm/upstream-freebsd/lib/msun/src/k_sin.c | 2 +- libm/upstream-freebsd/lib/msun/src/math_private.h | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/libm/Android.mk b/libm/Android.mk index 85210bd2e..b6ccc4c2f 100644 --- a/libm/Android.mk +++ b/libm/Android.mk @@ -213,7 +213,7 @@ libm_common_src_files += fake_long_double.c # TODO: re-enable i387/e_sqrtf.S for x86, and maybe others. -libm_common_cflags := -DFLT_EVAL_METHOD=0 +libm_common_cflags += -DFLT_EVAL_METHOD=0 libm_common_includes := $(LOCAL_PATH)/upstream-freebsd/lib/msun/src/ libm_arm_includes := $(LOCAL_PATH)/arm @@ -225,7 +225,7 @@ ifeq ($(TARGET_CPU_VARIANT),krait) arm/s_sin.S \ arm/e_sqrtf.S \ arm/e_sqrt.S - libm_arm_cflags += -DKRAIT_NEON_OPTIMIZATION -fno-if-conversion + libm_arm_cflags += -DQCOM_NEON_OPTIMIZATION -fno-if-conversion else ifeq ($(TARGET_USE_QCOM_BIONIC_OPTIMIZATION),true) libm_arm_src_files += \ @@ -234,16 +234,17 @@ else arm/s_sin.S \ arm/e_sqrtf.S \ arm/e_sqrt.S - libm_arm_cflags += -DKRAIT_NEON_OPTIMIZATION -fno-if-conversion + libm_arm_cflags += -DQCOM_NEON_OPTIMIZATION -fno-if-conversion else libm_common_src_files += \ upstream-freebsd/lib/msun/src/s_cos.c \ upstream-freebsd/lib/msun/src/s_sin.c \ upstream-freebsd/lib/msun/src/e_sqrtf.c \ upstream-freebsd/lib/msun/src/e_sqrt.c - endif + endif endif + libm_x86_includes := $(LOCAL_PATH)/i386 $(LOCAL_PATH)/i387 libm_x86_src_files := i387/fenv.c diff --git a/libm/upstream-freebsd/lib/msun/src/e_pow.c b/libm/upstream-freebsd/lib/msun/src/e_pow.c index 917e80baf..d9f278f05 100644 --- a/libm/upstream-freebsd/lib/msun/src/e_pow.c +++ b/libm/upstream-freebsd/lib/msun/src/e_pow.c @@ -94,7 +94,7 @@ ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ double -#if defined(KRAIT_NEON_OPTIMIZATION) || defined(SPARROW_NEON_OPTIMIZATION) +#if defined(KRAIT_NEON_OPTIMIZATION) || defined(QCOM_NEON_OPTIMIZATION) __full_ieee754_pow(double x, double y) #else __ieee754_pow(double x, double y) diff --git a/libm/upstream-freebsd/lib/msun/src/k_cos.c b/libm/upstream-freebsd/lib/msun/src/k_cos.c index a7eab7b13..6037e0dc0 100644 --- a/libm/upstream-freebsd/lib/msun/src/k_cos.c +++ b/libm/upstream-freebsd/lib/msun/src/k_cos.c @@ -68,7 +68,7 @@ C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ double __kernel_cos(double x, double y) { -#if defined(KRAIT_NEON_OPTIMIZATION) +#if defined(KRAIT_NEON_OPTIMIZATION) || defined(QCOM_NEON_OPTIMIZATION) double hz,z,zz,r,w,k; z = x*x; diff --git a/libm/upstream-freebsd/lib/msun/src/k_sin.c b/libm/upstream-freebsd/lib/msun/src/k_sin.c index 85063914a..afd2da897 100644 --- a/libm/upstream-freebsd/lib/msun/src/k_sin.c +++ b/libm/upstream-freebsd/lib/msun/src/k_sin.c @@ -59,7 +59,7 @@ S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ double __kernel_sin(double x, double y, int iy) { -#if defined(KRAIT_NEON_OPTIMIZATION) +#if defined(KRAIT_NEON_OPTIMIZATION) || defined(QCOM_NEON_OPTIMIZATION) double z,zz,r,v; z = x*x; diff --git a/libm/upstream-freebsd/lib/msun/src/math_private.h b/libm/upstream-freebsd/lib/msun/src/math_private.h index a079cc0de..58213495a 100644 --- a/libm/upstream-freebsd/lib/msun/src/math_private.h +++ b/libm/upstream-freebsd/lib/msun/src/math_private.h @@ -723,7 +723,7 @@ irintl(long double x) #define __ieee754_remainderf remainderf #define __ieee754_scalbf scalbf -#if defined(KRAIT_NEON_OPTIMIZATION) +#if defined(KRAIT_NEON_OPTIMIZATION) || defined(QCOM_NEON_OPTIMIZATION) int __kernel_rem_pio2(double*,double*,int,int,int) __attribute__((pcs("aapcs-vfp"))); double __full_ieee754_pow(double,double); #ifndef INLINE_REM_PIO2 -- cgit v1.2.3 From 1f5706c7eb8aacb76fdfa3ef03944be229510b66 Mon Sep 17 00:00:00 2001 From: Xin Qi Date: Mon, 16 Jun 2014 12:02:09 -0700 Subject: Use memmove from krait for cortex-a53 target Other functions are still as from cortex-a15 as originally configured. Change-Id: If69348fc2c52cd04536e67a6aa650743459d75d4 --- libc/arch-arm/cortex-a53/cortex-a53.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libc/arch-arm/cortex-a53/cortex-a53.mk b/libc/arch-arm/cortex-a53/cortex-a53.mk index 9af03d94b..62c127669 100644 --- a/libc/arch-arm/cortex-a53/cortex-a53.mk +++ b/libc/arch-arm/cortex-a53/cortex-a53.mk @@ -1 +1,4 @@ +$(call libc-add-cpu-variant-src,MEMMOVE,arch-arm/krait/bionic/memmove.S) +$(call libc-add-cpu-variant-src,BCOPY,) + include bionic/libc/arch-arm/cortex-a15/cortex-a15.mk -- cgit v1.2.3