| @@ -1,103 +1,196 @@ | |||||
| ################################################################################# | ################################################################################# | ||||
| ############################################################ | |||||
| # Files already implemented in ARM Assembly for softfp ABI # | |||||
| ############################################################ | |||||
| SAMAXKERNEL = iamax_vfp.S | SAMAXKERNEL = iamax_vfp.S | ||||
| SAMINKERNEL = iamax_vfp.S | |||||
| SMAXKERNEL = iamax_vfp.S | |||||
| SMINKERNEL = iamax_vfp.S | |||||
| ISAMAXKERNEL = iamax_vfp.S | |||||
| ISAMINKERNEL = iamax_vfp.S | |||||
| ISMAXKERNEL = iamax_vfp.S | |||||
| ISMINKERNEL = iamax_vfp.S | |||||
| SSWAPKERNEL = swap_vfp.S | |||||
| SASUMKERNEL = asum_vfp.S | |||||
| SAXPYKERNEL = axpy_vfp.S | |||||
| SDOTKERNEL = sdot_vfp.S | |||||
| SNRM2KERNEL = nrm2_vfpv3.S | |||||
| SROTKERNEL = rot_vfp.S | |||||
| SGEMVNKERNEL = gemv_n_vfpv3.S | |||||
| SGEMVTKERNEL = gemv_t_vfp.S | |||||
| STRMMKERNEL = strmm_kernel_4x4_vfpv3.S | |||||
| SGEMMKERNEL = sgemm_kernel_4x4_vfpv3.S | |||||
| SGEMMONCOPY = sgemm_ncopy_4_vfp.S | |||||
| SGEMMOTCOPY = sgemm_tcopy_4_vfp.S | |||||
| SGEMMONCOPYOBJ = sgemm_oncopy.o | |||||
| SGEMMOTCOPYOBJ = sgemm_otcopy.o | |||||
| ############################################################### | |||||
| # Files yet to be implemented in ARM Assembly for softfp ABI # | |||||
| ############################################################### | |||||
| ifeq ($(ARM_SOFTFP_ABI), 1) | |||||
| DAMAXKERNEL = amax.c | |||||
| CAMAXKERNEL = zamax.c | |||||
| ZAMAXKERNEL = zamax.c | |||||
| DAMINKERNEL = amin.c | |||||
| CAMINKERNEL = zamin.c | |||||
| ZAMINKERNEL = zamin.c | |||||
| DMAXKERNEL = max.c | |||||
| DMINKERNEL = min.c | |||||
| IDAMAXKERNEL = iamax.c | |||||
| ICAMAXKERNEL = izamax.c | |||||
| IZAMAXKERNEL = izamax.c | |||||
| IDAMINKERNEL = iamin.c | |||||
| ICAMINKERNEL = izamin.c | |||||
| IZAMINKERNEL = izamin.c | |||||
| IDMAXKERNEL = imax.c | |||||
| IDMINKERNEL = imin.c | |||||
| DSWAPKERNEL = swap.c | |||||
| CSWAPKERNEL = zswap.c | |||||
| ZSWAPKERNEL = zswap.c | |||||
| DASUMKERNEL = asum.c | |||||
| CASUMKERNEL = zasum.c | |||||
| ZASUMKERNEL = zasum.c | |||||
| DAXPYKERNEL = axpy.c | |||||
| CAXPYKERNEL = zaxpy.c | |||||
| ZAXPYKERNEL = zaxpy.c | |||||
| DDOTKERNEL = dot.c | |||||
| CDOTKERNEL = zdot.c | |||||
| ZDOTKERNEL = zdot.c | |||||
| DNRM2KERNEL = nrm2.c | |||||
| CNRM2KERNEL = znrm2.c | |||||
| ZNRM2KERNEL = znrm2.c | |||||
| DROTKERNEL = rot.c | |||||
| CROTKERNEL = zrot.c | |||||
| ZROTKERNEL = zrot.c | |||||
| DGEMVNKERNEL = gemv_n.c | |||||
| CGEMVNKERNEL = zgemv_n.c | |||||
| ZGEMVNKERNEL = zgemv_n.c | |||||
| DGEMVTKERNEL = gemv_t.c | |||||
| CGEMVTKERNEL = zgemv_t.c | |||||
| ZGEMVTKERNEL = zgemv_t.c | |||||
| DTRMMKERNEL = ../generic/trmmkernel_2x2.c | |||||
| CTRMMKERNEL = ../generic/ztrmmkernel_2x2.c | |||||
| ZTRMMKERNEL = ../generic/ztrmmkernel_2x2.c | |||||
| DGEMMKERNEL = ../generic/gemmkernel_2x2.c | |||||
| DGEMMONCOPY = ../generic/gemm_ncopy_2.c | |||||
| DGEMMOTCOPY = ../generic/gemm_tcopy_2.c | |||||
| DGEMMONCOPYOBJ = dgemm_oncopy.o | |||||
| DGEMMOTCOPYOBJ = dgemm_otcopy.o | |||||
| CGEMMKERNEL = ../generic/zgemmkernel_2x2.c | |||||
| CGEMMONCOPY = ../generic/zgemm_ncopy_2.c | |||||
| CGEMMOTCOPY = ../generic/zgemm_tcopy_2.c | |||||
| CGEMMONCOPYOBJ = cgemm_oncopy.o | |||||
| CGEMMOTCOPYOBJ = cgemm_otcopy.o | |||||
| ZGEMMKERNEL = ../generic/zgemmkernel_2x2.c | |||||
| ZGEMMONCOPY = ../generic/zgemm_ncopy_2.c | |||||
| ZGEMMOTCOPY = ../generic/zgemm_tcopy_2.c | |||||
| ZGEMMONCOPYOBJ = zgemm_oncopy.o | |||||
| ZGEMMOTCOPYOBJ = zgemm_otcopy.o | |||||
| else # Use optimized hard-float implementations | |||||
| DAMAXKERNEL = iamax_vfp.S | DAMAXKERNEL = iamax_vfp.S | ||||
| CAMAXKERNEL = iamax_vfp.S | CAMAXKERNEL = iamax_vfp.S | ||||
| ZAMAXKERNEL = iamax_vfp.S | ZAMAXKERNEL = iamax_vfp.S | ||||
| SAMINKERNEL = iamax_vfp.S | |||||
| DAMINKERNEL = iamax_vfp.S | DAMINKERNEL = iamax_vfp.S | ||||
| CAMINKERNEL = iamax_vfp.S | CAMINKERNEL = iamax_vfp.S | ||||
| ZAMINKERNEL = iamax_vfp.S | ZAMINKERNEL = iamax_vfp.S | ||||
| SMAXKERNEL = iamax_vfp.S | |||||
| DMAXKERNEL = iamax_vfp.S | DMAXKERNEL = iamax_vfp.S | ||||
| SMINKERNEL = iamax_vfp.S | |||||
| DMINKERNEL = iamax_vfp.S | DMINKERNEL = iamax_vfp.S | ||||
| ISAMAXKERNEL = iamax_vfp.S | |||||
| IDAMAXKERNEL = iamax_vfp.S | IDAMAXKERNEL = iamax_vfp.S | ||||
| ICAMAXKERNEL = iamax_vfp.S | ICAMAXKERNEL = iamax_vfp.S | ||||
| IZAMAXKERNEL = iamax_vfp.S | IZAMAXKERNEL = iamax_vfp.S | ||||
| ISAMINKERNEL = iamax_vfp.S | |||||
| IDAMINKERNEL = iamax_vfp.S | IDAMINKERNEL = iamax_vfp.S | ||||
| ICAMINKERNEL = iamax_vfp.S | ICAMINKERNEL = iamax_vfp.S | ||||
| IZAMINKERNEL = iamax_vfp.S | IZAMINKERNEL = iamax_vfp.S | ||||
| ISMAXKERNEL = iamax_vfp.S | |||||
| IDMAXKERNEL = iamax_vfp.S | IDMAXKERNEL = iamax_vfp.S | ||||
| ISMINKERNEL = iamax_vfp.S | |||||
| IDMINKERNEL = iamax_vfp.S | IDMINKERNEL = iamax_vfp.S | ||||
| SSWAPKERNEL = swap_vfp.S | |||||
| DSWAPKERNEL = swap_vfp.S | DSWAPKERNEL = swap_vfp.S | ||||
| CSWAPKERNEL = swap_vfp.S | CSWAPKERNEL = swap_vfp.S | ||||
| ZSWAPKERNEL = swap_vfp.S | ZSWAPKERNEL = swap_vfp.S | ||||
| SASUMKERNEL = asum_vfp.S | |||||
| DASUMKERNEL = asum_vfp.S | DASUMKERNEL = asum_vfp.S | ||||
| CASUMKERNEL = asum_vfp.S | CASUMKERNEL = asum_vfp.S | ||||
| ZASUMKERNEL = asum_vfp.S | ZASUMKERNEL = asum_vfp.S | ||||
| SAXPYKERNEL = axpy_vfp.S | |||||
| DAXPYKERNEL = axpy_vfp.S | DAXPYKERNEL = axpy_vfp.S | ||||
| CAXPYKERNEL = axpy_vfp.S | CAXPYKERNEL = axpy_vfp.S | ||||
| ZAXPYKERNEL = axpy_vfp.S | ZAXPYKERNEL = axpy_vfp.S | ||||
| SCOPYKERNEL = copy.c | |||||
| DCOPYKERNEL = copy.c | |||||
| CCOPYKERNEL = zcopy.c | |||||
| ZCOPYKERNEL = zcopy.c | |||||
| SDOTKERNEL = sdot_vfp.S | |||||
| DDOTKERNEL = ddot_vfp.S | DDOTKERNEL = ddot_vfp.S | ||||
| CDOTKERNEL = cdot_vfp.S | CDOTKERNEL = cdot_vfp.S | ||||
| ZDOTKERNEL = zdot_vfp.S | ZDOTKERNEL = zdot_vfp.S | ||||
| SNRM2KERNEL = nrm2_vfpv3.S | |||||
| DNRM2KERNEL = nrm2_vfpv3.S | DNRM2KERNEL = nrm2_vfpv3.S | ||||
| CNRM2KERNEL = nrm2_vfpv3.S | CNRM2KERNEL = nrm2_vfpv3.S | ||||
| ZNRM2KERNEL = nrm2_vfpv3.S | ZNRM2KERNEL = nrm2_vfpv3.S | ||||
| SROTKERNEL = rot_vfp.S | |||||
| DROTKERNEL = rot_vfp.S | DROTKERNEL = rot_vfp.S | ||||
| CROTKERNEL = rot_vfp.S | CROTKERNEL = rot_vfp.S | ||||
| ZROTKERNEL = rot_vfp.S | ZROTKERNEL = rot_vfp.S | ||||
| SSCALKERNEL = scal.c | |||||
| DSCALKERNEL = scal.c | |||||
| CSCALKERNEL = zscal.c | |||||
| ZSCALKERNEL = zscal.c | |||||
| SGEMVNKERNEL = gemv_n_vfpv3.S | |||||
| DGEMVNKERNEL = gemv_n_vfpv3.S | DGEMVNKERNEL = gemv_n_vfpv3.S | ||||
| CGEMVNKERNEL = cgemv_n_vfp.S | CGEMVNKERNEL = cgemv_n_vfp.S | ||||
| ZGEMVNKERNEL = zgemv_n_vfp.S | ZGEMVNKERNEL = zgemv_n_vfp.S | ||||
| SGEMVTKERNEL = gemv_t_vfp.S | |||||
| DGEMVTKERNEL = gemv_t_vfp.S | DGEMVTKERNEL = gemv_t_vfp.S | ||||
| CGEMVTKERNEL = cgemv_t_vfp.S | CGEMVTKERNEL = cgemv_t_vfp.S | ||||
| ZGEMVTKERNEL = zgemv_t_vfp.S | ZGEMVTKERNEL = zgemv_t_vfp.S | ||||
| STRMMKERNEL = strmm_kernel_4x4_vfpv3.S | |||||
| DTRMMKERNEL = dtrmm_kernel_4x4_vfpv3.S | DTRMMKERNEL = dtrmm_kernel_4x4_vfpv3.S | ||||
| CTRMMKERNEL = ctrmm_kernel_2x2_vfpv3.S | CTRMMKERNEL = ctrmm_kernel_2x2_vfpv3.S | ||||
| ZTRMMKERNEL = ztrmm_kernel_2x2_vfpv3.S | ZTRMMKERNEL = ztrmm_kernel_2x2_vfpv3.S | ||||
| SGEMMKERNEL = sgemm_kernel_4x4_vfpv3.S | |||||
| SGEMMONCOPY = sgemm_ncopy_4_vfp.S | |||||
| SGEMMOTCOPY = sgemm_tcopy_4_vfp.S | |||||
| SGEMMONCOPYOBJ = sgemm_oncopy.o | |||||
| SGEMMOTCOPYOBJ = sgemm_otcopy.o | |||||
| DGEMMKERNEL = dgemm_kernel_4x4_vfpv3.S | DGEMMKERNEL = dgemm_kernel_4x4_vfpv3.S | ||||
| DGEMMONCOPY = dgemm_ncopy_4_vfp.S | DGEMMONCOPY = dgemm_ncopy_4_vfp.S | ||||
| DGEMMOTCOPY = dgemm_tcopy_4_vfp.S | DGEMMOTCOPY = dgemm_tcopy_4_vfp.S | ||||
| DGEMMONCOPYOBJ = dgemm_oncopy.o | |||||
| DGEMMOTCOPYOBJ = dgemm_otcopy.o | |||||
| CGEMMKERNEL = cgemm_kernel_2x2_vfpv3.S | CGEMMKERNEL = cgemm_kernel_2x2_vfpv3.S | ||||
| CGEMMONCOPY = cgemm_ncopy_2_vfp.S | CGEMMONCOPY = cgemm_ncopy_2_vfp.S | ||||
| @@ -111,24 +204,37 @@ ZGEMMOTCOPY = zgemm_tcopy_2_vfp.S | |||||
| ZGEMMONCOPYOBJ = zgemm_oncopy.o | ZGEMMONCOPYOBJ = zgemm_oncopy.o | ||||
| ZGEMMOTCOPYOBJ = zgemm_otcopy.o | ZGEMMOTCOPYOBJ = zgemm_otcopy.o | ||||
| STRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||||
| STRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||||
| STRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||||
| STRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||||
| DTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||||
| DTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||||
| DTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||||
| DTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||||
| endif | |||||
| CTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||||
| CTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||||
| CTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||||
| CTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||||
| ZTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||||
| ZTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||||
| ZTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||||
| ZTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||||
| ############################ | |||||
| # Files in pure C routines # | |||||
| ############################ | |||||
| SCOPYKERNEL = copy.c | |||||
| DCOPYKERNEL = copy.c | |||||
| CCOPYKERNEL = zcopy.c | |||||
| ZCOPYKERNEL = zcopy.c | |||||
| SSCALKERNEL = scal.c | |||||
| DSCALKERNEL = scal.c | |||||
| CSCALKERNEL = zscal.c | |||||
| ZSCALKERNEL = zscal.c | |||||
| STRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||||
| STRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||||
| STRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||||
| STRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||||
| DTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||||
| DTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||||
| DTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||||
| DTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||||
| CTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||||
| CTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||||
| CTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||||
| CTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||||
| ZTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||||
| ZTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||||
| ZTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||||
| ZTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||||