]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
powerpc/8xx: Remove 8xx specific "minimal FPU emulation"
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sun, 9 Jun 2013 07:04:58 +0000 (17:04 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 20 Jun 2013 07:05:12 +0000 (17:05 +1000)
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>
arch/powerpc/Kconfig
arch/powerpc/kernel/traps.c

index e3009abc7f75b4bface80915dcaf847554cc8fd6..5374776b4c7c12a18a847abec17023b9df7dc438 100644 (file)
@@ -319,17 +319,6 @@ config PPC_TRANSACTIONAL_MEM
        ---help---
          Support user-mode Transactional Memory on POWERPC.
 
-config 8XX_MINIMAL_FPEMU
-       bool "Minimal math emulation for 8xx"
-       depends on 8xx && !MATH_EMULATION
-       help
-         Older arch/ppc kernels still emulated a few floating point
-         instructions such as load and store, even when full math
-         emulation is disabled.  Say "Y" here if you want to preserve
-         this behavior.
-
-         It is recommended that you build a soft-float userspace instead.
-
 config IOMMU_HELPER
        def_bool PPC64
 
index f4b5687b0c66f69c49d74c9308c558c9118c3e01..071f6e040eb2cd389ffe4d47a40d57ed7954016a 100644 (file)
@@ -1396,8 +1396,7 @@ void performance_monitor_exception(struct pt_regs *regs)
 void SoftwareEmulation(struct pt_regs *regs)
 {
        extern int do_mathemu(struct pt_regs *);
-       extern int Soft_emulate_8xx(struct pt_regs *);
-#if defined(CONFIG_MATH_EMULATION) || defined(CONFIG_8XX_MINIMAL_FPEMU)
+#if defined(CONFIG_MATH_EMULATION)
        int errcode;
 #endif
 
@@ -1430,23 +1429,6 @@ void SoftwareEmulation(struct pt_regs *regs)
                _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
                return;
        }
-
-#elif defined(CONFIG_8XX_MINIMAL_FPEMU)
-       errcode = Soft_emulate_8xx(regs);
-       if (errcode >= 0)
-               PPC_WARN_EMULATED(8xx, regs);
-
-       switch (errcode) {
-       case 0:
-               emulate_single_step(regs);
-               return;
-       case 1:
-               _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
-               return;
-       case -EFAULT:
-               _exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip);
-               return;
-       }
 #else
        _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
 #endif
@@ -1796,8 +1778,6 @@ struct ppc_emulated ppc_emulated = {
        WARN_EMULATED_SETUP(unaligned),
 #ifdef CONFIG_MATH_EMULATION
        WARN_EMULATED_SETUP(math),
-#elif defined(CONFIG_8XX_MINIMAL_FPEMU)
-       WARN_EMULATED_SETUP(8xx),
 #endif
 #ifdef CONFIG_VSX
        WARN_EMULATED_SETUP(vsx),