CNRM2KERNEL = nrm2_vfp.S
ZNRM2KERNEL = nrm2_vfp.S
+SSWAPKERNEL = swap_vfp.S
+DSWAPKERNEL = swap_vfp.S
+CSWAPKERNEL = swap_vfp.S
+ZSWAPKERNEL = swap_vfp.S
+
SGEMMKERNEL = ../generic/gemmkernel_4x2.c
ifneq ($(SGEMM_UNROLL_M), $(SGEMM_UNROLL_N))
SGEMMINCOPY = sgemm_ncopy_4_vfp.S
ifeq ($(ARM_ABI),hard)
-SSWAPKERNEL = swap_vfp.S
-DSWAPKERNEL = swap_vfp.S
-CSWAPKERNEL = swap_vfp.S
-ZSWAPKERNEL = swap_vfp.S
-
SGEMVNKERNEL = gemv_n_vfp.S
DGEMVNKERNEL = gemv_n_vfp.S
CGEMVNKERNEL = cgemv_n_vfp.S
#define STACKSIZE 256
+#if !defined(__ARM_PCS_VFP)
+
+#if !defined(COMPLEX)
+
+#if !defined(DOUBLE)
+#define OLD_X [fp, #0 ]
+#define OLD_INC_X [fp, #4 ]
+#define OLD_Y [fp, #8 ]
+#define OLD_INC_Y [fp, #12 ]
+#else
+#define OLD_X [fp, #8 ]
+#define OLD_INC_X [fp, #12]
+#define OLD_Y [fp, #16]
+#define OLD_INC_Y [fp, #20]
+#endif
+
+#else //COMPLEX
+
+#if !defined(DOUBLE)
+#define OLD_X [fp, #4 ]
+#define OLD_INC_X [fp, #8 ]
+#define OLD_Y [fp, #12 ]
+#define OLD_INC_Y [fp, #16 ]
+#else
+#define OLD_X [fp, #16]
+#define OLD_INC_X [fp, #20]
+#define OLD_Y [fp, #24]
+#define OLD_INC_Y [fp, #28]
+#endif
+
+#endif // !defined(__ARM_PCS_VFP)
+
+#else
#define OLD_INC_X [fp, #0 ]
#define OLD_Y [fp, #4 ]
#define OLD_INC_Y [fp, #8 ]
+#endif
#define N r0
push {r4 , fp}
add fp, sp, #8
+#if !defined(__ARM_PCS_VFP)
+ ldr X, OLD_X
+#endif
ldr INC_X , OLD_INC_X
ldr Y, OLD_Y
ldr INC_Y , OLD_INC_Y