55 static FORCEINLINE
void*
Memmove(
void* Dest,
const void* Src, SIZE_T Count)
57 return memmove(Dest, Src, Count);
60 static FORCEINLINE int32_t Memcmp(
const void* Buf1,
const void* Buf2, SIZE_T Count)
62 return memcmp(Buf1, Buf2, Count);
65 static FORCEINLINE
void* Memset(
void* Dest, uint8_t Char, SIZE_T Count)
67 return memset(Dest, Char, Count);
70 static FORCEINLINE
void* Memzero(
void* Dest, SIZE_T Count)
72 return memset(Dest, 0, Count);
75 static FORCEINLINE
void* Memcpy(
void* Dest,
const void* Src, SIZE_T Count)
77 return memcpy(Dest, Src, Count);
81 static FORCEINLINE
void*
BigBlockMemcpy(
void* Dest,
const void* Src, SIZE_T Count)
83 return memcpy(Dest, Src, Count);
87 static FORCEINLINE
void*
StreamingMemcpy(
void* Dest,
const void* Src, SIZE_T Count)
89 return memcpy(Dest, Src, Count);
93 static FORCEINLINE
void*
ParallelMemcpy(
void* Dest,
const void* Src, SIZE_T Count, EMemcpyCachePolicy Policy = EMemcpyCachePolicy::StoreCached)
96 return memcpy(Dest, Src, Count);
100 template <
typename T>
101 static FORCEINLINE
void Valswap(T& A, T& B)
112 static void MemswapGreaterThan8(
void* Ptr1,
void* Ptr2, SIZE_T Size);
116 static inline void Memswap(
void* Ptr1,
void* Ptr2, SIZE_T Size)
124 Valswap(*(uint8_t*)Ptr1, *(uint8_t*)Ptr2);
128 Valswap(*(uint16_t*)Ptr1, *(uint16_t*)Ptr2);
132 Valswap(*((uint16_t*&)Ptr1)++, *((uint16_t*&)Ptr2)++);
133 Valswap(*(uint8_t*)Ptr1, *(uint8_t*)Ptr2);
137 Valswap(*(uint32_t*)Ptr1, *(uint32_t*)Ptr2);
141 Valswap(*((uint32_t*&)Ptr1)++, *((uint32_t*&)Ptr2)++);
142 Valswap(*(uint8_t*)Ptr1, *(uint8_t*)Ptr2);
146 Valswap(*((uint32_t*&)Ptr1)++, *((uint32_t*&)Ptr2)++);
147 Valswap(*(uint16_t*)Ptr1, *(uint16_t*)Ptr2);
151 Valswap(*((uint32_t*&)Ptr1)++, *((uint32_t*&)Ptr2)++);
152 Valswap(*((uint16_t*&)Ptr1)++, *((uint16_t*&)Ptr2)++);
153 Valswap(*(uint8_t*)Ptr1, *(uint8_t*)Ptr2);
157 Valswap(*(uint64_t*)Ptr1, *(uint64_t*)Ptr2);
161 Valswap(((uint64_t*)Ptr1)[0], ((uint64_t*)Ptr2)[0]);
162 Valswap(((uint64_t*)Ptr1)[1], ((uint64_t*)Ptr2)[1]);
166 MemswapGreaterThan8(Ptr1, Ptr2, Size);