[Scummvm-cvs-logs] CVS: scummvm/common scummsys.h,1.26,1.27

Max Horn fingolfin at users.sourceforge.net
Sat Jun 14 11:53:06 CEST 2003


Update of /cvsroot/scummvm/scummvm/common
In directory sc8-pr-cvs1:/tmp/cvs-serv12056/common

Modified Files:
	scummsys.h 
Log Message:
Patch #754151: Removed READ_*_UNALIGNED and always read stuff bytewise; augmented by some more changes of mine

Index: scummsys.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/scummsys.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- scummsys.h	21 May 2003 20:35:48 -0000	1.26
+++ scummsys.h	14 Jun 2003 18:52:29 -0000	1.27
@@ -301,12 +301,21 @@
 	#error No system type defined
 #endif
 
-#define SWAP_BYTES(a) ((((a) >> 24) & 0xFF) | (((a) >> 8) & 0xFF00) | \
-									(((a) << 8) & 0xFF0000) | (((a) << 24) & 0xFF000000))
+FORCEINLINE uint32 SWAP_BYTES_32(uint32 a) {
+	return ((a >> 24) & 0x000000FF) |
+		   ((a >>  8) & 0x0000FF00) |
+		   ((a <<  8) & 0x00FF0000) |
+		   ((a << 24) & 0xFF000000);
+}
+
+FORCEINLINE uint16 SWAP_BYTES_16(uint16 a) {
+	return ((a >> 8) & 0x00FF) + ((a << 8) & 0xFF00);
+}
+
 
 #if defined(SCUMM_LITTLE_ENDIAN)
 
-	#define PROTO_MKID(a) SWAP_BYTES(a)
+	#define PROTO_MKID(a) SWAP_BYTES_32(a)
 	#define PROTO_MKID_BE(a) (a & 0xffffffff)
 
 	#if defined(INVERSE_MKID)
@@ -317,106 +326,77 @@
 	#  define MKID_BE(a) PROTO_MKID_BE(a)
 	#endif
 
-	#if defined(SCUMM_NEED_ALIGNMENT)
-		FORCEINLINE uint READ_LE_UINT16(const void *ptr) {
-			return (((const byte *)ptr)[1] << 8)|((const byte *)ptr)[0];
-		}
-	#else
-		FORCEINLINE uint READ_LE_UINT16(const void *ptr) {
-			return *(const uint16 *)(ptr);
-		}
-	#endif
+	#define READ_UINT32(a) READ_LE_UINT32(a)
 
-	FORCEINLINE uint READ_BE_UINT16(const void *ptr) {
-		return (((const byte *)ptr)[0] << 8)|((const byte *)ptr)[1];
-	}
+	#define FROM_LE_32(a) (a)
+	#define FROM_LE_16(a) (a)
 
-	#if defined(SCUMM_NEED_ALIGNMENT)
-		FORCEINLINE uint32 READ_LE_UINT32(const void *ptr) {
-			const byte *b = (const byte *)ptr;
-			return (b[3] << 24) + (b[2] <<16) + (b[1] << 8) + (b[0]);
-		}
-	#else
-		FORCEINLINE uint32 READ_LE_UINT32(const void *ptr) {
-			return *(const uint32 *)(ptr);
-		}
-	#endif
-	
-	FORCEINLINE uint32 READ_BE_UINT32(const void *ptr) {
-		const byte *b = (const byte *)ptr;
-		return (b[0] << 24) + (b[1] << 16) + (b[2] << 8) + (b[3]);
-	}
+	#define TO_LE_32(a) (a)
+	#define TO_LE_16(a) (a)
 
-	#define READ_BE_UINT32_UNALIGNED READ_BE_UINT32
-	#define READ_BE_UINT16_UNALIGNED READ_BE_UINT16
+	#define TO_BE_32(a) SWAP_BYTES_32(a)
+	#define TO_BE_16(a) SWAP_BYTES_16(a)
 
-	#define READ_UINT32_UNALIGNED(a) READ_LE_UINT32(a)
+#elif defined(SCUMM_BIG_ENDIAN)
 
-	#define FROM_LE_32(__a__) __a__
-	#define FROM_LE_16(__a__) __a__
+	#define MKID(a) (a)
+	#define MKID_BE(a) (a)
+	//#define MKID_BE(a) SWAP_BYTES_32(a)
 
