summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2010-06-28 14:05:57 -0500
committerPatrick Williams <iawillia@us.ibm.com>2010-06-28 14:05:57 -0500
commit81e52156a0bd31c044c64ffb5b893a4b4aa6d72d (patch)
tree6ec585818b7f5c14f3683dad6d4502f04b480e3c /src/kernel
parentd512759b3bbc3f3c7cd137842d9da2b5a5bc6e04 (diff)
downloadtalos-hostboot-81e52156a0bd31c044c64ffb5b893a4b4aa6d72d.tar.gz
talos-hostboot-81e52156a0bd31c044c64ffb5b893a4b4aa6d72d.zip
Fix SPRs overwriting GPRs in restore.
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/start.S10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/kernel/start.S b/src/kernel/start.S
index 7bb1fdd51..1aea31024 100644
--- a/src/kernel/start.S
+++ b/src/kernel/start.S
@@ -249,10 +249,6 @@ kernel_dispatch_task:
ld r25, TASK_GPR_25(r1) ;// GPR25
ld r26, TASK_GPR_26(r1) ;// GPR26
ld r27, TASK_GPR_27(r1) ;// GPR27
- ld r28, TASK_GPR_28(r1) ;// GPR28
- ld r29, TASK_GPR_29(r1) ;// GPR29
- ld r30, TASK_GPR_30(r1) ;// GPR30
- ld r31, TASK_GPR_31(r1) ;// GPR31
ld r28, TASK_LR(r1) ;// Load from context: LR, CR, CTR, XER
ld r29, TASK_CR(r1)
@@ -263,9 +259,13 @@ kernel_dispatch_task:
mtctr r30 ;// Restore CTR
mtxer r31 ;// Restore XER
+ ld r28, TASK_GPR_28(r1) ;// GPR28
+ ld r29, TASK_GPR_29(r1) ;// GPR29
+ ld r30, TASK_GPR_30(r1) ;// GPR30
+ ld r31, TASK_GPR_31(r1) ;// GPR31
ld r1, TASK_GPR_1(r1) ;// GPR1
- rfi ;// Execute task.
+ rfid ;// Execute task.
.section .data
.balign 1024
OpenPOWER on IntegriCloud