|
@@ -106,36 +106,20 @@ _GLOBAL(load_up_altivec)
|
|
|
blr
|
|
|
|
|
|
/*
|
|
|
- * __giveup_altivec(tsk)
|
|
|
- * Disable VMX for the task given as the argument,
|
|
|
- * and save the vector registers in its thread_struct.
|
|
|
+ * save_altivec(tsk)
|
|
|
+ * Save the vector registers to its thread_struct
|
|
|
*/
|
|
|
-_GLOBAL(__giveup_altivec)
|
|
|
+_GLOBAL(save_altivec)
|
|
|
addi r3,r3,THREAD /* want THREAD of task */
|
|
|
PPC_LL r7,THREAD_VRSAVEAREA(r3)
|
|
|
PPC_LL r5,PT_REGS(r3)
|
|
|
PPC_LCMPI 0,r7,0
|
|
|
bne 2f
|
|
|
addi r7,r3,THREAD_VRSTATE
|
|
|
-2: PPC_LCMPI 0,r5,0
|
|
|
- SAVE_32VRS(0,r4,r7)
|
|
|
+2: SAVE_32VRS(0,r4,r7)
|
|
|
mfvscr v0
|
|
|
li r4,VRSTATE_VSCR
|
|
|
stvx v0,r4,r7
|
|
|
- beq 1f
|
|
|
- PPC_LL r4,_MSR-STACK_FRAME_OVERHEAD(r5)
|
|
|
-#ifdef CONFIG_VSX
|
|
|
-BEGIN_FTR_SECTION
|
|
|
- lis r3,(MSR_VEC|MSR_VSX)@h
|
|
|
-FTR_SECTION_ELSE
|
|
|
- lis r3,MSR_VEC@h
|
|
|
-ALT_FTR_SECTION_END_IFSET(CPU_FTR_VSX)
|
|
|
-#else
|
|
|
- lis r3,MSR_VEC@h
|
|
|
-#endif
|
|
|
- andc r4,r4,r3 /* disable FP for previous task */
|
|
|
- PPC_STL r4,_MSR-STACK_FRAME_OVERHEAD(r5)
|
|
|
-1:
|
|
|
blr
|
|
|
|
|
|
#ifdef CONFIG_VSX
|