[PATCH v2 1/2] powerpc/e500: make load_up_spe a normal fuction
Alexander Graf
agraf at suse.de
Thu Mar 8 00:56:46 EST 2012
On 03/01/2012 02:20 AM, Olivia Yin wrote:
> From: Liu Yu<yu.liu at freescale.com>
>
> So that we can call it when improving SPE switch like book3e did for fp switch.
Timur / Scott, can you please (n)ack this one?
Alex
> Signed-off-by: Liu Yu<yu.liu at freescale.com>
> Signed-off-by: Olivia Yin<hong-hua.yin at freescale.com>
> ---
> v2: add Signed-off-by
>
> arch/powerpc/kernel/head_fsl_booke.S | 23 ++++++-----------------
> 1 files changed, 6 insertions(+), 17 deletions(-)
>
> diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
> index d5d78c4..c96e025 100644
> --- a/arch/powerpc/kernel/head_fsl_booke.S
> +++ b/arch/powerpc/kernel/head_fsl_booke.S
> @@ -539,8 +539,10 @@ interrupt_base:
> /* SPE Unavailable */
> START_EXCEPTION(SPEUnavailable)
> NORMAL_EXCEPTION_PROLOG
> - bne load_up_spe
> - addi r3,r1,STACK_FRAME_OVERHEAD
> + beq 1f
> + bl load_up_spe
> + b fast_exception_return
> +1: addi r3,r1,STACK_FRAME_OVERHEAD
> EXC_XFER_EE_LITE(0x2010, KernelSPE)
> #else
> EXCEPTION(0x2020, SPEUnavailable, unknown_exception, EXC_XFER_EE)
> @@ -743,7 +745,7 @@ tlb_write_entry:
> /* Note that the SPE support is closely modeled after the AltiVec
> * support. Changes to one are likely to be applicable to the
> * other! */
> -load_up_spe:
> +_GLOBAL(load_up_spe)
> /*
> * Disable SPE for the task which had SPE previously,
> * and save its SPE registers in its thread_struct.
> @@ -791,20 +793,7 @@ load_up_spe:
> subi r4,r5,THREAD
> stw r4,last_task_used_spe at l(r3)
> #endif /* !CONFIG_SMP */
> - /* restore registers and return */
> -2: REST_4GPRS(3, r11)
> - lwz r10,_CCR(r11)
> - REST_GPR(1, r11)
> - mtcr r10
> - lwz r10,_LINK(r11)
> - mtlr r10
> - REST_GPR(10, r11)
> - mtspr SPRN_SRR1,r9
> - mtspr SPRN_SRR0,r12
> - REST_GPR(9, r11)
> - REST_GPR(12, r11)
> - lwz r11,GPR11(r11)
> - rfi
> + blr
>
> /*
> * SPE unavailable trap from kernel - print a message, but let
More information about the Linuxppc-dev
mailing list