* Adjustment: Utilize native compiler intrinsics for endian swapping when available.

This commit is contained in:
Robert MacGregor 2021-10-07 09:59:03 -04:00
parent 026409ed7f
commit 15b946fb35
3 changed files with 22 additions and 5 deletions

View file

@ -107,7 +107,7 @@ typedef unsigned long U64;
// This could be reconfigured for static builds, though minimal impact
//# define TORQUE_SUPPORTS_NASM
# endif
#else
#else
# error "GCC: Unsupported Operating System"
#endif
@ -169,5 +169,8 @@ typedef unsigned long U64;
#endif
#endif
#endif // INCLUDED_TYPES_GCC_H
#define TORQUE_U16_ENDIANSWAP_BUILTIN __builtin_bswap16
#define TORQUE_U32_ENDIANSWAP_BUILTIN __builtin_bswap32
#define TORQUE_U64_ENDIANSWAP_BUILTIN __builtin_bswap64
#endif // INCLUDED_TYPES_GCC_H

View file

@ -69,7 +69,7 @@ typedef unsigned _int64 U64;
# define TORQUE_OS_WIN
# define TORQUE_OS_WIN64
# include "platform/types.win.h"
#else
#else
# error "VC: Unsupported Operating System"
#endif
@ -115,5 +115,8 @@ typedef unsigned _int64 U64;
#define TORQUE_UNLIKELY
#endif
#endif // INCLUDED_TYPES_VISUALC_H
#define TORQUE_U16_ENDIANSWAP_BUILTIN _byteswap_ushort
#define TORQUE_U32_ENDIANSWAP_BUILTIN _byteswap_ulong
#define TORQUE_U64_ENDIANSWAP_BUILTIN _byteswap_uint64
#endif // INCLUDED_TYPES_VISUALC_H