only use __int128 math on x86_64
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 10 Dec 2016 20:17:30 +0000 (20:17 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 10 Dec 2016 20:17:30 +0000 (20:17 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12308 d7cf8633-e32d-0410-b094-e92efae38249

mathlib.c

index 663c6f4..69203a3 100644 (file)
--- a/mathlib.c
+++ b/mathlib.c
@@ -907,7 +907,7 @@ static unsigned int mul_Lecuyer[4] = { 0x12e15e35, 0xb500f16e, 0x2e714eb2, 0xb37
 
 static void mul128(const unsigned int a[], const unsigned int b[], unsigned int dest[4])
 {
-#ifdef __GNUC__
+#if defined(__GNUC__) && defined(__x86_64__)
        unsigned __int128 ia = ((__int128)a[0] << 96) | ((__int128)a[1] << 64) | ((__int128)a[2] << 32) | (a[3]);
        unsigned __int128 ib = ((__int128)b[0] << 96) | ((__int128)b[1] << 64) | ((__int128)b[2] << 32) | (b[3]);
        unsigned __int128 id = ia * ib;