Merge pull request #3449 from martin-frbg/mips_msa
Fix MIPS/MIPS64 compilation querying compiler rather than cpu for MSA capability
This commit is contained in:
commit
8f6c8d1a9e
|
@ -1664,8 +1664,10 @@ export HAVE_VFP
|
||||||
export HAVE_VFPV3
|
export HAVE_VFPV3
|
||||||
export HAVE_VFPV4
|
export HAVE_VFPV4
|
||||||
export HAVE_NEON
|
export HAVE_NEON
|
||||||
export HAVE_MSA
|
ifndef NO_MSA
|
||||||
export MSA_FLAGS
|
export HAVE_MSA
|
||||||
|
export MSA_FLAGS
|
||||||
|
endif
|
||||||
export KERNELDIR
|
export KERNELDIR
|
||||||
export FUNCTION_PROFILE
|
export FUNCTION_PROFILE
|
||||||
export TARGET_CORE
|
export TARGET_CORE
|
||||||
|
|
36
cpuid_mips.c
36
cpuid_mips.c
|
@ -165,6 +165,7 @@ void get_cpuconfig(void){
|
||||||
}else{
|
}else{
|
||||||
printf("#define UNKNOWN\n");
|
printf("#define UNKNOWN\n");
|
||||||
}
|
}
|
||||||
|
if (!get_feature(msa)) printf("#define NO_MSA\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_libname(void){
|
void get_libname(void){
|
||||||
|
@ -178,3 +179,38 @@ void get_libname(void){
|
||||||
printf("mips\n");
|
printf("mips\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_feature(char *search)
|
||||||
|
{
|
||||||
|
|
||||||
|
#ifdef __linux
|
||||||
|
FILE *infile;
|
||||||
|
char buffer[2048], *p,*t;
|
||||||
|
p = (char *) NULL ;
|
||||||
|
|
||||||
|
infile = fopen("/proc/cpuinfo", "r");
|
||||||
|
|
||||||
|
while (fgets(buffer, sizeof(buffer), infile))
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!strncmp("Features", buffer, 8))
|
||||||
|
{
|
||||||
|
p = strchr(buffer, ':') + 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(infile);
|
||||||
|
|
||||||
|
if( p == NULL ) return 0;
|
||||||
|
|
||||||
|
t = strtok(p," ");
|
||||||
|
while( t = strtok(NULL," "))
|
||||||
|
{
|
||||||
|
if (!strcmp(t, search)) { return(1); }
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -201,6 +201,7 @@ void get_cpuconfig(void){
|
||||||
printf("#define DTB_SIZE 4096\n");
|
printf("#define DTB_SIZE 4096\n");
|
||||||
printf("#define L2_ASSOCIATIVE 8\n");
|
printf("#define L2_ASSOCIATIVE 8\n");
|
||||||
}
|
}
|
||||||
|
if (!get_feature(msa)) printf("#define NO_MSA\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_libname(void){
|
void get_libname(void){
|
||||||
|
@ -218,3 +219,38 @@ void get_libname(void){
|
||||||
printf("mips64\n");
|
printf("mips64\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_feature(char *search)
|
||||||
|
{
|
||||||
|
|
||||||
|
#ifdef __linux
|
||||||
|
FILE *infile;
|
||||||
|
char buffer[2048], *p,*t;
|
||||||
|
p = (char *) NULL ;
|
||||||
|
|
||||||
|
infile = fopen("/proc/cpuinfo", "r");
|
||||||
|
|
||||||
|
while (fgets(buffer, sizeof(buffer), infile))
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!strncmp("Features", buffer, 8))
|
||||||
|
{
|
||||||
|
p = strchr(buffer, ':') + 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(infile);
|
||||||
|
|
||||||
|
if( p == NULL ) return 0;
|
||||||
|
|
||||||
|
t = strtok(p," ");
|
||||||
|
while( t = strtok(NULL," "))
|
||||||
|
{
|
||||||
|
if (!strcmp(t, search)) { return(1); }
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -1013,7 +1013,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DP5600 " \
|
#define ARCHCONFIG "-DP5600 " \
|
||||||
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
||||||
"-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \
|
"-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \
|
||||||
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
|
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 -DNO_MSA"
|
||||||
#define LIBNAME "p5600"
|
#define LIBNAME "p5600"
|
||||||
#define CORENAME "P5600"
|
#define CORENAME "P5600"
|
||||||
#else
|
#else
|
||||||
|
@ -1027,7 +1027,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DMIPS1004K " \
|
#define ARCHCONFIG "-DMIPS1004K " \
|
||||||
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
|
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
|
||||||
"-DL2_SIZE=262144 -DL2_LINESIZE=32 " \
|
"-DL2_SIZE=262144 -DL2_LINESIZE=32 " \
|
||||||
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
|
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 -DNO_MSA"
|
||||||
#define LIBNAME "mips1004K"
|
#define LIBNAME "mips1004K"
|
||||||
#define CORENAME "MIPS1004K"
|
#define CORENAME "MIPS1004K"
|
||||||
#else
|
#else
|
||||||
|
@ -1041,7 +1041,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ARCHCONFIG "-DMIPS24K " \
|
#define ARCHCONFIG "-DMIPS24K " \
|
||||||
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
|
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
|
||||||
"-DL2_SIZE=32768 -DL2_LINESIZE=32 " \
|
"-DL2_SIZE=32768 -DL2_LINESIZE=32 " \
|
||||||
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
|
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 -DNO_MSA"
|
||||||
#define LIBNAME "mips24K"
|
#define LIBNAME "mips24K"
|
||||||
#define CORENAME "MIPS24K"
|
#define CORENAME "MIPS24K"
|
||||||
#else
|
#else
|
||||||
|
|
2
param.h
2
param.h
|
@ -2884,7 +2884,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define GEMM_DEFAULT_OFFSET_B 0
|
#define GEMM_DEFAULT_OFFSET_B 0
|
||||||
#define GEMM_DEFAULT_ALIGN (BLASLONG) 0x03fffUL
|
#define GEMM_DEFAULT_ALIGN (BLASLONG) 0x03fffUL
|
||||||
|
|
||||||
#ifdef HAVE_MSA
|
#if defined(HAVE_MSA) && !defined(NO_MSA)
|
||||||
#define SGEMM_DEFAULT_UNROLL_M 8
|
#define SGEMM_DEFAULT_UNROLL_M 8
|
||||||
#define SGEMM_DEFAULT_UNROLL_N 8
|
#define SGEMM_DEFAULT_UNROLL_N 8
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue