diff options
author | 2023-08-25 12:35:30 +0100 | |
---|---|---|
committer | 2023-08-25 12:35:30 +0100 | |
commit | 1f5a062df2cc521aa9c36f4d69a8b4d526517c14 (patch) | |
tree | 3d3ad5fe7dc54b191647bc5cd9b6e13bcc96d935 /tools | |
parent | Linux 6.5-rc3 (diff) | |
parent | arm64/fpsimd: Only provide the length to cpufeature for xCR registers (diff) | |
download | wireguard-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.c | 15 |
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; |