linux/arch/mips/math-emu
David Daney da0bac3341 MIPS: Fix emulation of 64-bit FPU on FPU-less 64-bit CPUs.
Running a 64-bit kernel on a 64-bit CPU without an FPU would cause the
emulator to run in 32-bit mode.  The c0_Status.FR bit is wired to zero
on systems without an FPU, so using that bit to decide how the emulator
behaves doesn't allow for proper emulation on 64-bit FPU-less
processors.

Instead, we need to select the emulator mode based on the user-space
ABI.  Since the thread flag TIF_32BIT_REGS is used to set c0_Status.FR,
we can just use it to decide if the emulator should be in 32-bit or
64-bit mode.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2009-11-13 18:10:37 +01:00
..
cp1emu.c MIPS: Fix emulation of 64-bit FPU on FPU-less 64-bit CPUs. 2009-11-13 18:10:37 +01:00
dp_add.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_cmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_div.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_fint.c [MIPS] Fix compiler warnings (field width, unused variable) 2006-06-06 00:15:20 +01:00
dp_flong.c [MIPS] Fix compiler warnings (field width, unused variable) 2006-06-06 00:15:20 +01:00
dp_frexp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_fsp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_logb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_modf.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_mul.c [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
dp_scalb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_simple.c MIPS: Fix abs.[sd] and neg.[sd] emulation for NaN operands 2009-11-02 12:00:05 +01:00
dp_sqrt.c Fix preemption and SMP problems in the FP emulator code. 2005-10-29 19:31:12 +01:00
dp_sub.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_tint.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dp_tlong.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dsemul.c MIPS: Switch FPU emulator trap to BREAK instruction. 2008-10-30 14:44:34 +00:00
ieee754.c [MIPS] Compliment va_start() with va_end(). 2007-11-26 17:26:15 +00:00
ieee754.h [MIPS] Unify mips_fpu_soft_struct and mips_fpu_hard_structs. 2006-06-19 17:39:18 +01:00
ieee754d.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ieee754dp.c [MIPS] Compliment va_start() with va_end(). 2007-11-26 17:26:15 +00:00
ieee754dp.h [MIPS] replace __inline with inline 2008-04-28 17:14:26 +01:00
ieee754int.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
ieee754m.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ieee754sp.c [MIPS] Compliment va_start() with va_end(). 2007-11-26 17:26:15 +00:00
ieee754sp.h [MIPS] replace __inline with inline 2008-04-28 17:14:26 +01:00
ieee754xcpt.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kernel_linkage.c [MIPS] Fix missing prototypes in asm/fpu.h 2008-07-20 14:38:17 +01:00
Makefile [MIPS] Use -Werror on subdirectories which build cleanly. 2007-07-31 21:35:33 +01:00
sp_add.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_cmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_div.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_fdp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_fint.c [MIPS] Fix compiler warnings (field width, unused variable) 2006-06-06 00:15:20 +01:00
sp_flong.c [MIPS] Fix compiler warnings (field width, unused variable) 2006-06-06 00:15:20 +01:00
sp_frexp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_logb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_modf.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_mul.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_scalb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_simple.c MIPS: Fix abs.[sd] and neg.[sd] emulation for NaN operands 2009-11-02 12:00:05 +01:00
sp_sqrt.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_sub.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_tint.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sp_tlong.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00