1
0
mirror of https://github.com/google/cpu_features.git synced 2025-04-28 15:33:37 +02:00

Merge pull request #51 from google/update_macros

Update macros to detect mips64 and differentiate between x86 32/64.
This commit is contained in:
Guillaume Chatelet 2019-01-16 14:47:40 +01:00 committed by GitHub
commit 4bb7f87a8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,9 +19,19 @@
// Architectures // Architectures
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
#if ((defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || \ #if defined(__pnacl__) || defined(__CLR_VER)
defined(__x86_64__)) && \ #define CPU_FEATURES_ARCH_VM
!defined(__pnacl__) && !defined(__CLR_VER)) #endif
#if (defined(_M_IX86) || defined(__i386__)) && !defined(CPU_FEATURES_ARCH_VM)
#define CPU_FEATURES_ARCH_X86_32
#endif
#if (defined(_M_X64) || defined(__x86_64__)) && !defined(CPU_FEATURES_ARCH_VM)
#define CPU_FEATURES_ARCH_X86_64
#endif
#if defined(CPU_FEATURES_ARCH_X86_32) || defined(CPU_FEATURES_ARCH_X86_64)
#define CPU_FEATURES_ARCH_X86 #define CPU_FEATURES_ARCH_X86
#endif #endif
@ -37,7 +47,15 @@
#define CPU_FEATURES_ARCH_ANY_ARM #define CPU_FEATURES_ARCH_ANY_ARM
#endif #endif
#if defined(__mips__) #if defined(__mips64)
#define CPU_FEATURES_ARCH_MIPS64
#endif
#if defined(__mips__) && !defined(__mips64) // mips64 also declares __mips__
#define CPU_FEATURES_ARCH_MIPS32
#endif
#if defined(CPU_FEATURES_ARCH_MIPS32) || defined(CPU_FEATURES_ARCH_MIPS64)
#define CPU_FEATURES_ARCH_MIPS #define CPU_FEATURES_ARCH_MIPS
#endif #endif
@ -83,10 +101,10 @@
#if defined(__cplusplus) #if defined(__cplusplus)
#define CPU_FEATURES_START_CPP_NAMESPACE \ #define CPU_FEATURES_START_CPP_NAMESPACE \
namespace cpu_features { \ namespace cpu_features { \
extern "C" { extern "C" {
#define CPU_FEATURES_END_CPP_NAMESPACE \ #define CPU_FEATURES_END_CPP_NAMESPACE \
} \ } \
} }
#else #else
#define CPU_FEATURES_START_CPP_NAMESPACE #define CPU_FEATURES_START_CPP_NAMESPACE
@ -97,8 +115,8 @@
// Compiler flags // Compiler flags
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Use the following to check if a feature is known to be available at compile // Use the following to check if a feature is known to be available at
// time. See README.md for an example. // compile time. See README.md for an example.
#if defined(CPU_FEATURES_ARCH_X86) #if defined(CPU_FEATURES_ARCH_X86)
#define CPU_FEATURES_COMPILED_X86_AES defined(__AES__) #define CPU_FEATURES_COMPILED_X86_AES defined(__AES__)
#define CPU_FEATURES_COMPILED_X86_F16C defined(__F16C__) #define CPU_FEATURES_COMPILED_X86_F16C defined(__F16C__)