diff -uNr ATLAS.orig/CONFIG/src/backend/archinfo_linux.c ATLAS/CONFIG/src/backend/archinfo_linux.c
--- ATLAS.orig/CONFIG/src/backend/archinfo_linux.c 2010-02-01 23:28:58.000000000 +0000
+++ ATLAS/CONFIG/src/backend/archinfo_linux.c 2010-02-02 22:38:31.000000000 +0000
@@ -145,14 +145,12 @@
* Add these back if we get machine access and can test
*/
case AFSPARC: /* don't know here anymore */
- #if 0
if ( !CmndOneLine(NULL, "fgrep cpu /proc/cpuinfo", res) )
{
- if (strstr(res, "UltraSparc II")) mach = SunUS2;
- else if (strstr(res, "UltraSparc I")) mach = SunUS1;
- else if (strstr(res, "UltraSparc")) mach = SunUSX;
+ if (strstr(res, "UltraSparc II")) mach = SunUSII;
+ else if (strstr(res, "UltraSparc I")) mach = SunUSI;
+ else if (strstr(res, "UltraSparc")) mach = SunUSII;
}
- #endif
break;
case AFALPHA:
#if 0
@@ -196,6 +194,11 @@
reslns = CmndResults(NULL, "grep '^processor' /proc/cpuinfo");
if (reslns) ncpu = fNumLines(reslns);
}
+ if (__sparc__)
+ {
+ reslns = CmndResults(NULL, "grep '^CPU.*online' /proc/cpuinfo");
+ if (reslns) ncpu = fNumLines(reslns);
+ }
return(ncpu);
}
diff -uNr ATLAS.orig/tune/blas/gemm/CASES/ATL_dmm4x4x2_US.c ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x2_US.c
--- ATLAS.orig/tune/blas/gemm/CASES/ATL_dmm4x4x2_US.c 2010-02-01 23:29:23.000000000 +0000
+++ ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x2_US.c 2010-02-01 23:30:07.000000000 +0000
@@ -95,6 +95,11 @@
#define incBm %g3
#define incBn %g4
+#if defined(__sparc__) && defined(__arch64__)
+ .register %g2, #scratch
+ .register %g3, #scratch
+#endif
+
#ifdef DCPLX
#define incCm 64
#define CSH 4
diff -uNr ATLAS.orig/tune/blas/gemm/CASES/ATL_dmm4x4x8_US.c ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x8_US.c
--- ATLAS.orig/tune/blas/gemm/CASES/ATL_dmm4x4x8_US.c 2010-02-01 23:29:24.000000000 +0000
+++ ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x8_US.c 2010-02-01 23:30:08.000000000 +0000
@@ -135,6 +135,11 @@
#define pfB %i2 /* aliased with ldab */
#endif
+#if defined(__sparc__) && defined(__arch64__)
+ .register %g2, #scratch
+ .register %g3, #scratch
+#endif
+
#ifdef DCPLX
#define CMUL(arg_) ((arg_)*2)
#define incCm 64
diff -uNr ATLAS.orig/tune/blas/gemm/CASES/ATL_smm4x4x2_US.c ATLAS/tune/blas/gemm/CASES/ATL_smm4x4x2_US.c
--- ATLAS.orig/tune/blas/gemm/CASES/ATL_smm4x4x2_US.c 2010-02-01 23:29:25.000000000 +0000
+++ ATLAS/tune/blas/gemm/CASES/ATL_smm4x4x2_US.c 2010-02-01 23:30:09.000000000 +0000
@@ -93,6 +93,12 @@
#define rC23 %f30
#define rC33 %f31
#define FSIZE 64
+
+#if defined(__sparc__) && defined(__arch64__)
+ .register %g2, #scratch
+ .register %g3, #scratch
+#endif
+
#ifdef SCPLX
#define CSH 3
#define CMUL(arg_) ((arg_)*2)
diff -uNr ATLAS.orig/tune/blas/gemm/CASES/ATL_smm4x4x72_US.c ATLAS/tune/blas/gemm/CASES/ATL_smm4x4x72_US.c
--- ATLAS.orig/tune/blas/gemm/CASES/ATL_smm4x4x72_US.c 2010-02-01 23:29:25.000000000 +0000
+++ ATLAS/tune/blas/gemm/CASES/ATL_smm4x4x72_US.c 2010-02-01 23:30:09.000000000 +0000
@@ -108,6 +108,12 @@
#define rC23 %f30
#define rC33 %f31
#define FSIZE 64
+
+#if defined(__sparc__) && defined(__arch64__)
+ .register %g2, #scratch
+ .register %g3, #scratch
+#endif
+
#ifdef SCPLX
#define CSH 3
#define CMUL(arg_) ((arg_)*2)