Commit 80652cc0 authored by Joey Gouly's avatar Joey Gouly Committed by Catalin Marinas
Browse files

selftests/arm64: add HWCAP2_LRCPC3 test



Add a test for the newly added HWCAP2_LRCPC3.

Signed-off-by: default avatarJoey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20230919162757.2707023-3-joey.gouly@arm.com


Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 338a835f
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -295,6 +295,19 @@ static void uscat_sigbus(void)
	asm volatile(".inst 0xb820003f" : : : );
}

static void lrcpc3_sigill(void)
{
	int data[2] = { 1, 2 };

	register int *src asm ("x0") = data;
	register int data0 asm ("w2") = 0;
	register int data1 asm ("w3") = 0;

	/* LDIAPP w2, w3, [x0] */
	asm volatile(".inst 0x99431802"
	              : "=r" (data0), "=r" (data1) : "r" (src) :);
}

static const struct hwcap_data {
	const char *name;
	unsigned long at_hwcap;
@@ -354,6 +367,13 @@ static const struct hwcap_data {
		.cpuinfo = "ilrcpc",
		.sigill_fn = ilrcpc_sigill,
	},
	{
		.name = "LRCPC3",
		.at_hwcap = AT_HWCAP2,
		.hwcap_bit = HWCAP2_LRCPC3,
		.cpuinfo = "lrcpc3",
		.sigill_fn = lrcpc3_sigill,
	},
	{
		.name = "LSE",
		.at_hwcap = AT_HWCAP,