arm64/sme: Manually encode ZT0 load and store instructions
authorMark Brown <broonie@kernel.org>
Mon, 16 Jan 2023 16:04:41 +0000 (16:04 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 20 Jan 2023 12:23:06 +0000 (12:23 +0000)
In order to avoid unrealistic toolchain requirements we manually encode the
instructions for loading and storing ZT0.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221208-arm64-sme2-v4-6-f2fa0aef982f@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/fpsimdmacros.h

index 5e0910c..cd03819 100644 (file)
 .endm
 
 /*
+ * LDR (ZT0)
+ *
+ *     LDR ZT0, nx
+ */
+.macro _ldr_zt nx
+       _check_general_reg \nx
+       .inst   0xe11f8000      \
+                | (\nx << 5)
+.endm
+
+/*
+ * STR (ZT0)
+ *
+ *     STR ZT0, nx
+ */
+.macro _str_zt nx
+       _check_general_reg \nx
+       .inst   0xe13f8000              \
+               | (\nx << 5)
+.endm
+
+/*
  * Zero the entire ZA array
  *     ZERO ZA
  */