From 63a7d7fb2427c7dd4f3c01720b0636ede0260665 Mon Sep 17 00:00:00 2001 From: Werner Saar Date: Mon, 25 Jan 2016 15:00:13 +0100 Subject: [PATCH] updated gemv_n_vfpv3.S for armv7 --- kernel/arm/KERNEL.ARMV7 | 12 ++---------- kernel/arm/gemv_n_vfpv3.S | 24 ++++++++++++++++-------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/kernel/arm/KERNEL.ARMV7 b/kernel/arm/KERNEL.ARMV7 index 18231b966..d5cd94fbd 100644 --- a/kernel/arm/KERNEL.ARMV7 +++ b/kernel/arm/KERNEL.ARMV7 @@ -72,8 +72,8 @@ DSCALKERNEL = scal.c CSCALKERNEL = zscal.c ZSCALKERNEL = zscal.c -SGEMVNKERNEL = gemv_n_vfp.S -DGEMVNKERNEL = gemv_n_vfp.S +SGEMVNKERNEL = gemv_n_vfpv3.S +DGEMVNKERNEL = gemv_n_vfpv3.S CGEMVNKERNEL = cgemv_n_vfp.S ZGEMVNKERNEL = zgemv_n_vfp.S @@ -88,22 +88,14 @@ CTRMMKERNEL = ctrmm_kernel_2x2_vfpv3.S ZTRMMKERNEL = ztrmm_kernel_2x2_vfpv3.S SGEMMKERNEL = sgemm_kernel_4x4_vfpv3.S -SGEMMINCOPY = -SGEMMITCOPY = SGEMMONCOPY = sgemm_ncopy_4_vfp.S SGEMMOTCOPY = sgemm_tcopy_4_vfp.S -SGEMMINCOPYOBJ = -SGEMMITCOPYOBJ = SGEMMONCOPYOBJ = sgemm_oncopy.o SGEMMOTCOPYOBJ = sgemm_otcopy.o DGEMMKERNEL = dgemm_kernel_4x4_vfpv3.S -DGEMMINCOPY = -DGEMMITCOPY = DGEMMONCOPY = dgemm_ncopy_4_vfp.S DGEMMOTCOPY = dgemm_tcopy_4_vfp.S -DGEMMINCOPYOBJ = -DGEMMITCOPYOBJ = DGEMMONCOPYOBJ = dgemm_oncopy.o DGEMMOTCOPYOBJ = dgemm_otcopy.o diff --git a/kernel/arm/gemv_n_vfpv3.S b/kernel/arm/gemv_n_vfpv3.S index 0e9ba0c9c..e7938e81c 100644 --- a/kernel/arm/gemv_n_vfpv3.S +++ b/kernel/arm/gemv_n_vfpv3.S @@ -62,6 +62,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define M [fp, #-252 ] #define A [fp, #-256 ] +#define FP_ZERO [fp, #-228] +#define FP_ZERO_0 [fp, #-228] +#define FP_ZERO_1 [fp, #-224] + #define X_PRE 64 #define Y_PRE 0 @@ -79,7 +83,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. pld [ YO , #Y_PRE ] pld [ YO , #Y_PRE+32 ] - vsub.f64 d24 , d24 , d24 + fldd d24 , FP_ZERO vmov.f64 d25 , d24 vmov.f64 d26 , d24 vmov.f64 d27 , d24 @@ -147,7 +151,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_F1 - vsub.f64 d24 , d24 , d24 + fldd d24 , FP_ZERO .endm @@ -175,7 +179,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S8 - vsub.f64 d24 , d24 , d24 + fldd d24 , FP_ZERO vmov.f64 d25 , d24 vmov.f64 d26 , d24 vmov.f64 d27 , d24 @@ -269,7 +273,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S1 - vsub.f64 d24 , d24 , d24 + fldd d24 , FP_ZERO .endm @@ -302,7 +306,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. pld [ YO , #Y_PRE ] - vsub.f32 s24 , s24 , s24 + flds s24 , FP_ZERO vmov.f32 s25 , s24 vmov.f32 s26 , s24 vmov.f32 s27 , s24 @@ -368,7 +372,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_F1 - vsub.f32 s24 , s24 , s24 + flds s24 , FP_ZERO .endm @@ -396,7 +400,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S8 - vsub.f32 s24 , s24 , s24 + flds s24 , FP_ZERO vmov.f32 s25 , s24 vmov.f32 s26 , s24 vmov.f32 s27 , s24 @@ -489,7 +493,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S1 - vsub.f32 s24 , s24 , s24 + flds s24 , FP_ZERO .endm @@ -538,6 +542,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. vstm r12, { s8 - s31 } // store floating point registers #endif + movs r12, #0 + str r12, FP_ZERO + str r12, FP_ZERO_1 + cmp OLD_M, #0 ble gemvn_kernel_L999