| @@ -679,6 +679,52 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #define CORENAME "generic" | #define CORENAME "generic" | ||||
| #endif | #endif | ||||
| #ifdef FORCE_ARMV7 | |||||
| #define FORCE | |||||
| #define ARCHITECTURE "ARM" | |||||
| #define SUBARCHITECTURE "ARMV7" | |||||
| #define SUBDIRNAME "arm" | |||||
| #define ARCHCONFIG "-DARMV7 " \ | |||||
| "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ | |||||
| "-DL2_SIZE=512488 -DL2_LINESIZE=32 " \ | |||||
| "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 " \ | |||||
| "-DHAVE_VFPV3 -DHAVE_VFP" | |||||
| #define LIBNAME "armv7" | |||||
| #define CORENAME "ARMV7" | |||||
| #else | |||||
| #endif | |||||
| #ifdef FORCE_ARMV6 | |||||
| #define FORCE | |||||
| #define ARCHITECTURE "ARM" | |||||
| #define SUBARCHITECTURE "ARMV6" | |||||
| #define SUBDIRNAME "arm" | |||||
| #define ARCHCONFIG "-DARMV6 " \ | |||||
| "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ | |||||
| "-DL2_SIZE=512488 -DL2_LINESIZE=32 " \ | |||||
| "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 " \ | |||||
| "-DHAVE_VFP" | |||||
| #define LIBNAME "armv6" | |||||
| #define CORENAME "ARMV6" | |||||
| #else | |||||
| #endif | |||||
| #ifdef FORCE_ARMV8 | |||||
| #define FORCE | |||||
| #define ARCHITECTURE "ARM64" | |||||
| #define SUBARCHITECTURE "ARMV8" | |||||
| #define SUBDIRNAME "arm64" | |||||
| #define ARCHCONFIG "-DARMV8 " \ | |||||
| "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ | |||||
| "-DL2_SIZE=512488 -DL2_LINESIZE=32 " \ | |||||
| "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 " \ | |||||
| "-DHAVE_VFP -DHAVE_VFPV3 -DHAVE_VFPV4" | |||||
| #define LIBNAME "armv8" | |||||
| #define CORENAME "ARMV8" | |||||
| #else | |||||
| #endif | |||||
| #ifndef FORCE | #ifndef FORCE | ||||
| #if defined(__powerpc__) || defined(__powerpc) || defined(powerpc) || \ | #if defined(__powerpc__) || defined(__powerpc) || defined(powerpc) || \ | ||||
| @@ -719,6 +765,12 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #define OPENBLAS_SUPPORTED | #define OPENBLAS_SUPPORTED | ||||
| #endif | #endif | ||||
| #ifdef __arm__ | |||||
| #include "cpuid_arm.c" | |||||
| #define OPENBLAS_SUPPORTED | |||||
| #endif | |||||
| #ifndef OPENBLAS_SUPPORTED | #ifndef OPENBLAS_SUPPORTED | ||||
| #error "This arch/CPU is not supported by OpenBLAS." | #error "This arch/CPU is not supported by OpenBLAS." | ||||
| #endif | #endif | ||||
| @@ -773,7 +825,7 @@ int main(int argc, char *argv[]){ | |||||
| #ifdef FORCE | #ifdef FORCE | ||||
| printf("CORE=%s\n", CORENAME); | printf("CORE=%s\n", CORENAME); | ||||
| #else | #else | ||||
| #if defined(__i386__) || defined(__x86_64__) || defined(POWER) || defined(__mips__) | |||||
| #if defined(__i386__) || defined(__x86_64__) || defined(POWER) || defined(__mips__) || defined(__arm__) | |||||
| printf("CORE=%s\n", get_corename()); | printf("CORE=%s\n", get_corename()); | ||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| @@ -788,6 +840,11 @@ int main(int argc, char *argv[]){ | |||||
| printf("NUM_CORES=%d\n", get_num_cores()); | printf("NUM_CORES=%d\n", get_num_cores()); | ||||
| #if defined(__arm__) && !defined(FORCE) | |||||
| get_features(); | |||||
| #endif | |||||
| #if defined(__i386__) || defined(__x86_64__) | #if defined(__i386__) || defined(__x86_64__) | ||||
| #ifndef FORCE | #ifndef FORCE | ||||
| get_sse(); | get_sse(); | ||||