-	#define TO_LE_32(__a__) __a__
-	#define TO_LE_16(__a__) __a__
+	#define READ_UINT32(a) READ_BE_UINT32(a)
 
-	#define TO_BE_32(a) SWAP_BYTES(a)
+	#define FROM_LE_32(a) SWAP_BYTES_32(a)
+	#define FROM_LE_16(a) SWAP_BYTES_16(a)
 
-	FORCEINLINE uint16 TO_BE_16(uint16 a) { return (a >> 8) | (a << 8); }
+	#define TO_LE_32(a) SWAP_BYTES_32(a)
+	#define TO_LE_16(a) SWAP_BYTES_16(a)
 
-#elif defined(SCUMM_BIG_ENDIAN)
+	#define TO_BE_32(a) (a)
+	#define TO_BE_16(a) (a)
 
-	#define MKID(a) (a)
-	#define MKID_BE(a) (a)
-	//#define MKID_BE(a) SWAP_BYTES(a)
+#else
 
-	FORCEINLINE uint32 FROM_LE_32(uint32 a) {
-		return ((a >> 24) & 0xFF) + ((a >> 8) & 0xFF00) + (( a<< 8) & 0xFF0000) \
-						+ ((a<<24)&0xFF000000);
-	}
+	#error No endianness defined
 
-	FORCEINLINE uint16 FROM_LE_16(uint16 a) {
-		return ((a >> 8) & 0xFF) + ((a << 8) & 0xFF00);
-	}
+#endif
 
-	#define TO_LE_32 FROM_LE_32
-	#define TO_LE_16 FROM_LE_16
 
+#if defined(SCUMM_NEED_ALIGNMENT) || defined(SCUMM_BIG_ENDIAN)
+	FORCEINLINE uint16 READ_LE_UINT16(const void *ptr) {
+		const byte *b = (const byte *)ptr;
+		return (b[1] << 8) + b[0];
+	}
 	FORCEINLINE uint32 READ_LE_UINT32(const void *ptr) {
 		const byte *b = (const byte *)ptr;
 		return (b[3] << 24) + (b[2] << 16) + (b[1] << 8) + (b[0]);
 	}
-
-	FORCEINLINE uint32 READ_BE_UINT32(const void *ptr) {
-		return *(const uint32 *)(ptr);
+#else
+	FORCEINLINE uint16 READ_LE_UINT16(const void *ptr) {
+		return *(const uint16 *)(ptr);
 	}
-
-	FORCEINLINE uint READ_LE_UINT16(const void *ptr) {
-		const byte *b = (const byte *)ptr;
-		return (b[1] << 8) + b[0];
+	FORCEINLINE uint32 READ_LE_UINT32(const void *ptr) {
+		return *(const uint32 *)(ptr);
 	}
+#endif
 
-	FORCEINLINE uint READ_BE_UINT16(const void *ptr) {
-		return *(const uint16 *)(ptr);
-	}
 
-	FORCEINLINE uint READ_BE_UINT16_UNALIGNED(const void *ptr) {
+#if defined(SCUMM_NEED_ALIGNMENT) || defined(SCUMM_LITTLE_ENDIAN)
+	FORCEINLINE uint16 READ_BE_UINT16(const void *ptr) {
 		return (((const byte *)ptr)[0] << 8)|((const byte *)ptr)[1];
 	}
-
-	FORCEINLINE uint32 READ_BE_UINT32_UNALIGNED(const void *ptr) {
+	FORCEINLINE uint32 READ_BE_UINT32(const void *ptr) {
 		const byte *b = (const byte*)ptr;
 		return (b[0] << 24) + (b[1] << 16) + (b[2] << 8) + (b[3]);
 	}
-
-	#define READ_UINT32_UNALIGNED READ_BE_UINT32_UNALIGNED
-
-	#define TO_BE_32(a) (a)
-	#define TO_BE_16(a) (a)
-
 #else
-
-	#error No endianness defined
-
+	FORCEINLINE uint16 READ_BE_UINT16(const void *ptr) {
+		return *(const uint16 *)(ptr);
+	}
+	FORCEINLINE uint32 READ_BE_UINT32(const void *ptr) {
+		return *(const uint32 *)(ptr);
+	}
 #endif
+
 
 	
 #if defined(NEWGUI_256)





More information about the Scummvm-git-logs mailing list