-ifeq logical or
+#ifeq logical or
ifeq ($(CORE), $(filter $(CORE),CORTEXA9 CORTEXA15))
ifeq ($(OSNAME), Android)
CCOMMON_OPT += -mfpu=neon -march=armv7-a
ifeq ($(CORE), ARMV7)
ifeq ($(OSNAME), Android)
-ifeq ($(ARM_SOFTFP), 1)
+ifeq ($(ARM_SOFTFP_ABI), 1)
CCOMMON_OPT += -mfpu=neon -march=armv7-a
FCOMMON_OPT += -mfpu=neon -march=armv7-a
else
-CCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a -Wl,--no-warn-mismatch
-FCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a -Wl,--no-warn-mismatch
+CCOMMON_OPT += -mfpu=neon -march=armv7-a -Wl,--no-warn-mismatch
+FCOMMON_OPT += -mfpu=neon -march=armv7-a -Wl,--no-warn-mismatch
endif
else
CCOMMON_OPT += -mfpu=vfpv3 -march=armv7-a
CCOMMON_OPT += -marm
FCOMMON_OPT += -marm
-ifeq ($(ARM_SOFT_FLOAT_ABI), 1)
-CCOMMON_OPT += -mfloat-abi=softfp
-FCOMMON_OPT += -mfloat-abi=softfp
+ifeq ($(ARM_SOFTFP_ABI), 1)
+CCOMMON_OPT += -mfloat-abi=softfp -DARM_SOFTFP_ABI
+FCOMMON_OPT += -mfloat-abi=softfp -DARM_SOFTFP_ABI
else
CCOMMON_OPT += -mfloat-abi=hard
FCOMMON_OPT += -mfloat-abi=hard
#define OLD_M r0
#define OLD_N r1
#define OLD_K r2
+
+#ifdef ARM_SOFTFP_ABI
+#define OLD_ALPHA r3
+//#define OLD_A
+#else //hard
#define OLD_A r3
#define OLD_ALPHA s0
+#endif
/******************************************************
* [fp, #-128] - [fp, #-64] is reserved
#define M [fp, #-256 ]
#define N [fp, #-260 ]
#define K [fp, #-264 ]
+
+#ifndef ARM_SOFTFP_ABI
#define A [fp, #-268 ]
+#endif
#define FP_ZERO [fp, #-240]
#define FP_ZERO_0 [fp, #-240]
#define ALPHA [fp, #-280]
+#ifdef ARM_SOFTFP_ABI
+#define A [fp, #4 ]
+#define B [fp, #8 ]
+#define C [fp, #12 ]
+#define OLD_LDC [fp, #16 ]
+#else //hard
#define B [fp, #4 ]
#define C [fp, #8 ]
#define OLD_LDC [fp, #12 ]
-
+#endif
+
#define I r0
#define J r1
#define L r2
str OLD_M, M
str OLD_N, N
str OLD_K, K
+
+#ifdef ARM_SOFTFP_ABI
+ str OLD_ALPHA, ALPHA
+#else //hard
str OLD_A, A
vstr OLD_ALPHA, ALPHA
-
+#endif
sub r3, fp, #128
vstm r3, { s8 - s31} // store floating point registers