arm: add softfp support in kernel/arm/swap_vfp.S
authorAshwin Sekhar T K <ashwin.sekhar@cavium.com>
Sat, 1 Jul 2017 15:07:40 +0000 (20:37 +0530)
committerAshwin Sekhar T K <ashwin.sekhar@cavium.com>
Sat, 1 Jul 2017 15:07:40 +0000 (20:37 +0530)
kernel/arm/KERNEL.ARMV6
kernel/arm/swap_vfp.S

index be51e83..86d3dab 100644 (file)
@@ -57,6 +57,11 @@ DNRM2KERNEL  = nrm2_vfp.S
 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
@@ -96,11 +101,6 @@ ZGEMMOTCOPYOBJ = zgemm_otcopy.o
 
 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
index 3528751..76661da 100644 (file)
@@ -38,9 +38,43 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #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
@@ -229,6 +263,9 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        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