aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/head_fsl_booke.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/head_fsl_booke.S')
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S25
1 files changed, 7 insertions, 18 deletions
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 1f4434a38608..0f59863c3ade 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -192,7 +192,7 @@ _ENTRY(__early_start)
192 li r0,0 192 li r0,0
193 stwu r0,THREAD_SIZE-STACK_FRAME_OVERHEAD(r1) 193 stwu r0,THREAD_SIZE-STACK_FRAME_OVERHEAD(r1)
194 194
195 rlwinm r22,r1,0,0,31-THREAD_SHIFT /* current thread_info */ 195 CURRENT_THREAD_INFO(r22, r1)
196 stw r24, TI_CPU(r22) 196 stw r24, TI_CPU(r22)
197 197
198 bl early_init 198 bl early_init
@@ -556,8 +556,10 @@ END_FTR_SECTION_IFSET(CPU_FTR_EMB_HV)
556 /* SPE Unavailable */ 556 /* SPE Unavailable */
557 START_EXCEPTION(SPEUnavailable) 557 START_EXCEPTION(SPEUnavailable)
558 NORMAL_EXCEPTION_PROLOG(SPE_UNAVAIL) 558 NORMAL_EXCEPTION_PROLOG(SPE_UNAVAIL)
559 bne load_up_spe 559 beq 1f
560 addi r3,r1,STACK_FRAME_OVERHEAD 560 bl load_up_spe
561 b fast_exception_return
5621: addi r3,r1,STACK_FRAME_OVERHEAD
561 EXC_XFER_EE_LITE(0x2010, KernelSPE) 563 EXC_XFER_EE_LITE(0x2010, KernelSPE)
562#else 564#else
563 EXCEPTION(0x2020, SPE_UNAVAIL, SPEUnavailable, \ 565 EXCEPTION(0x2020, SPE_UNAVAIL, SPEUnavailable, \
@@ -778,7 +780,7 @@ tlb_write_entry:
778/* Note that the SPE support is closely modeled after the AltiVec 780/* Note that the SPE support is closely modeled after the AltiVec
779 * support. Changes to one are likely to be applicable to the 781 * support. Changes to one are likely to be applicable to the
780 * other! */ 782 * other! */
781load_up_spe: 783_GLOBAL(load_up_spe)
782/* 784/*
783 * Disable SPE for the task which had SPE previously, 785 * Disable SPE for the task which had SPE previously,
784 * and save its SPE registers in its thread_struct. 786 * and save its SPE registers in its thread_struct.
@@ -826,20 +828,7 @@ load_up_spe:
826 subi r4,r5,THREAD 828 subi r4,r5,THREAD
827 stw r4,last_task_used_spe@l(r3) 829 stw r4,last_task_used_spe@l(r3)
828#endif /* !CONFIG_SMP */ 830#endif /* !CONFIG_SMP */
829 /* restore registers and return */ 831 blr
8302: REST_4GPRS(3, r11)
831 lwz r10,_CCR(r11)
832 REST_GPR(1, r11)
833 mtcr r10
834 lwz r10,_LINK(r11)
835 mtlr r10
836 REST_GPR(10, r11)
837 mtspr SPRN_SRR1,r9
838 mtspr SPRN_SRR0,r12
839 REST_GPR(9, r11)
840 REST_GPR(12, r11)
841 lwz r11,GPR11(r11)
842 rfi
843 832
844/* 833/*
845 * SPE unavailable trap from kernel - print a message, but let 834 * SPE unavailable trap from kernel - print a message, but let