diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-11-25 04:49:46 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-11-25 04:49:46 +0000 |
commit | 4c55adaa6d06e5533aebaceea7640ecf10952231 (patch) | |
tree | 0f2e4190d1e9db004e50c7f33a1fe46337fd1885 /arch/mips/kernel/branch.c | |
parent | 4c86076eb07eb647b1080355e18dc9d4c49bf7e1 (diff) |
Kernel FPU emulator, chain saw edition.
Diffstat (limited to 'arch/mips/kernel/branch.c')
-rw-r--r-- | arch/mips/kernel/branch.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/mips/kernel/branch.c b/arch/mips/kernel/branch.c index 4ca20214d..b74f87364 100644 --- a/arch/mips/kernel/branch.c +++ b/arch/mips/kernel/branch.c @@ -5,15 +5,19 @@ * License. See the file "COPYING" in the main directory of this archive * for more details. * - * Copyright (C) 1996, 1997 by Ralf Baechle + * Copyright (C) 1996, 97, 2000 by Ralf Baechle */ +#include <linux/config.h> #include <linux/kernel.h> #include <linux/sched.h> #include <linux/signal.h> #include <asm/branch.h> +#include <asm/cpu.h> #include <asm/inst.h> #include <asm/ptrace.h> #include <asm/uaccess.h> +#include <asm/bootinfo.h> +#include <asm/processor.h> /* * Compute the return address and do emulate branch simulation, if required. @@ -163,6 +167,11 @@ int __compute_return_epc(struct pt_regs *regs) * And now the FPA/cp1 branch instructions. */ case cop1_op: +#ifdef CONFIG_MIPS_FPU_EMULATOR + if(!(mips_cpu.options & MIPS_CPU_FPU)) + fcr31 = current->thread.fpu.soft.sr; + else +#endif asm ("cfc1\t%0,$31":"=r" (fcr31)); bit = (insn.i_format.rt >> 2); bit += (bit != 0); |