]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/32: Don't use lmw/stmw for saving/restoring non volatile regs
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Mon, 23 Aug 2021 15:29:12 +0000 (15:29 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 22 Oct 2021 04:22:04 +0000 (15:22 +1100)
commit9736860e0d7978e9f3d90fc39d0f8c4dc2b77ad6
tree5d9898bb8574bcdc0b0591c99564541660c4ec25
parentfb2f5281bc99308566414cdaa3f638dd1eee088b
powerpc/32: Don't use lmw/stmw for saving/restoring non volatile regs

Instructions lmw/stmw are interesting for functions that are rarely
used and not in the cache, because only one instruction is to be
copied into the instruction cache instead of 19. However those
instruction are less performant than 19x raw lwz/stw as they require
synchronisation plus one additional cycle.

SAVE_NVGPRS / REST_NVGPRS are used in only a few places which are
mostly in interrupts entries/exits and in task switch so they are
likely already in the cache.

Using standard lwz improves null_syscall selftest by:
- 10 cycles on mpc832x.
- 2 cycles on mpc8xx.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/316c543b8906712c108985c8463eec09c8db577b.1629732542.git.christophe.leroy@csgroup.eu
arch/powerpc/include/asm/ppc_asm.h