Merge branch 'loongson3a' into develop

Conflicts:
	Makefile.system
This commit is contained in:
Zhang Xianyi 2013-07-20 22:32:38 +08:00
commit 77b572fa0b
4 changed files with 48 additions and 4 deletions

View File

@ -77,6 +77,11 @@ ifndef NO_PARALLEL_MAKE
NO_PARALLEL_MAKE=0 NO_PARALLEL_MAKE=0
endif endif
GETARCH_FLAGS += -DNO_PARALLEL_MAKE=$(NO_PARALLEL_MAKE) GETARCH_FLAGS += -DNO_PARALLEL_MAKE=$(NO_PARALLEL_MAKE)
ifeq ($(HOSTCC), loongcc)
GETARCH_FLAGS += -static
endif
# This operation is expensive, so execution should be once. # This operation is expensive, so execution should be once.
ifndef GOTOBLAS_MAKEFILE ifndef GOTOBLAS_MAKEFILE
export GOTOBLAS_MAKEFILE = 1 export GOTOBLAS_MAKEFILE = 1
@ -568,11 +573,28 @@ ifdef INTERFACE64
FCOMMON_OPT += -i8 FCOMMON_OPT += -i8
endif endif
endif endif
ifeq ($(ARCH), mips64)
ifndef BINARY64
FCOMMON_OPT += -n32
else
FCOMMON_OPT += -n64
endif
ifeq ($(CORE), LOONGSON3A)
FCOMMON_OPT += -loongson3 -static
endif
ifeq ($(CORE), LOONGSON3B)
FCOMMON_OPT += -loongson3 -static
endif
else
ifndef BINARY64 ifndef BINARY64
FCOMMON_OPT += -m32 FCOMMON_OPT += -m32
else else
FCOMMON_OPT += -m64 FCOMMON_OPT += -m64
endif endif
endif
ifdef USE_OPENMP ifdef USE_OPENMP
FEXTRALIB += -lstdc++ FEXTRALIB += -lstdc++
@ -581,12 +603,30 @@ endif
endif endif
ifeq ($(C_COMPILER), OPEN64) ifeq ($(C_COMPILER), OPEN64)
ifeq ($(ARCH), mips64)
ifndef BINARY64
CCOMMON_OPT += -n32
else
CCOMMON_OPT += -n64
endif
ifeq ($(CORE), LOONGSON3A)
CCOMMON_OPT += -loongson3 -static
endif
ifeq ($(CORE), LOONGSON3B)
CCOMMON_OPT += -loongson3 -static
endif
else
ifndef BINARY64 ifndef BINARY64
CCOMMON_OPT += -m32 CCOMMON_OPT += -m32
else else
CCOMMON_OPT += -m64 CCOMMON_OPT += -m64
endif endif
endif endif
endif
ifeq ($(C_COMPILER), SUN) ifeq ($(C_COMPILER), SUN)
CCOMMON_OPT += -w CCOMMON_OPT += -w

View File

@ -32,6 +32,10 @@ On X86 box, compile this library for loongson3a CPU.
make BINARY=64 CC=mips64el-unknown-linux-gnu-gcc FC=mips64el-unknown-linux-gnu-gfortran HOSTCC=gcc TARGET=LOONGSON3A make BINARY=64 CC=mips64el-unknown-linux-gnu-gcc FC=mips64el-unknown-linux-gnu-gfortran HOSTCC=gcc TARGET=LOONGSON3A
On X86 box, compile this library for loongson3a CPU with loongcc (based on Open64) compiler.
make CC=loongcc FC=loongf95 HOSTCC=gcc TARGET=LOONGSON3A CROSS=1 CROSS_SUFFIX=mips64el-st-linux-gnu- NO_LAPACKE=1 NO_SHARED=1 BINARY=32
### Debug version ### Debug version
make DEBUG=1 make DEBUG=1

View File

@ -255,8 +255,8 @@ REALNAME: ;\
#endif #endif
#if defined(LOONGSON3B) #if defined(LOONGSON3B)
#define PAGESIZE (32UL << 10) #define PAGESIZE (16UL << 10)
#define FIXED_PAGESIZE (32UL << 10) #define FIXED_PAGESIZE (16UL << 10)
#endif #endif
#ifndef PAGESIZE #ifndef PAGESIZE

View File

@ -71,7 +71,7 @@ int CNAME(int mode, blas_arg_t *arg, BLASLONG *range_m, BLASLONG *range_n, int (
queue[num_cpu].args = arg; queue[num_cpu].args = arg;
queue[num_cpu].range_m = range_m; queue[num_cpu].range_m = range_m;
queue[num_cpu].range_n = &range[num_cpu]; queue[num_cpu].range_n = &range[num_cpu];
#if defined(LOONGSON3A) #if 0 //defined(LOONGSON3A)
queue[num_cpu].sa = sa + GEMM_OFFSET_A1 * num_cpu; queue[num_cpu].sa = sa + GEMM_OFFSET_A1 * num_cpu;
queue[num_cpu].sb = queue[num_cpu].sa + GEMM_OFFSET_A1 * 5; queue[num_cpu].sb = queue[num_cpu].sa + GEMM_OFFSET_A1 * 5;
#else #else
@ -83,7 +83,7 @@ int CNAME(int mode, blas_arg_t *arg, BLASLONG *range_m, BLASLONG *range_n, int (
} }
if (num_cpu) { if (num_cpu) {
#if defined(LOONGSON3A) #if 0 //defined(LOONGSON3A)
queue[0].sa = sa; queue[0].sa = sa;
queue[0].sb = sa + GEMM_OFFSET_A1 * 5; queue[0].sb = sa + GEMM_OFFSET_A1 * 5;
#else #else