[POWERPC] Add support for FP emulation for the e300c2 core
authorKim Phillips <kim.phillips@freescale.com>
Fri, 8 Dec 2006 08:43:30 +0000 (02:43 -0600)
committerKumar Gala <galak@kernel.crashing.org>
Fri, 8 Dec 2006 08:43:30 +0000 (02:43 -0600)
commitaa42c69c67f82e88f0726258efe7306708e1cf14
treed5305de3285d504e1bd1e955155e5e06b5b9ef76
parentc99767974ebd2a719d849fdeaaa1674456f5283f
[POWERPC] Add support for FP emulation for the e300c2 core

The e300c2 has no FPU.  Its MSR[FP] is grounded to zero.  If an attempt
is made to execute a floating point instruction (including floating-point
load, store, or move instructions), the e300c2 takes a floating-point
unavailable interrupt.

This patch adds support for FP emulation on the e300c2 by declaring a
new CPU_FTR_FP_TAKES_FPUNAVAIL, where FP unavail interrupts are
intercepted and redirected to the ProgramCheck exception path for
correct emulation handling.

(If we run out of CPU_FTR bits we could look to reclaim this bit by adding
support to test the cpu_user_features for PPC_FEATURE_HAS_FPU instead)

It adds a nop to the exception path for 32-bit processors with a FPU.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/Kconfig
arch/powerpc/kernel/cputable.c
arch/powerpc/kernel/head_32.S
arch/powerpc/kernel/traps.c
include/asm-powerpc/cputable.h