diff options
author | Kanoj Sarcar <kanoj@engr.sgi.com> | 2000-05-11 19:21:22 +0000 |
---|---|---|
committer | Kanoj Sarcar <kanoj@engr.sgi.com> | 2000-05-11 19:21:22 +0000 |
commit | aed9bea016318b0f4cd8b3ac9aae9cb0f78526ef (patch) | |
tree | 3b9d4419011b35ae2d30b8f397331ac5d4a883e6 /arch/mips64/kernel/process.c | |
parent | cbfdca13f959e36f8d5b5703d88bbe30f3fd23c0 (diff) |
When last_task_used_math gets the cpu, ST0_CU1 is set during context
switch. All other FP programs have ST0_CU1 cleared in their thread_struct,
so that they incur faults on first touching the FPU, and are made the
FPU owner, aka last_task_used_math. used_math determines whether a
thread has used the FPU before; if not, the FPU needs to be initialized
before it can own the FPU. Note: a FP program that has already been
using the fpu (not neccesarily the owner), must reinit the fpu if
it uses the fpu in a signal handler; a sigreturn restores the
original context, discarding the context of the handler.
Diffstat (limited to 'arch/mips64/kernel/process.c')
-rw-r--r-- | arch/mips64/kernel/process.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/arch/mips64/kernel/process.c b/arch/mips64/kernel/process.c index c2c077e35..d6d8b7435 100644 --- a/arch/mips64/kernel/process.c +++ b/arch/mips64/kernel/process.c @@ -78,7 +78,6 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, childksp = (unsigned long)p + KERNEL_STACK_SIZE - 32; if (last_task_used_math == current) { - set_cp0_status(ST0_CU1, ST0_CU1); save_fp(p); } /* set up new TSS. */ |