SYM_FUNC_START(__pi_clear_page)
.arch_extension mops
alternative_if_not ARM64_HAS_MOPS
b .Lno_mops
alternative_else_nop_endif
mov x1,
setpn [x0]!, x1!, xzr
setmn [x0]!, x1!, xzr
seten [x0]!, x1!, xzr
ret
.Lno_mops:
mrs x1, dczid_el0
tbnz x1,
and w1, w1,
mov x2,
lsl x1, x2, x1
1: dc zva, x0
add x0, x0, x1
tst x0,
b.ne 1b
ret
2: stnp xzr, xzr, [x0]
stnp xzr, xzr, [x0,
stnp xzr, xzr, [x0,
stnp xzr, xzr, [x0,
add x0, x0,
tst x0,
b.ne 2b
ret
SYM_FUNC_END(__pi_clear_page)
SYM_FUNC_ALIAS(clear_page, __pi_clear_page)
EXPORT_SYMBOL(clear_page)