summaryrefslogtreecommitdiff
path: root/src/common/cbasetypes.h
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2020-06-28 01:26:45 +0200
committerHaru <haru@dotalux.com>2020-06-28 12:34:52 +0200
commite3e1acb092a5ba8ddc4dcb116ec4bcf7686e140d (patch)
tree966aef53c8c6543bee3fc1ee3b7ac1a29f5389a5 /src/common/cbasetypes.h
parent373d9e0d6395cd9fff55c55e1cff4ee09e241fa8 (diff)
downloadhercules-e3e1acb092a5ba8ddc4dcb116ec4bcf7686e140d.tar.gz
hercules-e3e1acb092a5ba8ddc4dcb116ec4bcf7686e140d.tar.bz2
hercules-e3e1acb092a5ba8ddc4dcb116ec4bcf7686e140d.tar.xz
hercules-e3e1acb092a5ba8ddc4dcb116ec4bcf7686e140d.zip
Add detection of ARMv8 and improve detection of ARMv7
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'src/common/cbasetypes.h')
-rw-r--r--src/common/cbasetypes.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h
index 31d89d66b..06333a7b2 100644
--- a/src/common/cbasetypes.h
+++ b/src/common/cbasetypes.h
@@ -62,16 +62,24 @@
#endif
// Standardize the ARM platform version, if available (the only values we're interested in right now are >= ARMv6)
+#ifdef __ARM_ARCH
+#define __ARM_ARCH_VERSION__ __ARM_ARCH
+#else
#if defined(__ARMV6__) || defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) \
|| defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) // gcc ARMv6
#define __ARM_ARCH_VERSION__ 6
-#elif defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7S__) // gcc ARMv7
+#elif defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7S__) // gcc ARMv7
#define __ARM_ARCH_VERSION__ 7
+#elif defined(__ARM_ARCH_8__) || defined(__ARM_ARCH_8A__)
+#define __ARM_ARCH_VERSION__ 8
#elif defined(_M_ARM) // MSVC
#define __ARM_ARCH_VERSION__ _M_ARM
+#elif defined(__TARGET_ARCH_ARM) // RVCT
+#define __ARM_ARCH_VERSION__ __TARGET_ARCH_ARM
#else
#define __ARM_ARCH_VERSION__ 0
#endif
+#endif
// Necessary for __NetBSD_Version__ (defined as VVRR00PP00) on NetBSD
#ifdef __NETBSD__