OSDN Git Service

powerpc/32: Use fast instruction to set MSR RI in exception prolog on 8xx
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Fri, 12 Mar 2021 12:50:20 +0000 (12:50 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 29 Mar 2021 02:22:04 +0000 (13:22 +1100)
8xx has registers SPRN_NRI, SPRN_EID and SPRN_EIE for changing
MSR EE and RI.

Use SPRN_EID in exception prolog to set RI.

On an 8xx, it reduces the null_syscall test by 3 cycles.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/65f6bda827c2a2abce71ea7e07543e791163da33.1615552866.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/head_32.h

index ac6b391..25ee6b2 100644 (file)
 #endif
 #ifdef CONFIG_40x
        rlwinm  r9,r9,0,14,12           /* clear MSR_WE (necessary?) */
+#elif defined(CONFIG_PPC_8xx)
+       mtspr   SPRN_EID, r2            /* Set MSR_RI */
 #else
 #ifdef CONFIG_VMAP_STACK
        li      r10, MSR_KERNEL & ~MSR_IR /* can take exceptions */