1
linux/arch/powerpc/kernel
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
..
vdso32 [POWERPC] Support feature fixups in vdso's 2006-10-25 11:54:07 +10:00
vdso64 [POWERPC] Cell timebase bug workaround 2006-10-25 11:54:18 +10:00
align.c
asm-offsets.c [POWERPC] Lazy interrupt disabling for 64-bit machines 2006-10-16 16:31:36 +10:00
audit.c
binfmt_elf32.c
btext.c [POWERPC] Fix various offb issues 2006-11-01 14:52:48 +11:00
compat_audit.c
cpu_setup_6xx.S
cpu_setup_ppc970.S [POWERPC] powerpc: Enable DEEPNAP power savings mode on 970MP 2006-10-16 16:32:25 +10:00
cputable.c [POWERPC] Add support for FP emulation for the e300c2 core 2006-12-08 02:43:30 -06:00
crash_dump.c
crash.c [PATCH] Kexec / Kdump: Unify elf note code 2006-12-07 08:39:46 -08:00
dma_64.c [POWERPC] Make direct DMA use node local allocations 2006-12-04 20:38:59 +11:00
entry_32.S
entry_64.S [POWERPC] iSeries: Eliminate "exceeds stub group size" warnings 2006-12-04 20:41:31 +11:00
firmware.c
fpu.S
head_4xx.S
head_8xx.S
head_32.S [POWERPC] Add support for FP emulation for the e300c2 core 2006-12-08 02:43:30 -06:00
head_44x.S
head_64.S [POWERPC] iSeries: Eliminate "exceeds stub group size" warnings 2006-12-04 20:41:31 +11:00
head_booke.h
head_fsl_booke.S
ibmebus.c [POWERPC] Replace kmalloc+memset with kzalloc 2006-12-04 20:42:09 +11:00
idle_6xx.S
idle_power4.S [POWERPC] Lazy interrupt disabling for 64-bit machines 2006-10-16 16:31:36 +10:00
idle.c [POWERPC] cell: use ppc_md->power_save instead of cbe_idle_loop 2006-10-25 14:20:22 +10:00
init_task.c
io.c [POWERPC] Merge 32 and 64 bits asm-powerpc/io.h 2006-12-04 20:39:05 +11:00
iomap.c [POWERPC] Merge 32 and 64 bits asm-powerpc/io.h 2006-12-04 20:39:05 +11:00
iommu.c [POWERPC] Refactor 64 bits DMA operations 2006-12-04 20:38:40 +11:00
irq.c [POWERPC] Make soft_enabled irqs preempt safe 2006-12-04 20:39:20 +11:00
kprobes.c [PATCH] kprobes: enable booster on the preemptible kernel 2006-12-07 08:39:38 -08:00
l2cr_6xx.S
legacy_serial.c
lparcfg.c
lparmap.c
machine_kexec_32.c
machine_kexec_64.c
machine_kexec.c
Makefile [POWERPC] iSeries: don't build head_64.o unnecessarily 2006-12-04 20:42:03 +11:00
misc_32.S [POWERPC] Consolidate feature fixup code 2006-10-25 11:42:10 +10:00
misc_64.S [POWERPC] Consolidate feature fixup code 2006-10-25 11:42:10 +10:00
misc.S
module_32.c [POWERPC] Support feature fixups in modules 2006-10-25 11:54:13 +10:00
module_64.c [POWERPC] Support feature fixups in modules 2006-10-25 11:54:13 +10:00
nvram_64.c
of_device.c [POWERPC] Add missing EXPORTS for mpc52xx support 2006-12-05 11:34:37 +11:00
of_platform.c [POWERPC] powerpc: Workaround for of_platform without "reg" nor "dcr-reg" 2006-12-04 20:40:17 +11:00
paca.c
pci_32.c [POWERPC] Fix debug printks for 32-bit resources in the PCI code 2006-12-04 20:42:11 +11:00
pci_64.c [POWERPC] Replace kmalloc+memset with kzalloc 2006-12-04 20:42:09 +11:00
pci_dn.c
pmc.c [POWERPC] Fix oprofile support for e500 in arch/powerpc 2006-11-01 14:52:48 +11:00
ppc32.h
ppc_ksyms.c [POWERPC] Lazy interrupt disabling for 64-bit machines 2006-10-16 16:31:36 +10:00
proc_ppc64.c
process.c
prom_init.c [POWERPC] Tell firmware we can handle POWER6 compatible mode 2006-12-04 20:41:53 +11:00
prom_parse.c [POWERPC] Fix OF pci flags parsing 2006-12-04 20:41:49 +11:00
prom.c [POWERPC] Distinguish POWER6 partition modes and tell userspace 2006-12-04 20:40:16 +11:00
ptrace32.c
ptrace-common.h
ptrace.c
rtas_flash.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
rtas_pci.c [POWERPC] Merge 32 and 64 bits asm-powerpc/io.h 2006-12-04 20:39:05 +11:00
rtas-proc.c
rtas-rtc.c
rtas.c [POWERPC] Wrap cpu_die() with CONFIG_HOTPLUG_CPU 2006-12-04 20:39:29 +11:00
semaphore.c
setup_32.c [POWERPC] Distinguish POWER6 partition modes and tell userspace 2006-12-04 20:40:16 +11:00
setup_64.c [POWERPC] Distinguish POWER6 partition modes and tell userspace 2006-12-04 20:40:16 +11:00
setup-common.c
setup.h
signal_32.c [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
signal_64.c
smp-tbsync.c [POWERPC] Replace kmalloc+memset with kzalloc 2006-12-04 20:42:09 +11:00
smp.c [POWERPC] cell: add cpufreq driver for Cell BE processor 2006-10-25 14:20:22 +10:00
swsusp_32.S
sys_ppc32.c [POWERPC] fix missing #include in sys_ppc32.c 2006-12-04 20:41:19 +11:00
syscalls.c
sysfs.c [PATCH] i386: change the 'no_control' field to 'hotpluggable' in the struct cpu 2006-12-07 02:14:10 +01:00
systbl.S
tau_6xx.c
time.c [POWERPC] iSeries: fix time.c for combined build 2006-12-04 20:39:15 +11:00
traps.c [POWERPC] Add support for FP emulation for the e300c2 core 2006-12-08 02:43:30 -06:00
udbg_16550.c
udbg.c
vdso.c [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
vecemu.c
vector.S
vio.c [POWERPC] Refactor 64 bits DMA operations 2006-12-04 20:38:40 +11:00
vmlinux.lds.S [PATCH] relocatable kernel: Kallsyms generate relocatable symbols 2006-12-07 02:14:04 +01:00