msm8660: Add neon based pow() function for Scorpion
Add #define to enable neon based pow() function for msm8660.
(cherry picked from commit f795151ff5dc4eb622b2630cb6f42353db4a1b55)
Change-Id: Iab0f30eb0583c30bcfd6940a23f47e98ffe075df
diff --git a/libm/Android.mk b/libm/Android.mk
index 6cf2342..205c813 100644
--- a/libm/Android.mk
+++ b/libm/Android.mk
@@ -178,6 +178,12 @@
libm_common_cflags += -DSPARROW_NEON_OPTIMIZATION
endif
+ ifeq ($(TARGET_USE_SCORPION_BIONIC_OPTIMIZATION),true)
+ libm_common_src_files += \
+ arm/e_pow.S
+ libm_common_cflags += -DSCORPION_NEON_OPTIMIZATION
+ endif
+
libm_common_includes = $(LOCAL_PATH)/arm
else
libm_common_src_files += \
diff --git a/libm/src/e_pow.c b/libm/src/e_pow.c
index b0a3f53..bd82f30 100644
--- a/libm/src/e_pow.c
+++ b/libm/src/e_pow.c
@@ -61,7 +61,7 @@
#include "math.h"
#include "math_private.h"
-#if defined(KRAIT_NEON_OPTIMIZATION) || defined(SPARROW_NEON_OPTIMIZATION)
+#if defined(KRAIT_NEON_OPTIMIZATION) || defined(SPARROW_NEON_OPTIMIZATION) || defined(SCORPION_NEON_OPTIMIZATION)
#if defined(KRAIT_NO_AAPCS_VFP_MODE)
double pow_neon(double x, double y);
#else
@@ -229,7 +229,7 @@
t1 = u+v;
SET_LOW_WORD(t1,0);
t2 = v-(t1-u);
-#if defined(KRAIT_NEON_OPTIMIZATION) || defined(SPARROW_NEON_OPTIMIZATION)
+#if defined(KRAIT_NEON_OPTIMIZATION) || defined(SPARROW_NEON_OPTIMIZATION) || defined(SCORPION_NEON_OPTIMIZATION)
} else if (ix <= 0x40100000 && iy <= 0x40100000 && hy > 0 && hx > 0) {
#if defined(KRAIT_NO_AAPCS_VFP_MODE)
return pow_neon(x,y);