arm: add softfp support in zgemm/ztrmm vfp kernels
This commit is contained in:
parent
305cd2e8b4
commit
97d671eb61
|
@ -96,25 +96,20 @@ DGEMMOTCOPY = ../generic/gemm_tcopy_2.c
|
|||
DGEMMONCOPYOBJ = dgemm_oncopy.o
|
||||
DGEMMOTCOPYOBJ = dgemm_otcopy.o
|
||||
|
||||
STRMMKERNEL = strmm_kernel_4x2_vfp.S
|
||||
DTRMMKERNEL = dtrmm_kernel_4x2_vfp.S
|
||||
CTRMMKERNEL = ctrmm_kernel_2x2_vfp.S
|
||||
|
||||
CGEMMKERNEL = cgemm_kernel_2x2_vfp.S
|
||||
CGEMMONCOPY = cgemm_ncopy_2_vfp.S
|
||||
CGEMMOTCOPY = cgemm_tcopy_2_vfp.S
|
||||
CGEMMONCOPYOBJ = cgemm_oncopy.o
|
||||
CGEMMOTCOPYOBJ = cgemm_otcopy.o
|
||||
|
||||
ZGEMMKERNEL = zgemm_kernel_2x2_vfp.S
|
||||
ZGEMMONCOPY = zgemm_ncopy_2_vfp.S
|
||||
ZGEMMOTCOPY = zgemm_tcopy_2_vfp.S
|
||||
ZGEMMONCOPYOBJ = zgemm_oncopy.o
|
||||
ZGEMMOTCOPYOBJ = zgemm_otcopy.o
|
||||
|
||||
ifeq ($(ARM_ABI),hard)
|
||||
|
||||
STRMMKERNEL = strmm_kernel_4x2_vfp.S
|
||||
DTRMMKERNEL = dtrmm_kernel_4x2_vfp.S
|
||||
CTRMMKERNEL = ctrmm_kernel_2x2_vfp.S
|
||||
ZTRMMKERNEL = ztrmm_kernel_2x2_vfp.S
|
||||
|
||||
ZGEMMKERNEL = zgemm_kernel_2x2_vfp.S
|
||||
|
||||
endif
|
||||
|
|
|
@ -8,10 +8,6 @@ ZNRM2KERNEL = nrm2_vfpv3.S
|
|||
SGEMVNKERNEL = gemv_n_vfpv3.S
|
||||
DGEMVNKERNEL = gemv_n_vfpv3.S
|
||||
|
||||
STRMMKERNEL = strmm_kernel_4x4_vfpv3.S
|
||||
DTRMMKERNEL = dtrmm_kernel_4x4_vfpv3.S
|
||||
CTRMMKERNEL = ctrmm_kernel_2x2_vfpv3.S
|
||||
|
||||
SGEMMKERNEL = sgemm_kernel_4x4_vfpv3.S
|
||||
SGEMMONCOPY = sgemm_ncopy_4_vfp.S
|
||||
SGEMMOTCOPY = sgemm_tcopy_4_vfp.S
|
||||
|
@ -25,11 +21,10 @@ DGEMMONCOPYOBJ = dgemm_oncopy.o
|
|||
DGEMMOTCOPYOBJ = dgemm_otcopy.o
|
||||
|
||||
CGEMMKERNEL = cgemm_kernel_2x2_vfpv3.S
|
||||
|
||||
ifeq ($(ARM_ABI),hard)
|
||||
|
||||
ZTRMMKERNEL = ztrmm_kernel_2x2_vfpv3.S
|
||||
|
||||
ZGEMMKERNEL = zgemm_kernel_2x2_vfpv3.S
|
||||
|
||||
endif
|
||||
STRMMKERNEL = strmm_kernel_4x4_vfpv3.S
|
||||
DTRMMKERNEL = dtrmm_kernel_4x4_vfpv3.S
|
||||
CTRMMKERNEL = ctrmm_kernel_2x2_vfpv3.S
|
||||
ZTRMMKERNEL = ztrmm_kernel_2x2_vfpv3.S
|
||||
|
||||
|
|
|
@ -64,9 +64,18 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
#define ALPHA_I [fp, #-272]
|
||||
#define ALPHA_R [fp, #-280]
|
||||
|
||||
#if !defined(__ARM_PCS_VFP)
|
||||
#define OLD_ALPHAR_SOFTFP [fp, #4]
|
||||
#define OLD_ALPHAI_SOFTFP [fp, #12]
|
||||
#define OLD_A_SOFTFP [fp, #20 ]
|
||||
#define B [fp, #24 ]
|
||||
#define C [fp, #28 ]
|
||||
#define OLD_LDC [fp, #32 ]
|
||||
#else
|
||||
#define B [fp, #4 ]
|
||||
#define C [fp, #8 ]
|
||||
#define OLD_LDC [fp, #12 ]
|
||||
#endif
|
||||
|
||||
#define I r0
|
||||
#define J r1
|
||||
|
@ -863,6 +872,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
add fp, sp, #24
|
||||
sub sp, sp, #STACKSIZE // reserve stack
|
||||
|
||||
#if !defined(__ARM_PCS_VFP)
|
||||
vldr OLD_ALPHA_R, OLD_ALPHAR_SOFTFP
|
||||
vldr OLD_ALPHA_I, OLD_ALPHAI_SOFTFP
|
||||
ldr OLD_A, OLD_A_SOFTFP
|
||||
#endif
|
||||
str OLD_M, M
|
||||
str OLD_N, N
|
||||
str OLD_K, K
|
||||
|
|
|
@ -80,9 +80,18 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
#define ALPHA_I [fp, #-272]
|
||||
#define ALPHA_R [fp, #-280]
|
||||
|
||||
#if !defined(__ARM_PCS_VFP)
|
||||
#define OLD_ALPHAR_SOFTFP [fp, #4]
|
||||
#define OLD_ALPHAI_SOFTFP [fp, #12]
|
||||
#define OLD_A_SOFTFP [fp, #20 ]
|
||||
#define B [fp, #24 ]
|
||||
#define C [fp, #28 ]
|
||||
#define OLD_LDC [fp, #32 ]
|
||||
#else
|
||||
#define B [fp, #4 ]
|
||||
#define C [fp, #8 ]
|
||||
#define OLD_LDC [fp, #12 ]
|
||||
#endif
|
||||
|
||||
#define I r0
|
||||
#define J r1
|
||||
|
@ -909,6 +918,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
add fp, sp, #24
|
||||
sub sp, sp, #STACKSIZE // reserve stack
|
||||
|
||||
#if !defined(__ARM_PCS_VFP)
|
||||
vldr OLD_ALPHA_R, OLD_ALPHAR_SOFTFP
|
||||
vldr OLD_ALPHA_I, OLD_ALPHAI_SOFTFP
|
||||
ldr OLD_A, OLD_A_SOFTFP
|
||||
#endif
|
||||
str OLD_M, M
|
||||
str OLD_N, N
|
||||
str OLD_K, K
|
||||
|
|
|
@ -66,10 +66,20 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
#define ALPHA_I [fp, #-272]
|
||||
#define ALPHA_R [fp, #-280]
|
||||
|
||||
#if !defined(__ARM_PCS_VFP)
|
||||
#define OLD_ALPHAR_SOFTFP [fp, #4]
|
||||
#define OLD_ALPHAI_SOFTFP [fp, #12]
|
||||
#define OLD_A_SOFTFP [fp, #20 ]
|
||||
#define B [fp, #24 ]
|
||||
#define C [fp, #28 ]
|
||||
#define OLD_LDC [fp, #32 ]
|
||||
#define OFFSET [fp, #36 ]
|
||||
#else
|
||||
#define B [fp, #4 ]
|
||||
#define C [fp, #8 ]
|
||||
#define OLD_LDC [fp, #12 ]
|
||||
#define OFFSET [fp, #16 ]
|
||||
#endif
|
||||
|
||||
#define I r0
|
||||
#define J r1
|
||||
|
@ -882,6 +892,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
add fp, sp, #24
|
||||
sub sp, sp, #STACKSIZE // reserve stack
|
||||
|
||||
#if !defined(__ARM_PCS_VFP)
|
||||
vldr OLD_ALPHA_R, OLD_ALPHAR_SOFTFP
|
||||
vldr OLD_ALPHA_I, OLD_ALPHAI_SOFTFP
|
||||
ldr OLD_A, OLD_A_SOFTFP
|
||||
#endif
|
||||
str OLD_M, M
|
||||
str OLD_N, N
|
||||
str OLD_K, K
|
||||
|
|
|
@ -66,10 +66,20 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
#define ALPHA_I [fp, #-272]
|
||||
#define ALPHA_R [fp, #-280]
|
||||
|
||||
#if !defined(__ARM_PCS_VFP)
|
||||
#define OLD_ALPHAR_SOFTFP [fp, #4]
|
||||
#define OLD_ALPHAI_SOFTFP [fp, #12]
|
||||
#define OLD_A_SOFTFP [fp, #20 ]
|
||||
#define B [fp, #24 ]
|
||||
#define C [fp, #28 ]
|
||||
#define OLD_LDC [fp, #32 ]
|
||||
#define OFFSET [fp, #36 ]
|
||||
#else
|
||||
#define B [fp, #4 ]
|
||||
#define C [fp, #8 ]
|
||||
#define OLD_LDC [fp, #12 ]
|
||||
#define OFFSET [fp, #16 ]
|
||||
#endif
|
||||
|
||||
#define I r0
|
||||
#define J r1
|
||||
|
@ -883,6 +893,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
add fp, sp, #24
|
||||
sub sp, sp, #STACKSIZE // reserve stack
|
||||
|
||||
#if !defined(__ARM_PCS_VFP)
|
||||
vldr OLD_ALPHA_R, OLD_ALPHAR_SOFTFP
|
||||
vldr OLD_ALPHA_I, OLD_ALPHAI_SOFTFP
|
||||
ldr OLD_A, OLD_A_SOFTFP
|
||||
#endif
|
||||
str OLD_M, M
|
||||
str OLD_N, N
|
||||
str OLD_K, K
|
||||
|
|
Loading…
Reference in New Issue