9#define BYTESWAP_ORDER16_unsigned(x) ((((x) >> 8) & 0xff) + (((x) << 8) & 0xff00))
10#define BYTESWAP_ORDER32_unsigned(x) (((x) >> 24) + (((x) >> 8) & 0xff00) + (((x) << 8) & 0xff0000) + ((x) << 24))
27 Value = ((
Value << 8) & 0xFF00FF00FF00FF00ULL ) | ((
Value >> 8) & 0x00FF00FF00FF00FFULL);
28 Value = ((
Value << 16) & 0xFFFF0000FFFF0000ULL ) | ((
Value >> 16) & 0x0000FFFF0000FFFFULL);
35 #define UE_BYTESWAP_INTRINSIC_PRIVATE_16(Val) _byteswap_ushort(Val);
36 #define UE_BYTESWAP_INTRINSIC_PRIVATE_32(Val) _byteswap_ulong(Val);
37 #define UE_BYTESWAP_INTRINSIC_PRIVATE_64(Val) _byteswap_uint64(Val);
38#elif defined(__clang__)
39 #if (__has_builtin(__builtin_bswap16))
40 #define UE_BYTESWAP_INTRINSIC_PRIVATE_16(Val) __builtin_bswap16(Val);
42 #if (__has_builtin(__builtin_bswap32))
43 #define UE_BYTESWAP_INTRINSIC_PRIVATE_32(Val) __builtin_bswap32(Val);
45 #if (__has_builtin(__builtin_bswap64))
46 #define UE_BYTESWAP_INTRINSIC_PRIVATE_64(Val) __builtin_bswap64(Val);
52#if defined(UE_BYTESWAP_INTRINSIC_PRIVATE_16)
55 return Internal::ByteSwapGeneric16(
Val);
66#if defined(UE_BYTESWAP_INTRINSIC_PRIVATE_32)
69 return Internal::ByteSwapGeneric32(
Val);
80#if defined(UE_BYTESWAP_INTRINSIC_PRIVATE_64)
83 return Internal::ByteSwapGeneric64(
Value);
95 return *
reinterpret_cast<const float*
>(&
uval);
101 return *
reinterpret_cast<const double*
>(&
uval);
104#if PLATFORM_TCHAR_IS_UTF8CHAR
108 static_assert(
sizeof(
TCHAR) == 1,
"Assuming TCHAR is 1 byte wide.");
117 static_assert(
sizeof(
TCHAR) ==
sizeof(
uint16),
"Assuming TCHAR is 2 bytes wide.");
118 for (
TCHAR* c = str; *c; ++c)
127#if PLATFORM_LITTLE_ENDIAN
128 #define INTEL_ORDER16(x) (x)
129 #define INTEL_ORDER32(x) (x)
130 #define INTEL_ORDERF(x) (x)
131 #define INTEL_ORDER64(x) (x)
132 #define INTEL_ORDER_TCHARARRAY(x)
133 #define NETWORK_ORDER16(x) BYTESWAP_ORDER16(x)
134 #define NETWORK_ORDER32(x) BYTESWAP_ORDER32(x)
135 #define NETWORK_ORDERF(x) BYTESWAP_ORDERF(x)
136 #define NETWORK_ORDER64(x) BYTESWAP_ORDER64(x)
137 #define NETWORK_ORDER_TCHARARRAY(x) BYTESWAP_ORDER_TCHARARRAY(x)
139 #define INTEL_ORDER16(x) BYTESWAP_ORDER16(x)
140 #define INTEL_ORDER32(x) BYTESWAP_ORDER32(x)
141 #define INTEL_ORDERF(x) BYTESWAP_ORDERF(x)
142 #define INTEL_ORDER64(x) BYTESWAP_ORDER64(x)
143 #define INTEL_ORDER_TCHARARRAY(x) BYTESWAP_ORDER_TCHARARRAY(x)
144 #define NETWORK_ORDER16(x) (x)
145 #define NETWORK_ORDER32(x) (x)
146 #define NETWORK_ORDERF(x) (x)
147 #define NETWORK_ORDER64(x) (x)
148 #define NETWORK_ORDER_TCHARARRAY(x)
double BYTESWAP_ORDERD(double val)
Definition ByteSwap.h:98
#define BYTESWAP_ORDER16_unsigned(x)
Definition ByteSwap.h:9
uint64 BYTESWAP_ORDER64(uint64 Value)
Definition ByteSwap.h:78
float BYTESWAP_ORDERF(float val)
Definition ByteSwap.h:92
uint32 BYTESWAP_ORDER32(uint32 Val)
Definition ByteSwap.h:64
void BYTESWAP_ORDER_TCHARARRAY(TCHAR *str)
Definition ByteSwap.h:115
#define BYTESWAP_ORDER32_unsigned(x)
Definition ByteSwap.h:10
uint16 BYTESWAP_ORDER16(uint16 Val)
Definition ByteSwap.h:50
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
float Val(const FString &Value)
Definition UnrealMath.cpp:3163