summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TargetList.txt3
-rw-r--r--getarch.c10
-rw-r--r--kernel/riscv64/KERNEL162
-rw-r--r--kernel/riscv64/KERNEL.RISCV64_GENERIC164
-rw-r--r--param.h2
5 files changed, 187 insertions, 154 deletions
diff --git a/TargetList.txt b/TargetList.txt
index 6a57bf1af..3b018e17a 100644
--- a/TargetList.txt
+++ b/TargetList.txt
@@ -97,3 +97,6 @@ TSV110
ZARCH_GENERIC
Z13
Z14
+
+10.RISC-V 64:
+RISCV64_GENERIC
diff --git a/getarch.c b/getarch.c
index d0d260577..58706c452 100644
--- a/getarch.c
+++ b/getarch.c
@@ -906,17 +906,17 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#else
#endif
-#ifdef FORCE_RISCV64
+#ifdef FORCE_RISCV64_GENERIC
#define FORCE
#define ARCHITECTURE "RISCV64"
-#define SUBARCHITECTURE "RISCV64"
+#define SUBARCHITECTURE "RISCV64_GENERIC"
#define SUBDIRNAME "riscv64"
-#define ARCHCONFIG "-DRISCV64 " \
+#define ARCHCONFIG "-DRISCV64_GENERIC " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \
"-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 "
-#define LIBNAME "riscv64"
-#define CORENAME "RISCV64"
+#define LIBNAME "riscv64_generic"
+#define CORENAME "RISCV64_GENERIC"
#else
#endif
diff --git a/kernel/riscv64/KERNEL b/kernel/riscv64/KERNEL
index ea6a8cf21..68d68b5f8 100644
--- a/kernel/riscv64/KERNEL
+++ b/kernel/riscv64/KERNEL
@@ -1,154 +1,18 @@
-SAMAXKERNEL = ../riscv64/amax.c
-DAMAXKERNEL = ../riscv64/amax.c
-CAMAXKERNEL = ../riscv64/zamax.c
-ZAMAXKERNEL = ../riscv64/zamax.c
-
-SAMINKERNEL = ../riscv64/amin.c
-DAMINKERNEL = ../riscv64/amin.c
-CAMINKERNEL = ../riscv64/zamin.c
-ZAMINKERNEL = ../riscv64/zamin.c
-
-SMAXKERNEL = ../riscv64/max.c
-DMAXKERNEL = ../riscv64/max.c
-
-SMINKERNEL = ../riscv64/min.c
-DMINKERNEL = ../riscv64/min.c
-
-ISAMAXKERNEL = ../riscv64/iamax.c
-IDAMAXKERNEL = ../riscv64/iamax.c
-ICAMAXKERNEL = ../riscv64/izamax.c
-IZAMAXKERNEL = ../riscv64/izamax.c
-
-ISAMINKERNEL = ../riscv64/iamin.c
-IDAMINKERNEL = ../riscv64/iamin.c
-ICAMINKERNEL = ../riscv64/izamin.c
-IZAMINKERNEL = ../riscv64/izamin.c
-
-ISMAXKERNEL = ../riscv64/imax.c
-IDMAXKERNEL = ../riscv64/imax.c
-
-ISMINKERNEL = ../riscv64/imin.c
-IDMINKERNEL = ../riscv64/imin.c
-
-SASUMKERNEL = ../riscv64/asum.c
-DASUMKERNEL = ../riscv64/asum.c
-CASUMKERNEL = ../riscv64/zasum.c
-ZASUMKERNEL = ../riscv64/zasum.c
-
-SSUMKERNEL = ../arm/sum.c
-DSUMKERNEL = ../arm/sum.c
-CSUMKERNEL = ../arm/zsum.c
-ZSUMKERNEL = ../arm/zsum.c
-
-SAXPYKERNEL = ../riscv64/axpy.c
-DAXPYKERNEL = ../riscv64/axpy.c
-CAXPYKERNEL = ../riscv64/zaxpy.c
-ZAXPYKERNEL = ../riscv64/zaxpy.c
-
-SCOPYKERNEL = ../riscv64/copy.c
-DCOPYKERNEL = ../riscv64/copy.c
-CCOPYKERNEL = ../riscv64/zcopy.c
-ZCOPYKERNEL = ../riscv64/zcopy.c
-
-SDOTKERNEL = ../riscv64/dot.c
-DDOTKERNEL = ../riscv64/dot.c
-CDOTKERNEL = ../riscv64/zdot.c
-ZDOTKERNEL = ../riscv64/zdot.c
-
-SNRM2KERNEL = ../riscv64/nrm2.c
-DNRM2KERNEL = ../riscv64/nrm2.c
-CNRM2KERNEL = ../riscv64/znrm2.c
-ZNRM2KERNEL = ../riscv64/znrm2.c
-
-SROTKERNEL = ../riscv64/rot.c
-DROTKERNEL = ../riscv64/rot.c
-CROTKERNEL = ../riscv64/zrot.c
-ZROTKERNEL = ../riscv64/zrot.c
-
-SSCALKERNEL = ../riscv64/scal.c
-DSCALKERNEL = ../riscv64/scal.c
-CSCALKERNEL = ../riscv64/zscal.c
-ZSCALKERNEL = ../riscv64/zscal.c
-
-SSWAPKERNEL = ../riscv64/swap.c
-DSWAPKERNEL = ../riscv64/swap.c
-CSWAPKERNEL = ../riscv64/zswap.c
-ZSWAPKERNEL = ../riscv64/zswap.c
-
-SGEMVNKERNEL = ../riscv64/gemv_n.c
-DGEMVNKERNEL = ../riscv64/gemv_n.c
-CGEMVNKERNEL = ../riscv64/zgemv_n.c
-ZGEMVNKERNEL = ../riscv64/zgemv_n.c
-
-SGEMVTKERNEL = ../riscv64/gemv_t.c
-DGEMVTKERNEL = ../riscv64/gemv_t.c
-CGEMVTKERNEL = ../riscv64/zgemv_t.c
-ZGEMVTKERNEL = ../riscv64/zgemv_t.c
-
-STRMMKERNEL = ../generic/trmmkernel_2x2.c
-DTRMMKERNEL = ../generic/trmmkernel_2x2.c
-CTRMMKERNEL = ../generic/ztrmmkernel_2x2.c
-ZTRMMKERNEL = ../generic/ztrmmkernel_2x2.c
-
-SGEMMKERNEL = ../generic/gemmkernel_2x2.c
-SGEMMONCOPY = ../generic/gemm_ncopy_2.c
-SGEMMOTCOPY = ../generic/gemm_tcopy_2.c
-SGEMMONCOPYOBJ = sgemm_oncopy.o
-SGEMMOTCOPYOBJ = sgemm_otcopy.o
-
-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
-
-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
-
-SSYMV_U_KERNEL = ../generic/symv_k.c
-SSYMV_L_KERNEL = ../generic/symv_k.c
-DSYMV_U_KERNEL = ../generic/symv_k.c
-DSYMV_L_KERNEL = ../generic/symv_k.c
-CSYMV_U_KERNEL = ../generic/zsymv_k.c
-CSYMV_L_KERNEL = ../generic/zsymv_k.c
-ZSYMV_U_KERNEL = ../generic/zsymv_k.c
-ZSYMV_L_KERNEL = ../generic/zsymv_k.c
-
-
-LSAME_KERNEL = ../generic/lsame.c
-
+ifndef SCABS_KERNEL
SCABS_KERNEL = ../generic/cabs.c
+endif
+
+ifndef DCABS_KERNEL
DCABS_KERNEL = ../generic/cabs.c
+endif
+
+ifndef QCABS_KERNEL
QCABS_KERNEL = ../generic/cabs.c
+endif
+
+ifndef LSAME_KERNEL
+LSAME_KERNEL = ../generic/lsame.c
+endif
ifndef SGEMM_BETA
SGEMM_BETA = ../generic/gemm_beta.c
@@ -162,3 +26,5 @@ endif
ifndef ZGEMM_BETA
ZGEMM_BETA = ../generic/zgemm_beta.c
endif
+
+
diff --git a/kernel/riscv64/KERNEL.RISCV64_GENERIC b/kernel/riscv64/KERNEL.RISCV64_GENERIC
new file mode 100644
index 000000000..ea6a8cf21
--- /dev/null
+++ b/kernel/riscv64/KERNEL.RISCV64_GENERIC
@@ -0,0 +1,164 @@
+SAMAXKERNEL = ../riscv64/amax.c
+DAMAXKERNEL = ../riscv64/amax.c
+CAMAXKERNEL = ../riscv64/zamax.c
+ZAMAXKERNEL = ../riscv64/zamax.c
+
+SAMINKERNEL = ../riscv64/amin.c
+DAMINKERNEL = ../riscv64/amin.c
+CAMINKERNEL = ../riscv64/zamin.c
+ZAMINKERNEL = ../riscv64/zamin.c
+
+SMAXKERNEL = ../riscv64/max.c
+DMAXKERNEL = ../riscv64/max.c
+
+SMINKERNEL = ../riscv64/min.c
+DMINKERNEL = ../riscv64/min.c
+
+ISAMAXKERNEL = ../riscv64/iamax.c
+IDAMAXKERNEL = ../riscv64/iamax.c
+ICAMAXKERNEL = ../riscv64/izamax.c
+IZAMAXKERNEL = ../riscv64/izamax.c
+
+ISAMINKERNEL = ../riscv64/iamin.c
+IDAMINKERNEL = ../riscv64/iamin.c
+ICAMINKERNEL = ../riscv64/izamin.c
+IZAMINKERNEL = ../riscv64/izamin.c
+
+ISMAXKERNEL = ../riscv64/imax.c
+IDMAXKERNEL = ../riscv64/imax.c
+
+ISMINKERNEL = ../riscv64/imin.c
+IDMINKERNEL = ../riscv64/imin.c
+
+SASUMKERNEL = ../riscv64/asum.c
+DASUMKERNEL = ../riscv64/asum.c
+CASUMKERNEL = ../riscv64/zasum.c
+ZASUMKERNEL = ../riscv64/zasum.c
+
+SSUMKERNEL = ../arm/sum.c
+DSUMKERNEL = ../arm/sum.c
+CSUMKERNEL = ../arm/zsum.c
+ZSUMKERNEL = ../arm/zsum.c
+
+SAXPYKERNEL = ../riscv64/axpy.c
+DAXPYKERNEL = ../riscv64/axpy.c
+CAXPYKERNEL = ../riscv64/zaxpy.c
+ZAXPYKERNEL = ../riscv64/zaxpy.c
+
+SCOPYKERNEL = ../riscv64/copy.c
+DCOPYKERNEL = ../riscv64/copy.c
+CCOPYKERNEL = ../riscv64/zcopy.c
+ZCOPYKERNEL = ../riscv64/zcopy.c
+
+SDOTKERNEL = ../riscv64/dot.c
+DDOTKERNEL = ../riscv64/dot.c
+CDOTKERNEL = ../riscv64/zdot.c
+ZDOTKERNEL = ../riscv64/zdot.c
+
+SNRM2KERNEL = ../riscv64/nrm2.c
+DNRM2KERNEL = ../riscv64/nrm2.c
+CNRM2KERNEL = ../riscv64/znrm2.c
+ZNRM2KERNEL = ../riscv64/znrm2.c
+
+SROTKERNEL = ../riscv64/rot.c
+DROTKERNEL = ../riscv64/rot.c
+CROTKERNEL = ../riscv64/zrot.c
+ZROTKERNEL = ../riscv64/zrot.c
+
+SSCALKERNEL = ../riscv64/scal.c
+DSCALKERNEL = ../riscv64/scal.c
+CSCALKERNEL = ../riscv64/zscal.c
+ZSCALKERNEL = ../riscv64/zscal.c
+
+SSWAPKERNEL = ../riscv64/swap.c
+DSWAPKERNEL = ../riscv64/swap.c
+CSWAPKERNEL = ../riscv64/zswap.c
+ZSWAPKERNEL = ../riscv64/zswap.c
+
+SGEMVNKERNEL = ../riscv64/gemv_n.c
+DGEMVNKERNEL = ../riscv64/gemv_n.c
+CGEMVNKERNEL = ../riscv64/zgemv_n.c
+ZGEMVNKERNEL = ../riscv64/zgemv_n.c
+
+SGEMVTKERNEL = ../riscv64/gemv_t.c
+DGEMVTKERNEL = ../riscv64/gemv_t.c
+CGEMVTKERNEL = ../riscv64/zgemv_t.c
+ZGEMVTKERNEL = ../riscv64/zgemv_t.c
+
+STRMMKERNEL = ../generic/trmmkernel_2x2.c
+DTRMMKERNEL = ../generic/trmmkernel_2x2.c
+CTRMMKERNEL = ../generic/ztrmmkernel_2x2.c
+ZTRMMKERNEL = ../generic/ztrmmkernel_2x2.c
+
+SGEMMKERNEL = ../generic/gemmkernel_2x2.c
+SGEMMONCOPY = ../generic/gemm_ncopy_2.c
+SGEMMOTCOPY = ../generic/gemm_tcopy_2.c
+SGEMMONCOPYOBJ = sgemm_oncopy.o
+SGEMMOTCOPYOBJ = sgemm_otcopy.o
+
+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
+
+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
+
+SSYMV_U_KERNEL = ../generic/symv_k.c
+SSYMV_L_KERNEL = ../generic/symv_k.c
+DSYMV_U_KERNEL = ../generic/symv_k.c
+DSYMV_L_KERNEL = ../generic/symv_k.c
+CSYMV_U_KERNEL = ../generic/zsymv_k.c
+CSYMV_L_KERNEL = ../generic/zsymv_k.c
+ZSYMV_U_KERNEL = ../generic/zsymv_k.c
+ZSYMV_L_KERNEL = ../generic/zsymv_k.c
+
+
+LSAME_KERNEL = ../generic/lsame.c
+
+SCABS_KERNEL = ../generic/cabs.c
+DCABS_KERNEL = ../generic/cabs.c
+QCABS_KERNEL = ../generic/cabs.c
+
+ifndef SGEMM_BETA
+SGEMM_BETA = ../generic/gemm_beta.c
+endif
+ifndef DGEMM_BETA
+DGEMM_BETA = ../generic/gemm_beta.c
+endif
+ifndef CGEMM_BETA
+CGEMM_BETA = ../generic/zgemm_beta.c
+endif
+ifndef ZGEMM_BETA
+ZGEMM_BETA = ../generic/zgemm_beta.c
+endif
diff --git a/param.h b/param.h
index d42724a57..4a7765012 100644
--- a/param.h
+++ b/param.h
@@ -2509,7 +2509,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define SYMV_P 16
#endif
-#ifdef RISCV64
+#ifdef RISCV64_GENERIC
#define GEMM_DEFAULT_OFFSET_A 0
#define GEMM_DEFAULT_OFFSET_B 0
#define GEMM_DEFAULT_ALIGN 0x03fffUL