fix(pauth): test an actual ARMv8.3 PointerAuth instruction
The PAuth instruction test promises to test instructions associated with
FEAT_PAUTH, though actually just issues those that are located in the
NOP space, so would always execute, even on machines without FEAT_PAUTH.
Replace them with one instruction that is newly defined by FEAY_PAUTH,
and that would trigger an UNDEF abort if not implemented or would trap
to EL3 unless SCR_EL3.API is set.
Change-Id: Iece2c60af40800450dadf5b2db609c35cfa6cf95
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
diff --git a/tftf/tests/extensions/pauth/test_pauth.c b/tftf/tests/extensions/pauth/test_pauth.c
index ada2f1d..f964266 100644
--- a/tftf/tests/extensions/pauth/test_pauth.c
+++ b/tftf/tests/extensions/pauth/test_pauth.c
@@ -58,13 +58,10 @@
SKIP_TEST_IF_PAUTH_NOT_SUPPORTED();
#if ARM_ARCH_AT_LEAST(8, 3)
+ u_register_t reg = 42;
+
/* Pointer authentication instructions */
- __asm__ volatile (
- "paciasp\n"
- "autiasp\n"
- "paciasp\n"
- "xpaclri"
- );
+ __asm__ volatile ("pacdza %0\n" : "+r"(reg));
return TEST_RESULT_SUCCESS;
#else
tftf_testcase_printf("Pointer Authentication instructions "