123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #pragma once
- #if !defined(PLATFORM_ARCH_64) && !defined(PLATFORM_ARCH_32)
- #if defined(_AMD64_) || defined(__LP64__) || defined(_WIN64) || defined(_M_ARM64)
- #define PLATFORM_ARCH_64 1
- #define PLATFORM_ARCH_32 0
- #else
- #define PLATFORM_ARCH_64 0
- #define PLATFORM_ARCH_32 1
- #endif
- #elif !defined(PLATFORM_ARCH_64)
- #define PLATFORM_ARCH_64 (PLATFORM_ARCH_32 ? 0 : 1)
- #elif !defined(PLATFORM_ARCH_32)
- #define PLATFORM_ARCH_32 (PLATFORM_ARCH_64 ? 0 : 1)
- #endif
- #ifndef PLATFORM_CACHE_LINE_SIZE
- #define PLATFORM_CACHE_LINE_SIZE 64
- #endif
- #if !defined(PLATFORM_ARCH_BIG_ENDIAN) && !defined(PLATFORM_ARCH_LITTLE_ENDIAN)
- #if defined(__BIG_ENDIAN__)
- #define PLATFORM_ARCH_BIG_ENDIAN 1
- #define PLATFORM_ARCH_LITTLE_ENDIAN 0
- #else
- #define PLATFORM_ARCH_BIG_ENDIAN 0
- #define PLATFORM_ARCH_LITTLE_ENDIAN 1
- #endif
- #elif !defined(PLATFORM_ARCH_BIG_ENDIAN)
- #define PLATFORM_ARCH_BIG_ENDIAN (PLATFORM_ARCH_LITTLE_ENDIAN ? 0 : 1)
- #elif !defined(PLATFORM_ARCH_LITTLE_ENDIAN)
- #define PLATFORM_ARCH_LITTLE_ENDIAN (PLATFORM_ARCH_BIG_ENDIAN ? 0 : 1)
- #endif
- #ifndef PLATFORM_SUPPORTS_SSE
- #if (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(_M_AMD64) || defined(_M_X64) || defined(__SSE2__)
- #define PLATFORM_SUPPORTS_SSE 1
- #else
- #define PLATFORM_SUPPORTS_SSE 0
- #endif
- #endif
- #ifndef PLATFORM_SUPPORTS_NEON
- #if defined(__ARM_NEON) || defined(__ARM_NEON__) || defined(__ARM_NEON_FP) || \
- (defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)))
- #define PLATFORM_SUPPORTS_NEON 1
- #else
- #define PLATFORM_SUPPORTS_NEON 0
- #endif
- #endif
|