aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/traps.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-06-09 03:04:58 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-06-20 03:05:12 -0400
commit968219fa334ce8fed3421dd12ea12e9f562c95cb (patch)
tree319524a7d65c71e3ff7aa61bde4b9d4a8f89338a /arch/powerpc/kernel/traps.c
parent4e63f8edfe4d6f20b1af176efc022c2b2f5e7aeb (diff)
powerpc/8xx: Remove 8xx specific "minimal FPU emulation"
This is duplicated code from math-emu and implements such a small subset of the FPU (load/stores/fmr) that it's essentially pointless nowdays. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/traps.c')
-rw-r--r--arch/powerpc/kernel/traps.c22
1 files changed, 1 insertions, 21 deletions
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index f4b5687b0c66..071f6e040eb2 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -1396,8 +1396,7 @@ void performance_monitor_exception(struct pt_regs *regs)
1396void SoftwareEmulation(struct pt_regs *regs) 1396void SoftwareEmulation(struct pt_regs *regs)
1397{ 1397{
1398 extern int do_mathemu(struct pt_regs *); 1398 extern int do_mathemu(struct pt_regs *);
1399 extern int Soft_emulate_8xx(struct pt_regs *); 1399#if defined(CONFIG_MATH_EMULATION)
1400#if defined(CONFIG_MATH_EMULATION) || defined(CONFIG_8XX_MINIMAL_FPEMU)
1401 int errcode; 1400 int errcode;
1402#endif 1401#endif
1403 1402
@@ -1430,23 +1429,6 @@ void SoftwareEmulation(struct pt_regs *regs)
1430 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip); 1429 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
1431 return; 1430 return;
1432 } 1431 }
1433
1434#elif defined(CONFIG_8XX_MINIMAL_FPEMU)
1435 errcode = Soft_emulate_8xx(regs);
1436 if (errcode >= 0)
1437 PPC_WARN_EMULATED(8xx, regs);
1438
1439 switch (errcode) {
1440 case 0:
1441 emulate_single_step(regs);
1442 return;
1443 case 1:
1444 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
1445 return;
1446 case -EFAULT:
1447 _exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip);
1448 return;
1449 }
1450#else 1432#else
1451 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip); 1433 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
1452#endif 1434#endif
@@ -1796,8 +1778,6 @@ struct ppc_emulated ppc_emulated = {
1796 WARN_EMULATED_SETUP(unaligned), 1778 WARN_EMULATED_SETUP(unaligned),
1797#ifdef CONFIG_MATH_EMULATION 1779#ifdef CONFIG_MATH_EMULATION
1798 WARN_EMULATED_SETUP(math), 1780 WARN_EMULATED_SETUP(math),
1799#elif defined(CONFIG_8XX_MINIMAL_FPEMU)
1800 WARN_EMULATED_SETUP(8xx),
1801#endif 1781#endif
1802#ifdef CONFIG_VSX 1782#ifdef CONFIG_VSX
1803 WARN_EMULATED_SETUP(vsx), 1783 WARN_EMULATED_SETUP(vsx),