diff --git a/node/Utils.hpp b/node/Utils.hpp index 99d24be8f..4e803c27a 100644 --- a/node/Utils.hpp +++ b/node/Utils.hpp @@ -434,7 +434,6 @@ static ZT_INLINE I loadAsIsEndian(const void *const p) noexcept { #ifdef ZT_NO_UNALIGNED_ACCESS I tmp; -#pragma unroll for(int i=0;i<(int)sizeof(I);++i) reinterpret_cast(&tmp)[i] = reinterpret_cast(p)[i]; return tmp; @@ -454,7 +453,6 @@ template static ZT_INLINE void storeAsIsEndian(void *const p,const I i) noexcept { #ifdef ZT_NO_UNALIGNED_ACCESS -#pragma unroll for(unsigned int k=0;k(p)[k] = reinterpret_cast(&i)[k]; #else @@ -523,11 +521,15 @@ static ZT_INLINE I loadLittleEndian(const void *const p) noexcept template static ZT_INLINE void storeLittleEndian(void *const p,const I i) noexcept { -#if __BYTE_ORDER == __BIG_ENDIAN || defined(ZT_NO_UNALIGNED_ACCESS) +#if __BYTE_ORDER == __BIG_ENDIAN storeAsIsEndian(p,_swap_bytes_bysize::s(i)); +#else +#ifdef ZT_NO_UNALIGNED_ACCESS + storeAsIsEndian(p,i); #else *reinterpret_cast(p) = i; #endif +#endif } } // namespace Utils