diff options
Diffstat (limited to 'src/libs/3rdparty/botan/src/lib/utils/bswap.h')
-rw-r--r-- | src/libs/3rdparty/botan/src/lib/utils/bswap.h | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/src/libs/3rdparty/botan/src/lib/utils/bswap.h b/src/libs/3rdparty/botan/src/lib/utils/bswap.h deleted file mode 100644 index 8d5731f1b0..0000000000 --- a/src/libs/3rdparty/botan/src/lib/utils/bswap.h +++ /dev/null @@ -1,99 +0,0 @@ -/* -* Byte Swapping Operations -* (C) 1999-2011 Jack Lloyd -* (C) 2007 Yves Jerschow -* -* Botan is released under the Simplified BSD License (see license.txt) -*/ - -#ifndef BOTAN_BYTE_SWAP_H_ -#define BOTAN_BYTE_SWAP_H_ - -#include <botan/types.h> -#include <botan/rotate.h> - -#if defined(BOTAN_BUILD_COMPILER_IS_MSVC) - #include <stdlib.h> -#endif - -namespace Botan { - -/** -* Swap a 16 bit integer -*/ -inline uint16_t reverse_bytes(uint16_t val) - { - return rotl<8>(val); - } - -/** -* Swap a 32 bit integer -*/ -inline uint32_t reverse_bytes(uint32_t val) - { -#if defined(BOTAN_BUILD_COMPILER_IS_GCC) || defined(BOTAN_BUILD_COMPILER_IS_CLANG) - return __builtin_bswap32(val); - -#elif defined(BOTAN_BUILD_COMPILER_IS_MSVC) - return _byteswap_ulong(val); - -#elif defined(BOTAN_USE_GCC_INLINE_ASM) && defined(BOTAN_TARGET_CPU_IS_X86_FAMILY) - - // GCC-style inline assembly for x86 or x86-64 - asm("bswapl %0" : "=r" (val) : "0" (val)); - return val; - -#else - - // Generic implementation - return (rotr<8>(val) & 0xFF00FF00) | (rotl<8>(val) & 0x00FF00FF); - -#endif - } - -/** -* Swap a 64 bit integer -*/ -inline uint64_t reverse_bytes(uint64_t val) - { -#if defined(BOTAN_BUILD_COMPILER_IS_GCC) || defined(BOTAN_BUILD_COMPILER_IS_CLANG) - return __builtin_bswap64(val); - -#elif defined(BOTAN_BUILD_COMPILER_IS_MSVC) - return _byteswap_uint64(val); - -#elif defined(BOTAN_USE_GCC_INLINE_ASM) && defined(BOTAN_TARGET_ARCH_IS_X86_64) - // GCC-style inline assembly for x86-64 - asm("bswapq %0" : "=r" (val) : "0" (val)); - return val; - -#else - /* Generic implementation. Defined in terms of 32-bit bswap so any - * optimizations in that version can help. - */ - - uint32_t hi = static_cast<uint32_t>(val >> 32); - uint32_t lo = static_cast<uint32_t>(val); - - hi = reverse_bytes(hi); - lo = reverse_bytes(lo); - - return (static_cast<uint64_t>(lo) << 32) | hi; -#endif - } - -/** -* Swap 4 Ts in an array -*/ -template<typename T> -inline void bswap_4(T x[4]) - { - x[0] = reverse_bytes(x[0]); - x[1] = reverse_bytes(x[1]); - x[2] = reverse_bytes(x[2]); - x[3] = reverse_bytes(x[3]); - } - -} - -#endif |