Blob Blame History Raw
--- DevIL-1.6.8/src-IL/include/il_endian.h.orig	2006-12-21 03:40:57.000000000 +0000
+++ DevIL-1.6.8/src-IL/include/il_endian.h	2006-12-21 03:33:34.000000000 +0000
@@ -15,6 +15,10 @@
 
 #include "il_internal.h"
 
+#ifdef GCC_X86_ASM
+#include <byteswap.h>
+#endif
+
 #ifdef WORDS_BIGENDIAN //this is defined by ./configure
 	#ifndef __BIG_ENDIAN__
 	#define __BIG_ENDIAN__
@@ -101,9 +105,7 @@
 		}
 	#else
 	#ifdef GCC_X86_ASM
-		asm("ror $8,%0"
-			: 
-			: "r"  (*s) );
+		*s = __bswap_16(*s);
 	#else
 		*s = ((*s)>>8) | ((*s)<<8);
 	#endif //GCC_X86_ASM
@@ -124,8 +126,7 @@
 		}
 	#else
 	#ifdef GCC_X86_ASM
-			asm("bswap  %0;"
-				: "=r" (*i) );
+		*i = __bswap_32(*i);
 	#else
 		*i = ((*i)>>24) | (((*i)>>8) & 0xff00) | (((*i)<<8) & 0xff0000) | ((*i)<<24);
 	#endif //GCC_X86_ASM