|
@@ -143,33 +143,20 @@ END_FTR_SECTION_IFSET(CPU_FTR_VSX)
|
|
|
blr
|
|
|
|
|
|
/*
|
|
|
- * __giveup_fpu(tsk)
|
|
|
- * Disable FP for the task given as the argument,
|
|
|
- * and save the floating-point registers in its thread_struct.
|
|
|
+ * save_fpu(tsk)
|
|
|
+ * Save the floating-point registers in its thread_struct.
|
|
|
* Enables the FPU for use in the kernel on return.
|
|
|
*/
|
|
|
-_GLOBAL(__giveup_fpu)
|
|
|
+_GLOBAL(save_fpu)
|
|
|
addi r3,r3,THREAD /* want THREAD of task */
|
|
|
PPC_LL r6,THREAD_FPSAVEAREA(r3)
|
|
|
PPC_LL r5,PT_REGS(r3)
|
|
|
PPC_LCMPI 0,r6,0
|
|
|
bne 2f
|
|
|
addi r6,r3,THREAD_FPSTATE
|
|
|
-2: PPC_LCMPI 0,r5,0
|
|
|
- SAVE_32FPVSRS(0, R4, R6)
|
|
|
+2: SAVE_32FPVSRS(0, R4, R6)
|
|
|
mffs fr0
|
|
|
stfd fr0,FPSTATE_FPSCR(r6)
|
|
|
- beq 1f
|
|
|
- PPC_LL r4,_MSR-STACK_FRAME_OVERHEAD(r5)
|
|
|
- li r3,MSR_FP|MSR_FE0|MSR_FE1
|
|
|
-#ifdef CONFIG_VSX
|
|
|
-BEGIN_FTR_SECTION
|
|
|
- oris r3,r3,MSR_VSX@h
|
|
|
-END_FTR_SECTION_IFSET(CPU_FTR_VSX)
|
|
|
-#endif
|
|
|
- andc r4,r4,r3 /* disable FP for previous task */
|
|
|
- PPC_STL r4,_MSR-STACK_FRAME_OVERHEAD(r5)
|
|
|
-1:
|
|
|
blr
|
|
|
|
|
|
/*
|