Fix PowerPC and ARM compatibility.
authorTord Romstad <tord@cm-84.215.83.169.getinternet.no>
Tue, 6 Apr 2010 08:19:09 +0000 (10:19 +0200)
committerTord Romstad <tord@cm-84.215.83.169.getinternet.no>
Tue, 6 Apr 2010 08:19:09 +0000 (10:19 +0200)
src/Makefile
src/tt.cpp
src/types.h

index 84b6d624f1e118d132df13803f3edbad8e4f692a..7ae2c5285317616c60af6617f31908f4f0ce45a0 100644 (file)
@@ -197,6 +197,7 @@ osx-ppc32:
        CXX='g++' \
        CXXFLAGS="$(GCCFLAGS)" \
        CXXFLAGS+='-arch ppc' \
+       CXXFLAGS+='-DBIGENDIAN' \
        LDFLAGS+='-arch ppc' \
        all
 
@@ -205,6 +206,7 @@ osx-ppc64:
        CXX='g++' \
        CXXFLAGS="$(GCCFLAGS)" \
        CXXFLAGS+='-arch ppc64' \
+       CXXFLAGS+='-DBIGENDIAN' \
        LDFLAGS+='-arch ppc64' \
        all
 
index 7efc6a0918872d6eb75be6f018c94667c720fc17..a2ad42d0e54f7af87e53b75fca03eb6a300da340 100644 (file)
@@ -25,7 +25,7 @@
 #include <cassert>
 #include <cmath>
 #include <cstring>
-#if !defined(__hpux)
+#if !(defined(__hpux) || defined(__ppc__) || defined(__ppc64__) || defined(__arm__))
 #  include <xmmintrin.h>
 #endif
 
@@ -170,7 +170,7 @@ TTEntry* TranspositionTable::retrieve(const Key posKey) const {
 /// to be loaded from RAM, that can be very slow. When we will
 /// subsequently call retrieve() the TT data will be already
 /// quickly accessible in L1/L2 CPU cache.
-#if defined(__hpux)
+#if defined(__hpux) || defined(__ppc__) || defined(__ppc64__) || defined(__arm__)
 void TranspositionTable::prefetch(const Key) const {} // Not supported on HP UX
 #else
 
index 033d167510494ec196f346a1cfc8afa590ef2230..715874c7d86e88ed56b0cc0bf329c2f123e5ec5c 100644 (file)
@@ -77,7 +77,7 @@ typedef uint64_t Bitboard;
 // is already available as an intrinsic.
 #if defined(_MSC_VER)
 #include <intrin.h>
-#elif defined(__GNUC__)
+#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
 inline void __cpuid(int CPUInfo[4], int InfoType)
 {
   int* eax = CPUInfo + 0;
@@ -90,6 +90,11 @@ inline void __cpuid(int CPUInfo[4], int InfoType)
   __asm__("cpuid" : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
                   : "0" (*eax), "2" (*ecx));
 }
+#else
+inline void __cpuid(int CPUInfo[4], int)
+{
+   CPUInfo[0] = CPUInfo[1] = CPUInfo[2] = CPUInfo[3] = 0;
+}
 #endif
 
 #endif // !defined(TYPES_H_INCLUDED)