linux/arch
Kim Phillips aa42c69c67 [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>
2006-12-08 02:43:30 -06:00
..
alpha [PATCH] alpha: switch to pci_get API 2006-12-07 08:39:26 -08:00
arm Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2006-12-07 15:40:39 -08:00
arm26 [PATCH] arm26: replace kmalloc+memset with kzalloc 2006-12-07 08:39:45 -08:00
avr32 [PATCH] Pass struct dev pointer to dma_cache_sync() 2006-12-07 08:39:41 -08:00
cris [PATCH] mm: arch do_page_fault() vs in_atomic() 2006-12-07 08:39:21 -08:00
frv [PATCH] initrd: remove unused false condition for initrd_start 2006-12-07 08:39:38 -08:00
h8300 Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
i386 Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
ia64 Merge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6 2006-12-07 15:39:22 -08:00
m32r [PATCH] initrd: remove unused false condition for initrd_start 2006-12-07 08:39:38 -08:00
m68k [PATCH] m68k: replace kmalloc+memset with kzalloc 2006-12-07 08:39:29 -08:00
m68knommu Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
mips [PATCH] Pass struct dev pointer to dma_cache_sync() 2006-12-07 08:39:41 -08:00
parisc [PATCH] elf: Always define elf_addr_t in linux/elf.h 2006-12-07 08:39:38 -08:00
powerpc [POWERPC] Add support for FP emulation for the e300c2 core 2006-12-08 02:43:30 -06:00
ppc Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
s390 [PATCH] hotplug CPU: clean up hotcpu_notifier() use 2006-12-07 08:39:39 -08:00
sh [PATCH] initrd: remove unused false condition for initrd_start 2006-12-07 08:39:38 -08:00
sh64 [PATCH] initrd: remove unused false condition for initrd_start 2006-12-07 08:39:38 -08:00
sparc Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
sparc64 Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
um [PATCH] uml: use get_random_bytes() after random pool is seeded 2006-12-07 08:39:29 -08:00
v850 [PATCH] relocatable kernel: Kallsyms generate relocatable symbols 2006-12-07 02:14:04 +01:00
x86_64 Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
xtensa [PATCH] vmlinux.lds: consolidate initcall sections 2006-10-27 15:34:51 -07:00