aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authornotaz2012-11-30 02:53:25 +0200
committernotaz2012-12-02 02:37:11 +0200
commit665f33e1e8ce2e40a7939a33075c3bce1c90790c (patch)
treee698dae48cdae636961762d00fb6a42e80653dcd /include
parentda710571b75db7031b82924ab3ad47eb645ce215 (diff)
downloadpcsx_rearmed-665f33e1e8ce2e40a7939a33075c3bce1c90790c.tar.gz
pcsx_rearmed-665f33e1e8ce2e40a7939a33075c3bce1c90790c.tar.bz2
pcsx_rearmed-665f33e1e8ce2e40a7939a33075c3bce1c90790c.zip
improve ARM feature detection
Diffstat (limited to 'include')
-rw-r--r--include/arm_features.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/arm_features.h b/include/arm_features.h
new file mode 100644
index 0000000..dcdda91
--- /dev/null
+++ b/include/arm_features.h
@@ -0,0 +1,28 @@
+#ifndef __ARM_FEATURES_H__
+#define __ARM_FEATURES_H__
+
+#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
+ || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \
+ || defined(__ARM_ARCH_7EM__)
+
+#define HAVE_ARMV7
+#define HAVE_ARMV6
+#define HAVE_ARMV5
+
+#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
+ || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) \
+ || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__)
+
+#define HAVE_ARMV6
+#define HAVE_ARMV5
+
+#elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5E__) \
+ || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__)
+
+#define HAVE_ARMV5
+
+#endif
+
+/* no need for HAVE_NEON - GCC defines __ARM_NEON__ consistently */
+
+#endif /* __ARM_FEATURES_H__ */