sh: Move over to dynamically allocated FPU context.
authorPaul Mundt <lethal@linux-sh.org>
Wed, 13 Jan 2010 03:51:40 +0000 (12:51 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 13 Jan 2010 03:51:40 +0000 (12:51 +0900)
commit0ea820cf9bf58f735ed40ec67947159c4f170012
tree77320006b4dded5804c678c1a869571be5c0b95f
parenta3705799e2cc5fb69d88ad6a7f317a8f5597f18d
sh: Move over to dynamically allocated FPU context.

This follows the x86 xstate changes and implements a task_xstate slab
cache that is dynamically sized to match one of hard FP/soft FP/FPU-less.

This also tidies up and consolidates some of the SH-2A/SH-4 FPU
fragmentation. Now fpu state restorers are commonly defined, with the
init_fpu()/fpu_init() mess reworked to follow the x86 convention.
The fpu_init() register initialization has been replaced by xstate setup
followed by writing out to hardware via the standard restore path.

As init_fpu() now performs a slab allocation a secondary lighterweight
restorer is also introduced for the context switch.

In the future the DSP state will be rolled in here, too.

More work remains for math emulation and the SH-5 FPU, which presently
uses its own special (UP-only) interfaces.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
13 files changed:
arch/sh/include/asm/fpu.h
arch/sh/include/asm/processor_32.h
arch/sh/include/asm/thread_info.h
arch/sh/kernel/cpu/Makefile
arch/sh/kernel/cpu/fpu.c [new file with mode: 0644]
arch/sh/kernel/cpu/init.c
arch/sh/kernel/cpu/sh2a/fpu.c
arch/sh/kernel/cpu/sh4/fpu.c
arch/sh/kernel/process.c
arch/sh/kernel/process_32.c
arch/sh/kernel/ptrace_32.c
arch/sh/kernel/signal_32.c
arch/sh/math-emu/math.c