aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools
diff options
context:
space:
mode:
authorWill Deacon <will@kernel.org>2023-08-25 12:35:30 +0100
committerWill Deacon <will@kernel.org>2023-08-25 12:35:30 +0100
commit1f5a062df2cc521aa9c36f4d69a8b4d526517c14 (patch)
tree3d3ad5fe7dc54b191647bc5cd9b6e13bcc96d935 /tools
parentLinux 6.5-rc3 (diff)
parentarm64/fpsimd: Only provide the length to cpufeature for xCR registers (diff)
downloadwireguard-linux-1f5a062df2cc521aa9c36f4d69a8b4d526517c14.tar.xz
wireguard-linux-1f5a062df2cc521aa9c36f4d69a8b4d526517c14.zip
Merge branch 'for-next/cpufeature' into for-next/core
* for-next/cpufeature: arm64/fpsimd: Only provide the length to cpufeature for xCR registers selftests/arm64: add HWCAP2_HBC test arm64: add HWCAP for FEAT_HBC (hinted conditional branches) arm64/cpufeature: Use ARM64_CPUID_FIELD() to match EVT
Diffstat (limited to 'tools')
-rw-r--r--tools/testing/selftests/arm64/abi/hwcap.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/testing/selftests/arm64/abi/hwcap.c b/tools/testing/selftests/arm64/abi/hwcap.c
index d4ad813fed10..fabeac9a1b5e 100644
--- a/tools/testing/selftests/arm64/abi/hwcap.c
+++ b/tools/testing/selftests/arm64/abi/hwcap.c
@@ -208,6 +208,13 @@ static void svebf16_sigill(void)
asm volatile(".inst 0x658aa000" : : : "z0");
}
+static void hbc_sigill(void)
+{
+ /* BC.EQ +4 */
+ asm volatile("cmp xzr, xzr\n"
+ ".inst 0x54000030" : : : "cc");
+}
+
static const struct hwcap_data {
const char *name;
unsigned long at_hwcap;
@@ -386,6 +393,14 @@ static const struct hwcap_data {
.hwcap_bit = HWCAP2_SVE_EBF16,
.cpuinfo = "sveebf16",
},
+ {
+ .name = "HBC",
+ .at_hwcap = AT_HWCAP2,
+ .hwcap_bit = HWCAP2_HBC,
+ .cpuinfo = "hbc",
+ .sigill_fn = hbc_sigill,
+ .sigill_reliable = true,
+ },
};
static bool seen_sigill;