#ifndef COMMON_MIPS64
#define COMMON_MIPS64
-#define MB
-#define WMB
+#define MB __sync_synchronize()
+#define WMB __sync_synchronize()
+#define RMB __sync_synchronize()
#define INLINE inline
#ifndef ASSEMBLER
-static void INLINE blas_lock(volatile unsigned long *address){
-
- long int ret, val = 1;
-
- do {
- while (*address) {YIELDING;};
-
- __asm__ __volatile__(
- "1: ll %0, %3\n"
- " ori %2, %0, 1\n"
- " sc %2, %1\n"
- " beqz %2, 1b\n"
- " andi %2, %0, 1\n"
- " sync\n"
- : "=&r" (val), "=m" (address), "=&r" (ret)
- : "m" (address)
- : "memory");
-
- } while (ret);
-}
-#define BLAS_LOCK_DEFINED
-
static inline unsigned int rpcc(void){
unsigned long ret;
#define RPCC_DEFINED
#ifndef NO_AFFINITY
-#define WHEREAMI
+//#define WHEREAMI
static inline int WhereAmI(void){
int ret=0;
__asm__ __volatile__(".set push \n"
#define SEEK_ADDRESS
-#define BUFFER_SIZE ( 32 << 20)
-
-#if defined(LOONGSON3A)
-#define PAGESIZE (16UL << 10)
-#define FIXED_PAGESIZE (16UL << 10)
-#endif
+#define BUFFER_SIZE ( 32 << 21)
-#if defined(LOONGSON3B)
+#if defined(LOONGSON3R3) || defined(LOONGSON3R4)
#define PAGESIZE (16UL << 10)
#define FIXED_PAGESIZE (16UL << 10)
#endif
#define MAP_ANONYMOUS MAP_ANON
#endif
-#if defined(LOONGSON3A) || defined(LOONGSON3B)
+#if defined(LOONGSON3R3) || defined(LOONGSON3R4)
#define PREFETCHD_(x) ld $0, x
#define PREFETCHD(x) PREFETCHD_(x)
#else