[PATCH v1 1/3] arm64/sve: Split _sve_flush macro into separate Z, P and FFR flushes
Mark Brown
broonie at kernel.org
Mon May 10 05:23:46 PDT 2021
Trivial refactoring to support further work, no change to generated code.
Signed-off-by: Mark Brown <broonie at kernel.org>
---
arch/arm64/include/asm/fpsimdmacros.h | 6 +++++-
arch/arm64/kernel/entry-fpsimd.S | 4 +++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/include/asm/fpsimdmacros.h b/arch/arm64/include/asm/fpsimdmacros.h
index a2563992d2dc..3b6b2ed2e550 100644
--- a/arch/arm64/include/asm/fpsimdmacros.h
+++ b/arch/arm64/include/asm/fpsimdmacros.h
@@ -213,9 +213,13 @@
mov v\nz\().16b, v\nz\().16b
.endm
-.macro sve_flush
+.macro sve_flush_z
_for n, 0, 31, _sve_flush_z \n
+.endm
+.macro sve_flush_p
_for n, 0, 15, _sve_pfalse \n
+.endm
+.macro sve_flush_ffr
_sve_wrffr 0
.endm
diff --git a/arch/arm64/kernel/entry-fpsimd.S b/arch/arm64/kernel/entry-fpsimd.S
index 3ecec60d3295..3f2c2a3f52b6 100644
--- a/arch/arm64/kernel/entry-fpsimd.S
+++ b/arch/arm64/kernel/entry-fpsimd.S
@@ -72,7 +72,9 @@ SYM_FUNC_END(sve_load_from_fpsimd_state)
/* Zero all SVE registers but the first 128-bits of each vector */
SYM_FUNC_START(sve_flush_live)
- sve_flush
+ sve_flush_z
+ sve_flush_p
+ sve_flush_ffr
ret
SYM_FUNC_END(sve_flush_live)
--
2.20.1
More information about the linux-arm-kernel
mailing list