preempt_disable();  own_fpu();	/* Using the FPU again.  */ 
asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31){	if (fcr31 & FPU_CSR_UNI_X) {		int sig;		preempt_disable();		/*	 	 * Unimplemented operation exception.  If we've got the full		 * software emulator on-board, let's use it...		 *		 * Force FPU to dump state into task/thread context.  We're		 * moving a lot of data here for what is probably a single		 * instruction, but the alternative is to pre-decode the FP		 * register operands before invoking the emulator, which seems		 * a bit extreme for what should be an infrequent event.		 */		save_fp(current);		/* Run the emulator */		sig = fpu_emulator_cop1Handler (0, regs,			&current->thread.fpu.soft);		/*		 * We can't allow the emulated instruction to leave any of		 * the cause bit set in $fcr31.		 */		current->thread.fpu.soft.fcr31 &= ~FPU_CSR_ALL_X;		/* Restore the hardware register state */		restore_fp(current);		preempt_enable();		/* If something went wrong, signal */		if (sig)			force_sig(sig, current);		return;	}	force_sig(SIGFPE, current);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/cd21dfcfbb5c43de54f6be795dde07397da2bc2f/traps.c/buggy/arch/mips/kernel/traps.c