summaryrefslogtreecommitdiff
path: root/arch/powerpc
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2023-06-06 16:24:45 +0300
committerMichael Ellerman <mpe@ellerman.id.au>2023-06-14 05:46:42 +0300
commit6958ad05d5789a303afe4fa4495df43993d9b7cb (patch)
tree069810f9d9a4294b55ea46358bf64e202314d3bd /arch/powerpc
parentfc8562c9b69af9533c39903b1601c378742189b0 (diff)
downloadlinux-6958ad05d5789a303afe4fa4495df43993d9b7cb.tar.xz
powerpc/32: Rearrange _switch to prepare for 32/64 merge
Change the order of some operations and change some register numbers in preparation to merge 32-bit and 64-bit switch. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/20230606132447.315714-5-npiggin@gmail.com
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kernel/entry_32.S10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index 089432128571..2d17b14bb9e5 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -236,12 +236,12 @@ _GLOBAL(_switch)
stwu r1,-SWITCH_FRAME_SIZE(r1)
mflr r0
stw r0,SWITCH_FRAME_SIZE+4(r1)
+ stw r1,KSP(r3) /* Set old stack pointer */
/* r3-r12 are caller saved -- Cort */
SAVE_NVGPRS(r1)
stw r0,_NIP(r1) /* Return to switch caller */
- mfcr r10
- stw r10,_CCR(r1)
- stw r1,KSP(r3) /* Set old stack pointer */
+ mfcr r0
+ stw r0,_CCR(r1)
/* The sync for SMP migration is taken care of, see entry_64.S */
@@ -258,8 +258,8 @@ _GLOBAL(_switch)
/* r3-r12 are destroyed -- Cort */
REST_NVGPRS(r1)
- lwz r4,_NIP(r1) /* Return to _switch caller in new task */
- mtlr r4
+ lwz r0,_NIP(r1) /* Return to _switch caller in new task */
+ mtlr r0
addi r1,r1,SWITCH_FRAME_SIZE
blr