Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/google/cpu_features.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamas Zsoldos <54321620+tamaszarm@users.noreply.github.com>2022-04-27 11:26:29 +0300
committerGitHub <noreply@github.com>2022-04-27 11:26:29 +0300
commitb04a9daf7121a6c7e8d046a372fdc194ed2728a0 (patch)
tree7b73065db585d5f7d29bc535467a6fed7d2b4acd
parent7fe96b1d3dd52dd4e142aa154be7fada1d26750d (diff)
Update AArch64 features to Linux 5.17. (#237)
-rw-r--r--include/cpuinfo_aarch64.h6
-rw-r--r--include/internal/hwcaps.h3
-rw-r--r--src/impl_aarch64_linux_or_android.c5
-rw-r--r--test/cpuinfo_aarch64_test.cc3
4 files changed, 16 insertions, 1 deletions
diff --git a/include/cpuinfo_aarch64.h b/include/cpuinfo_aarch64.h
index 1b57d21..f4be5e3 100644
--- a/include/cpuinfo_aarch64.h
+++ b/include/cpuinfo_aarch64.h
@@ -72,6 +72,9 @@ typedef struct {
int rng : 1; // True random number generator support.
int bti : 1; // Branch target identification.
int mte : 1; // Memory tagging extension.
+ int ecv : 1; // Enhanced counter virtualization.
+ int afp : 1; // Alternate floating-point behaviour.
+ int rpres : 1; // 12-bit reciprocal (square root) estimate precision.
// Make sure to update Aarch64FeaturesEnum below if you add a field here.
} Aarch64Features;
@@ -141,6 +144,9 @@ typedef enum {
AARCH64_RNG,
AARCH64_BTI,
AARCH64_MTE,
+ AARCH64_ECV,
+ AARCH64_AFP,
+ AARCH64_RPRES,
AARCH64_LAST_,
} Aarch64FeaturesEnum;
diff --git a/include/internal/hwcaps.h b/include/internal/hwcaps.h
index d7fc782..cc2c984 100644
--- a/include/internal/hwcaps.h
+++ b/include/internal/hwcaps.h
@@ -80,6 +80,9 @@ CPU_FEATURES_START_CPP_NAMESPACE
#define AARCH64_HWCAP2_RNG (1UL << 16)
#define AARCH64_HWCAP2_BTI (1UL << 17)
#define AARCH64_HWCAP2_MTE (1UL << 18)
+#define AARCH64_HWCAP2_ECV (1UL << 19)
+#define AARCH64_HWCAP2_AFP (1UL << 20)
+#define AARCH64_HWCAP2_RPRES (1UL << 21)
// http://elixir.free-electrons.com/linux/latest/source/arch/arm/include/uapi/asm/hwcap.h
#define ARM_HWCAP_SWP (1UL << 0)
diff --git a/src/impl_aarch64_linux_or_android.c b/src/impl_aarch64_linux_or_android.c
index 745beb9..ef923d9 100644
--- a/src/impl_aarch64_linux_or_android.c
+++ b/src/impl_aarch64_linux_or_android.c
@@ -74,7 +74,10 @@
LINE(AARCH64_DGH, dgh, "dgh", 0, AARCH64_HWCAP2_DGH) \
LINE(AARCH64_RNG, rng, "rng", 0, AARCH64_HWCAP2_RNG) \
LINE(AARCH64_BTI, bti, "bti", 0, AARCH64_HWCAP2_BTI) \
- LINE(AARCH64_MTE, mte, "mte", 0, AARCH64_HWCAP2_MTE)
+ LINE(AARCH64_MTE, mte, "mte", 0, AARCH64_HWCAP2_MTE) \
+ LINE(AARCH64_ECV, ecv, "ecv", 0, AARCH64_HWCAP2_ECV) \
+ LINE(AARCH64_AFP, afp, "afp", 0, AARCH64_HWCAP2_AFP) \
+ LINE(AARCH64_RPRES, rpres, "rpres", 0, AARCH64_HWCAP2_RPRES)
#define INTROSPECTION_PREFIX Aarch64
#define INTROSPECTION_ENUM_PREFIX AARCH64
#include "define_introspection_and_hwcaps.inl"
diff --git a/test/cpuinfo_aarch64_test.cc b/test/cpuinfo_aarch64_test.cc
index 04b6143..0cc11fe 100644
--- a/test/cpuinfo_aarch64_test.cc
+++ b/test/cpuinfo_aarch64_test.cc
@@ -168,6 +168,9 @@ CPU revision : 3)");
EXPECT_FALSE(info.features.rng);
EXPECT_FALSE(info.features.bti);
EXPECT_FALSE(info.features.mte);
+ EXPECT_FALSE(info.features.ecv);
+ EXPECT_FALSE(info.features.afp);
+ EXPECT_FALSE(info.features.rpres);
}
} // namespace