On Wed, Apr 27, 2005 at 02:36:22PM +0900, Atsushi Nemoto wrote: > Hi. Here is a patch to make the fpu-emulator preempt-safe. It would > be SMP-safe also. > > The 'ieee754_csr' global variable is removed. Now the 'ieee754_csr' > is an alias of current->thread.fpu.soft.fcr31. While the fpu-emulator > uses different mapping for RM bits (FPU_CSR_Rm vs. IEEE754_Rm), RM > bits are converted before (and after) calling of cop1Emulate(). If we > adjusted IEEE754_Rm to match with FPU_CSR_Rm, we can remove ieee_rm[] > and mips_rm[]. Should we do it? > > With this patch, whole fpu-emulator can be run without disabling > preempt. I will post a patch to fix preemption issue soon. I applied both your patches with some slight cleanup for the endianess stuff in arch/mips/math-emu/ieee754.h and non-Linux stuff. Ralf