2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-22 12:14:01 +08:00
linux-next/arch/powerpc/math-emu
Liu Yu ac6f120369 powerpc/85xx: Workaroudn e500 CPU erratum A005
This erratum can occur if a single-precision floating-point,
double-precision floating-point or vector floating-point instruction on a
mispredicted branch path signals one of the floating-point data interrupts
which are enabled by the SPEFSCR (FINVE, FDBZE, FUNFE or FOVFE bits).  This
interrupt must be recorded in a one-cycle window when the misprediction is
resolved.  If this extremely rare event should occur, the result could be:

The SPE Data Exception from the mispredicted path may be reported
erroneously if a single-precision floating-point, double-precision
floating-point or vector floating-point instruction is the second
instruction on the correct branch path.

According to errata description, some efp instructions which are not
supposed to trigger SPE exceptions can trigger the exceptions in this case.
However, as we haven't emulated these instructions here, a signal will
send to userspace, and userspace application would exit.

This patch re-issue the efp instruction that we haven't emulated,
so that hardware can properly execute it again if this case happen.

Signed-off-by: Liu Yu <yu.liu@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2011-03-15 10:05:06 -05: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
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
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
Makefile powerpc/Makefiles: Change to new flag variables 2010-10-13 16:19:22 +11:00
math_efp.c powerpc/85xx: Workaroudn e500 CPU erratum A005 2011-03-15 10:05:06 -05:00
math.c powerpc/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05: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/math-emu: Use kernel generic math-emu code 2008-10-01 08:40:07 -05: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