diff options
author | Ashwin Sekhar T K <ashwin.sekhar@cavium.com> | 2017-07-01 19:57:28 +0530 |
---|---|---|
committer | Ashwin Sekhar T K <ashwin.sekhar@cavium.com> | 2017-07-01 19:57:28 +0530 |
commit | e25f4c01d60b76ab97252e475abfb8fa7e65c0f9 (patch) | |
tree | a9d415b2ddd911d29d6d9c2a59108712c788c3ad | |
parent | 54915ce343dba7e00dba21c73b9fd35bcded0de3 (diff) | |
download | openblas-e25f4c01d60b76ab97252e475abfb8fa7e65c0f9.tar.gz openblas-e25f4c01d60b76ab97252e475abfb8fa7e65c0f9.tar.bz2 openblas-e25f4c01d60b76ab97252e475abfb8fa7e65c0f9.zip |
arm: add softfp support in kernel/arm/nrm2_vfp*.S
-rw-r--r-- | kernel/arm/KERNEL.ARMV6 | 10 | ||||
-rw-r--r-- | kernel/arm/KERNEL.ARMV7 | 10 | ||||
-rw-r--r-- | kernel/arm/nrm2_vfp.S | 7 | ||||
-rw-r--r-- | kernel/arm/nrm2_vfpv3.S | 9 |
4 files changed, 24 insertions, 12 deletions
diff --git a/kernel/arm/KERNEL.ARMV6 b/kernel/arm/KERNEL.ARMV6 index 022547c9b..be51e83b8 100644 --- a/kernel/arm/KERNEL.ARMV6 +++ b/kernel/arm/KERNEL.ARMV6 @@ -52,6 +52,11 @@ DDOTKERNEL = ddot_vfp.S CDOTKERNEL = cdot_vfp.S ZDOTKERNEL = zdot_vfp.S +SNRM2KERNEL = nrm2_vfp.S +DNRM2KERNEL = nrm2_vfp.S +CNRM2KERNEL = nrm2_vfp.S +ZNRM2KERNEL = nrm2_vfp.S + SGEMMKERNEL = ../generic/gemmkernel_4x2.c ifneq ($(SGEMM_UNROLL_M), $(SGEMM_UNROLL_N)) SGEMMINCOPY = sgemm_ncopy_4_vfp.S @@ -91,11 +96,6 @@ ZGEMMOTCOPYOBJ = zgemm_otcopy.o ifeq ($(ARM_ABI),hard) -SNRM2KERNEL = nrm2_vfp.S -DNRM2KERNEL = nrm2_vfp.S -CNRM2KERNEL = nrm2_vfp.S -ZNRM2KERNEL = nrm2_vfp.S - SSWAPKERNEL = swap_vfp.S DSWAPKERNEL = swap_vfp.S CSWAPKERNEL = swap_vfp.S diff --git a/kernel/arm/KERNEL.ARMV7 b/kernel/arm/KERNEL.ARMV7 index d4829faa3..f4823b70a 100644 --- a/kernel/arm/KERNEL.ARMV7 +++ b/kernel/arm/KERNEL.ARMV7 @@ -1,5 +1,10 @@ include $(KERNELDIR)/KERNEL.ARMV6 +SNRM2KERNEL = nrm2_vfpv3.S +DNRM2KERNEL = nrm2_vfpv3.S +CNRM2KERNEL = nrm2_vfpv3.S +ZNRM2KERNEL = nrm2_vfpv3.S + STRMMKERNEL = ../generic/trmmkernel_4x4.c DTRMMKERNEL = ../generic/trmmkernel_4x4.c @@ -17,11 +22,6 @@ DGEMMOTCOPYOBJ = dgemm_otcopy.o ifeq ($(ARM_ABI),hard) -SNRM2KERNEL = nrm2_vfpv3.S -DNRM2KERNEL = nrm2_vfpv3.S -CNRM2KERNEL = nrm2_vfpv3.S -ZNRM2KERNEL = nrm2_vfpv3.S - SGEMVNKERNEL = gemv_n_vfpv3.S DGEMVNKERNEL = gemv_n_vfpv3.S diff --git a/kernel/arm/nrm2_vfp.S b/kernel/arm/nrm2_vfp.S index b3bd28152..16ac5a632 100644 --- a/kernel/arm/nrm2_vfp.S +++ b/kernel/arm/nrm2_vfp.S @@ -574,6 +574,13 @@ nrm2_kernel_L999: vsqrt.f32 s1, s1 vmul.f32 s0, s0, s1 #endif +#if !defined(__ARM_PCS_VFP) +#if !defined(DOUBLE) + vmov r0, s0 +#else + vmov r0, r1, d0 +#endif +#endif bx lr diff --git a/kernel/arm/nrm2_vfpv3.S b/kernel/arm/nrm2_vfpv3.S index 7af966895..84977901d 100644 --- a/kernel/arm/nrm2_vfpv3.S +++ b/kernel/arm/nrm2_vfpv3.S @@ -503,8 +503,13 @@ nrm2_kernel_L999: #else vsqrt.f32 s1, s1 vmul.f32 s0, s0, s1 -#ifdef ARM_SOFTFP_ABI - vmov r0, s0 +#endif + +#if !defined(__ARM_PCS_VFP) +#if defined(DOUBLE) + vmov r0, r1, d0 +#else + vmov r0, s0 #endif #endif |