aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJacob Bramley <jacob.bramley@arm.com>2018-09-14 15:57:57 +0100
committerJacob Bramley <jacob.bramley@arm.com>2018-10-02 11:10:28 +0100
commit4482be77f92ce8c0ace34096440e134f61d60016 (patch)
tree406110a98a326fb2ba9e5d201d9eeb048a7d3ad9 /src
parentfdf332ab24163073b964d8017435332984d539f2 (diff)
Extend CPUFeatures to support Armv8.4.
Change-Id: I9ad2541b4e570414dbf59c20134c8342076caec9
Diffstat (limited to 'src')
-rw-r--r--src/cpu-features.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/cpu-features.h b/src/cpu-features.h
index f94b955f..9dac583b 100644
--- a/src/cpu-features.h
+++ b/src/cpu-features.h
@@ -56,6 +56,8 @@ namespace vixl {
V(kLORegions, "LORegions", NULL) \
/* Rounding doubling multiply add/subtract: SQRDMLAH and SQRDMLSH. */ \
V(kRDM, "RDM", "asimdrdm") \
+ /* Scalable Vector Extension. */ \
+ V(kSVE, "SVE", "sve") \
/* SDOT and UDOT support (in NEON). */ \
V(kDotProduct, "DotProduct", "asimddp") \
/* Half-precision (FP16) support for FP and NEON, respectively. */ \
@@ -78,12 +80,21 @@ namespace vixl {
V(kPAuthGeneric, "PAuthGeneric", NULL) \
/* Generic authentication uses QARMA. */ \
V(kPAuthGenericQARMA, "PAuthGenericQARMA", NULL) \
- /* JavaScript-style FP <-> integer conversion instruction: FJCVTZS. */ \
+ /* JavaScript-style FP -> integer conversion instruction: FJCVTZS. */ \
V(kJSCVT, "JSCVT", "jscvt") \
+ /* Complex number support for NEON: FCMLA and FCADD. */ \
+ V(kFcma, "Fcma", "fcma") \
/* RCpc-based model (for weaker release consistency): LDAPR and variants. */ \
V(kRCpc, "RCpc", "lrcpc") \
- /* Complex number support for NEON: FCMLA and FCADD. */ \
- V(kFcma, "Fcma", "fcma")
+ V(kRCpcImm, "RCpc (imm)", "ilrcpc") \
+ /* Flag manipulation instructions: SETF{8,16}, CFINV, RMIF. */ \
+ V(kFlagM, "FlagM", "flagm") \
+ /* Unaligned single-copy atomicity. */ \
+ V(kUSCAT, "USCAT", "uscat") \
+ /* FP16 fused multiply-add or -subtract long: FMLAL{2}, FMLSL{2}. */ \
+ V(kFHM, "FHM", "asimdfhm") \
+ /* Data-independent timing (for selected instructions). */ \
+ V(kDIT, "DIT", "dit")
// clang-format on