powerpc: Add ZEROIZE_GPRS macros for register clears
Provide register zeroing macros, following the same convention as existing register stack save/restore macros, to be used in later change to concisely zero a sequence of consecutive gprs. The resulting macros are called ZEROIZE_GPRS and ZEROIZE_NVGPRS, keeping with the naming of the accompanying restore and save macros, and usage of zeroize to describe this operation elsewhere in the kernel. Signed-off-by: Rohan McLure <rmclure@linux.ibm.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220921065605.1051927-4-rmclure@linux.ibm.com
This commit is contained in:
parent
2c27d4a419
commit
9d54a5ce3a
|
@ -33,6 +33,20 @@
|
|||
.endr
|
||||
.endm
|
||||
|
||||
/*
|
||||
* This expands to a sequence of register clears for regs start to end
|
||||
* inclusive, of the form:
|
||||
*
|
||||
* li rN, 0
|
||||
*/
|
||||
.macro ZEROIZE_REGS start, end
|
||||
.Lreg=\start
|
||||
.rept (\end - \start + 1)
|
||||
li .Lreg, 0
|
||||
.Lreg=.Lreg+1
|
||||
.endr
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Macros for storing registers into and loading registers from
|
||||
* exception frames.
|
||||
|
@ -49,6 +63,14 @@
|
|||
#define REST_NVGPRS(base) REST_GPRS(13, 31, base)
|
||||
#endif
|
||||
|
||||
#define ZEROIZE_GPRS(start, end) ZEROIZE_REGS start, end
|
||||
#ifdef __powerpc64__
|
||||
#define ZEROIZE_NVGPRS() ZEROIZE_GPRS(14, 31)
|
||||
#else
|
||||
#define ZEROIZE_NVGPRS() ZEROIZE_GPRS(13, 31)
|
||||
#endif
|
||||
#define ZEROIZE_GPR(n) ZEROIZE_GPRS(n, n)
|
||||
|
||||
#define SAVE_GPR(n, base) SAVE_GPRS(n, n, base)
|
||||
#define REST_GPR(n, base) REST_GPRS(n, n, base)
|
||||
|
||||
|
|
Loading…
Reference in New Issue