diff options
| author | Will Deacon <will@kernel.org> | 2023-08-25 12:35:30 +0100 |
|---|---|---|
| committer | Will Deacon <will@kernel.org> | 2023-08-25 12:35:30 +0100 |
| commit | 1f5a062df2cc521aa9c36f4d69a8b4d526517c14 (patch) | |
| tree | 3d3ad5fe7dc54b191647bc5cd9b6e13bcc96d935 /tools | |
| parent | 6eaae198076080886b9e7d57f4ae06fa782f90ef (diff) | |
| parent | 01948b09edc3fecf8486c57c2d2fb8b80886f3d0 (diff) | |
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; |
