process.c (db985cbd67c45f875ef43cb5febfaa8cbd203c27) process.c (e1802b065d189cdfa25eaf6d019c222a91618b9c)
1/*
2 * Derived from "arch/i386/kernel/process.c"
3 * Copyright (C) 1995 Linus Torvalds
4 *
5 * Updated and modified by Cort Dougan (cort@cs.nmt.edu) and
6 * Paul Mackerras (paulus@cs.anu.edu.au)
7 *
8 * PowerPC version

--- 214 unchanged lines hidden (view full) ---

223#endif
224
225void giveup_vsx(struct task_struct *tsk)
226{
227 giveup_fpu_maybe_transactional(tsk);
228 giveup_altivec_maybe_transactional(tsk);
229 __giveup_vsx(tsk);
230}
1/*
2 * Derived from "arch/i386/kernel/process.c"
3 * Copyright (C) 1995 Linus Torvalds
4 *
5 * Updated and modified by Cort Dougan (cort@cs.nmt.edu) and
6 * Paul Mackerras (paulus@cs.anu.edu.au)
7 *
8 * PowerPC version

--- 214 unchanged lines hidden (view full) ---

223#endif
224
225void giveup_vsx(struct task_struct *tsk)
226{
227 giveup_fpu_maybe_transactional(tsk);
228 giveup_altivec_maybe_transactional(tsk);
229 __giveup_vsx(tsk);
230}
231EXPORT_SYMBOL(giveup_vsx);
231
232void flush_vsx_to_thread(struct task_struct *tsk)
233{
234 if (tsk->thread.regs) {
235 preempt_disable();
236 if (tsk->thread.regs->msr & MSR_VSX) {
237#ifdef CONFIG_SMP
238 BUG_ON(tsk != current);

--- 1072 unchanged lines hidden (view full) ---

1311#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
1312 if (cpu_has_feature(CPU_FTR_TM))
1313 regs->msr |= MSR_TM;
1314 current->thread.tm_tfhar = 0;
1315 current->thread.tm_texasr = 0;
1316 current->thread.tm_tfiar = 0;
1317#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
1318}
232
233void flush_vsx_to_thread(struct task_struct *tsk)
234{
235 if (tsk->thread.regs) {
236 preempt_disable();
237 if (tsk->thread.regs->msr & MSR_VSX) {
238#ifdef CONFIG_SMP
239 BUG_ON(tsk != current);

--- 1072 unchanged lines hidden (view full) ---

1312#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
1313 if (cpu_has_feature(CPU_FTR_TM))
1314 regs->msr |= MSR_TM;
1315 current->thread.tm_tfhar = 0;
1316 current->thread.tm_texasr = 0;
1317 current->thread.tm_tfiar = 0;
1318#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
1319}
1320EXPORT_SYMBOL(start_thread);
1319
1320#define PR_FP_ALL_EXCEPT (PR_FP_EXC_DIV | PR_FP_EXC_OVF | PR_FP_EXC_UND \
1321 | PR_FP_EXC_RES | PR_FP_EXC_INV)
1322
1323int set_fpexc_mode(struct task_struct *tsk, unsigned int val)
1324{
1325 struct pt_regs *regs = tsk->thread.regs;
1326

--- 348 unchanged lines hidden ---
1321
1322#define PR_FP_ALL_EXCEPT (PR_FP_EXC_DIV | PR_FP_EXC_OVF | PR_FP_EXC_UND \
1323 | PR_FP_EXC_RES | PR_FP_EXC_INV)
1324
1325int set_fpexc_mode(struct task_struct *tsk, unsigned int val)
1326{
1327 struct pt_regs *regs = tsk->thread.regs;
1328

--- 348 unchanged lines hidden ---