OpenCloudOS-Kernel/arch/powerpc/math-emu
Stephen Chivers c59c015b6a powerpc: Correct emulated mtfsf instruction
The emulated (CONFIG_MATH_EMULATION_FULL)
PowerPC Floating Point instruction mtfsf
does not correctly copy bits from its source
register to the Floating Point Status and Register (FPSCR).

The error is in the preparation of the mask used to
select the bits to be copied from the source to the FPSCR.

Execution of the mtfsf instruction does not produce the same
results on a MPC8548 platform (emulated floating point)
as on MPC7410 or 440EP platforms (hardware floating point).

This error has been detected using a Freescale MPC8548
based platform and the patch below tested using that platform.

The patch is based on the patch(es) provided by
Gabriel Paubert and analysis by Gabriel, James Yang and David Laight.

Signed-off-by: Stephen Chivers <schivers@csc.com>
Signed-off-by: Gabriel Paubert <paubert@iram.es>
Tested-by: Stephen Chivers <schivers@csc.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2014-04-07 10:33:11 +10:00
..
Makefile powerpc: split She math emulation into two parts 2013-08-14 14:59:19 +10:00
fabs.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
fadd.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fadds.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
fcmpo.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fcmpu.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
fctiw.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
fctiwz.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
fdiv.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fdivs.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fmadd.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fmadds.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fmr.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
fmsub.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fmsubs.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fmul.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fmuls.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fnabs.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
fneg.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
fnmadd.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fnmadds.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fnmsub.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fnmsubs.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fre.c powerpc/math-emu: Fix decoding of some instructions 2013-06-20 17:05:05 +10:00
fres.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
frsp.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
frsqrte.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
frsqrtes.c powerpc/math-emu: Fix decoding of some instructions 2013-06-20 17:05:05 +10:00
fsel.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
fsqrt.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fsqrts.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fsub.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
fsubs.c powerpc/math-emu: Remove redundant 'ret' 2008-12-03 08:19:15 -06:00
lfd.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
lfs.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
math.c powerpc/math-emu: Fix load/store indexed emulation 2013-08-14 14:59:57 +10:00
math_efp.c powerpc: fix e500 SPE float SIGFPE generation 2014-01-07 18:43:42 -06:00
mcrfs.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
mffs.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
mtfsb0.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
mtfsb1.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
mtfsf.c powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mtfsfi.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
stfd.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
stfiwx.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
stfs.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00
udivmodti4.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05:00