arm64/sve: Split _sve_flush macro into separate Z and predicate flushes
authorMark Brown <broonie@kernel.org>
Wed, 12 May 2021 15:11:29 +0000 (16:11 +0100)
committerWill Deacon <will@kernel.org>
Wed, 26 May 2021 19:04:28 +0000 (20:04 +0100)
Trivial refactoring to support further work, no change to generated code.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Dave Martin <Dave.Martin@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20210512151131.27877-2-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/include/asm/fpsimdmacros.h
arch/arm64/kernel/entry-fpsimd.S

index a2563992d2dc89bc075b21393f8616821247304f..059204477ce6619036121c4cbb68d7db0b11b2ec 100644 (file)
        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_ffr
  _for n, 0, 15, _sve_pfalse    \n
                _sve_wrffr      0
 .endm
index 3ecec60d3295832b8c7a5917767c638e3866d92e..7921d58427c27ed2198dc115043f27db09efe12c 100644 (file)
@@ -72,7 +72,8 @@ 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_ffr
        ret
 SYM_FUNC_END(sve_flush_live)