summaryrefslogtreecommitdiff
path: root/stdafx.h
diff options
context:
space:
mode:
authorbjarni <bjarni@openttd.org>2006-02-12 14:31:33 +0000
committerbjarni <bjarni@openttd.org>2006-02-12 14:31:33 +0000
commit235e72829e55cbb1e7632fe1b2d1429f6f3be054 (patch)
tree69d0102238a85f5bd3d34ca4d93e1973a70ab771 /stdafx.h
parent8cf72cdcabcf95da90dc152cb9459b94f4ff7041 (diff)
downloadopenttd-235e72829e55cbb1e7632fe1b2d1429f6f3be054.tar.xz
(svn r3596) -Codechange: [OSX] changed to use Apple's macros instead of OTTD macros for endian conversion
This increases the execution speed a lot since GCC can't detect the OTTD macro as an endian conversion while Apple's code uses the instruction to convert endian instead of a series of instructions to produce the same result Since we don't have that many endian conversions in the game, overall performance should not increase noteworthy
Diffstat (limited to 'stdafx.h')
-rw-r--r--stdafx.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/stdafx.h b/stdafx.h
index 05fa003f7..f3fbfbaf3 100644
--- a/stdafx.h
+++ b/stdafx.h
@@ -52,8 +52,15 @@
# endif
#endif /* __MORPHOS__ */
+#ifdef __APPLE__
+#include "os/macosx/osx_stdafx.h"
+// make endian swapping use Apple's macros to increase speed
+#define BSWAP32(x) Endian32_Swap(x)
+#define BSWAP16(x) Endian16_Swap(x)
+#else
#define BSWAP32(x) ((((x) >> 24) & 0xFF) | (((x) >> 8) & 0xFF00) | (((x) << 8) & 0xFF0000) | (((x) << 24) & 0xFF000000))
#define BSWAP16(x) ((x) >> 8 | (x) << 8)
+#endif
// by default we use [] var arrays
#define VARARRAY_SIZE